NoSQL keskusmuistitietokantajärjestelmät
|
|
- Riitta-Liisa Laaksonen
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 hyväksymispäivä arvosana arvostelija NoSQL keskusmuistitietokantajärjestelmät Tuomo Jokimies Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta Fakultet Faculty Laitos Institution Department Matemaattis luonnontieteellinen tiedekunta Tekijä Författare Author Tietojenkäsittelytieteen laitos Tuomo Jokimies Työn nimi Arbetets titel Title NoSQL keskusmuistitietokantajärjestelmät Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Seminaarityö Tiivistelmä Referat Abstract Aika Datum Month and year Sivumäärä Sidoantal Number of pages 10 sivua + 2 liitesivua Web 2.0 ja sosiaalisen median palveluiden suuri suosio ovat luoneet tarpeen uudenlaisille NoSQL tietokantajärjestelmille. NoSQL tietokantajärjestelmät eivät pohjaudu perinteiseen relaatiotietokantamalliin, vaan ne voivat olla esimerkiksi avainarvo tai dokuementtipohjaisia. Keskusmuistissa toimivat NoSQL tietokantajärjestelmät ovat nopeita ja yksinkertaisia käyttää, mutta ne voivat tukea myös monimutkaisempia tietorakenteita ja tietotyyppejä. NoSQL keskusmuistitietokantajärjestelmiä onkin käytetty menestyksekkäästi muun muassa suurissa sosiaalisen median palveluissa. Käyttämällä NoSQL keskusmuistitietokantajärjestelmiä oikeissa tilanteissa voidaan saavuttaa merkittävästi tehokkaampia ja skaalautuvampia sovelluksia. ACM Computing Classification System (CCS): H.2 [Database Management] H.3 [Information Storage and Retrieval] Avainsanat Nyckelord Keywords NoSQL, keskusmuisti, tietokantajärjestelmät, Memcached, Project Voldemort, Redis, Terrastore Säilytyspaikka Förvaringställe Where deposited Muita tietoja Övriga uppgifter Additional information
3 ii Sisältö 1 Johdanto 1 2 Käsitteistö NoSQL Avain arvo tietokantajärjestelmät Dokumenttitietokantajärjestelmät ACID periaate BASE periaate CAP teoreema NoSQL keskusmuistitietokannat Memcached Redis Project Voldemort Terrastore Muut Scalaris Tokyo Cabinet Yhteenveto 10 Lähteet 11
4 1 1 Johdanto Web 2.0 ja sosiaalisen median palveluiden suuri suosio ovat luoneet tarpeen uudenlaisille tietokantajärjestelmille [Päi10]. Suuria tietomääriä on mahdotonta säilyttää ja käsitellä yhdellä palvelimella, vaan säilytys ja laskenta pitää hajauttaa [RuB11]. Uusien tietokantajärjestelmien tarpeiden myötä myös hyvän tietokantajärjestelmän määrittelevät periaatteet ovat muuttuneet. BASE periaatteet ovat korvanneet perinteisesti hyvän tietokantajärjestelmän määrittelevät ACID periaatteet [Päi10]. Luvussa 2 käsitellään tutkielman kannalta olennaisia käsitteitä ja periaatteita. Perinteisten relaatiotietokantamalliin pohjaavien tietokantajärjestelmien rinnalle kehittyneitä uudenlaisia tietokantajärjestelmiä kutsutaan yhteisnimellä NoSQL [Cat11]. NoSQL tietokantajärjestelmät eivät perustu relaatiotietokantamalliin, vaan ne voivat olla esimerkiksi avain arvo tai dokumenttipohjaisia [Cat11]. Luvussa 3 esitellään eri tyyppisiä keskusmuistissa toimivia NoSQL tietokantajärjestelmiä. 2 Käsitteistö Tässä luvussa käsittellään tutkielman kannalta oleellisia käsitteitä. Luvussa 2.1 määritellään NoSQL termi. Luvussa 2.2 käsitellään ACID periaatetta, joka havaitaan ongelmalliseksi keskusmuistitietokantajärjestelmien kannalta. ACID periaatteen vastakohtana pidettyä skaalautuville järjestelmille sopivampaa BASE periaatetta käsitellään luvussa 2.3. Luvussa 2.4 käydään läpi CAP teoreema. 2.1 NoSQL NoSQL on yhteisnimitys tietokantajärjestelmille, jotka ovat luopuneet perinteistä relaatiotietokantamallista eivätkä täten myöskään käytä niille suunniteltua SQLkyselykieltä [Bar10]. NoSQL termi on kuitenkin ongelmallinen, sillä se kuvaa ainoastaan mitä kyseinen tietokantajärjestelmä ei ole, eikä sitä, mitä se todellisuudessa on [Ler10]. Uusille kehittyneemmille tietokantajärjestelmille onkin keksitty muita nimityksiä, kuten Beyond SQL [FCP12]. NoSQL tietokantajärjestelmiä on useita erilaisia, kuten sarake ja verkko orientoitu
5 2 neita tietokantajärjestelmiä [Cat11]. Tässä tutkielmassa keskitytään kuitenkin tarkastelemaan avain arvo ja dokumenttipohjaisia NoSQL keskusmuistitietokantajärjestelmiä Avain arvo tietokantajärjestelmät Avain arvo tietokantajärjestelmät (key value) koostuvat avain arvo pareista, joissa jokaista yksilöivää avainta vastaa tasan yksi arvo [Cat11]. Arvoja käsitellään siis avaimen perusteella. Arvo voi olla yksinkertainen merkkijono tai monimutkaisempi tietorakenne [Ler10]. Avain arvo tietokantajärjestelmät tarjoavat yleensä tiedon haku, lisäys ja poisto operaatiot [Cat11] Dokumenttitietokantajärjestelmät Dokumenttitietokantajärjestelmät tukevat jäsennetyn tiedon tallentamista [WeD12]. Dokumenttitietokantajärjestelmät koostuvat dokumenteista, jotka sisältävät arvoja. Nämä arvot voivat olla toisia dokumentteja, listoja tai tavallisia skalaariarvoja [Cat11]. 2.2 ACID periaate ACID periaatetta on pidetty perinteisesti hyvän tietokantajärjestelmän määritelmänä [Bar10]. ACID on lyhenne sanoista jakamattomuus (atomicity), eheys (consistency), eristyneisyys (isolation) ja pysyvyys (durability) ja ne tarkoittavat seuraavaa [Bar10]: Jakamattomuus tarkoittaa, että tietokantaoperaatio joko suoritetaan tai se epäonnistuu. Operaation epäonnistuessa operaation tulee epäonnistua kokonaan ja tietokanta tulee palata tilaan, jossa se oli ennen operaation alkua. Eheys määrää, että tietokanta on hyväksyttävässä tilassa ennen operaatioita sekä niiden jälkeen. Eristyneisyys edellyttää, että tietokantaoperaatiot ovat itsenäisiä toisistaan samaa tietoa muutettaessa, toinen operaatio joutuu odottamaan toisen valmistumista. Pysyvyys merkitsee, että tietokantaan tehdyt muutokset säilyvät jopa virheellisestä järjestelmätoiminnosta huolimatta.
6 3 Cattellin mukaan [Cat11] keskusmuistitietokantajärjestelmät täyttävät useimmiten kolme ensimmäistä ACID periaatetta, mutteivät pysty takaamaan tietojen pysyvyyttä, sillä tallennus tapahtuu haihtuvaan muistiin. Hänen mukaan kuitenkin jotkut NoSQL tietokantajärjestelmät varmuuskopioivat säännöllisesti tietoja keskusmuistista levylle, mutta tämä ei välttämättä tapahdu jokaisen päivityksen yhteydessä. 2.3 BASE periaate BASE (basically available, soft state, eventual consistency) periaatetta voidaan pitää ACID periaatteen vastakohtana [Bar10]. Prichett kirjoittaa, että [Pri08] BASE tietokannasta saatava tieto ei välttämättä ole ajantasainen, mutta saatavilla oleva tieto on aina luettavissa ja päivitettävissä. Hänen mukaan lopullinen eheys (eventual consistency) takaa, että tietokanta kuitenkin eheytyy tietyn ajan kuluessa. BASE tietokannat skaalautuvat helposti lukuisille palvelimille [Pri08] ja ne ovatkin korvanneet ACID tietokannat useissa pilvipalveluissa [Päi10]. BASE periaatteiden idea onkin, että luopumalla ACID periaatteista saavutetaan paljon korkeampi suorituskyky ja parempi skaalautuvuus [Cat11]. 2.4 CAP teoreema CAP lyhenne tulee sanoista eheys (consistency), saatavuus (availability) ja osituksen sietokyky (partition tolerance) [Sto10]. Alun perin Eric Brewerin esittelemän teoreeman mukaan on mahdotonta taata kaikkia kolmea tekijää samanaikaisesti [Bar10]. CAP teoreeman tekijät tarkoittavat seuraavaa [Sto10]: Eheys edellyttää, että jokainen solmu näkee samat tiedot samaan aikaan. Saatavuus tarkoittaa, että on pystyttävä aina lukemaan ja kirjoittamaan. Osituksen sietokyky olettaa, että järjestelmä toimii vaikka yhteys joidenkin solmujen välillä katkeaa. Bartholomew kirjoittaa, että [Bar10] tavanomaiset SQL tietokantajärjestelmät ovat keskittyneet eheyden ja ACID sääntöjen noudattamisen tavoitteluun. Hänen mukaan NoSQL tietokantajärjestelmät keskittyvät joko eheyden ja saatavuuden tai saatavuuden ja osituksen sietokyvyn tavoitteluun. Eheyttä ja saatavuutta tavoittelevat tietokantajärjestelmät ovat hänen mukaansa suunniteltu käytettäväksi yhdessä palve
7 4 linsalissa ja niillä voidaan käsitellä suuria määriä tietoa helposti. Saatavuutta ja osituksen sietokykyä tavoittelevat tietokantajärjestelmät sopivat puolestaan nopeaa vasteaikaa tarvitseville web sovelluksille. 3 NoSQL keskusmuistitietokannat Tässä luvussa tarkastellaan tarkemmin neljää eri NoSQL keskusmuistitietokantajärjestelmää. Luvussa 3.1 käsitellään yksinkertaista avain arvo pohjaista Memcachedtietokantajärjestelmää. Luvussa 3.2 käsitellään Memcached tietokantajärjestelmää monipuolisempaa avain arvo pohjaista Redis tietokantajärjestelmää. Helposti skaalautuvaa suurien tietomassojen käsittelyyn kehitettyä Project Voldemort tietokantajärjestelmää käsittellään luvussa 3.3. Dokumenttipohjaista Terrastore tietokantajärjestelmää käsitellään luvussa 3.4. Lopuksi luvussa 3.5 tehdään lyhyt katsaus muutamaan muun NoSQL keskusmuistitietokannan tärkeimpiin ominaisuuksiin. 3.1 Memcached Memcached on avoimen lähdekoodin NoSQL keskusmuistitietokantajärjestelmä, johon tieto tallennetaan avain arvo pareina. Tiedon tallentaminen on toteutettu hajautustauluna ja Memcached toteuttaa operaatiot avain arvo parin asettamiselle, arvon hakemiselle avaimella sekä avaimen poistolle [Ler08]. Esimerkissä 1 käsitellään yksinkertaista Memcached tietokantaa käyttävää Ruby ohjelmaa. Ohjelman alussa määritellään käytettävät kirjastot ja rivillä kolme luodaan asiakasohjelman välityksellä yhteys portissa palvelevaan Memcached palvelimeen. Seuraavalla rivillä asetetaan vihannes nimisen avaimen arvoksi porkkana. Operaatiolle voidaan myös antaa parametreina tiedon voimassaoloaika mikäli parametria ei anneta, on tieto voimassa ikuisesti [Ler08]. Rivillä viisi haetaan samaiselta Memcached palvelimelta avainta vihannes vastaava arvo joka tulostetaan. Ohjelma siis tulostaa Arvo on 'porkkana'. Lerner kirjoittaa [Ler08] Memcached tietokantajärjestelmän olevan suunniteltu käytettäväksi muualta haetun tiedon väliaikaiseen säilytykseen ja olevan täten hyvin rajoitettu operaatioltaan vailla sisäänrakennettua tukea monimutkaisille tietotyypeille
8 5 1: require 'rubygems' 2: require 'memcache' 3: CACHE = MemCache.new 'localhost:11211' 4: CACHE.set('vihannes', 'porkkana') 5: value = CACHE.get('vihannes') 6: puts "Arvo on '#{value}'" Esimerkki 1: Memcached tietokantajärjestelmää käyttävä Ruby ohjelma. joskin hänen mukaan tuki niille voidaan toteuttaa asiakasohjelman puolella. Hänen mukaan Memcached jättää myös hajautuksen toteuttamisen asiakasohjelman vastuulle, jonka tulee päättää mille Memcached palvelimelle tieto tallennetaan ja vastaavasti miltä sitä haetaan. Asiakasohjelmia on saatavilla useille eri ohjelmointikielille ja hänen mukaan Memcached onkin tärkeä osa skaalautuvien websovellusten rakentamisessa sitä käyttämällä voidaan nopeuttaa sivuston vasteaikaa ja vapauttaa resursseja muuhun käyttöön, esimerkiksi relaatiotietokannoilta. Membrain ja Membase ovat Memcached tietokantajärjestelmän kanssa yhteensopivia keskusmuistitietokantajärjestelmiä, jotka laajentavat Memcached tietokantajärjestelmän toiminnallisuutta tuomalla tiedon pysyvyyden (persistence), toisintamisen (replication), korkean käytettävyyden (high availability) ja varmuuskopioinnin [Cat11]. Cattellin mukaan [Cat11] ilman tiedon pysyvyyttä ja toisintamista Memcached tietokantajärjestelmää ei voida pitää varsinaisena tietovarastona, toisin kuin Membrain ja Membase ovat. 3.2 Redis Redis on yhden henkilön projektista liikkeelle lähtenyt avoimen lähdekoodin avain arvo pohjainen NoSQL keskusmuistitietokantajärjestelmä, joka on kirjoitettu C ohjelmointikielellä [Cat11]. Tavanomaisista avain arvo tietokantajärjestelmistä poiketen Redis pystyy käsittelemään myös listoja, joukkoja, järjestettyjä joukkoja ja hajautustauluja [Ler10]. Toisin kuin edellisessä luvussa käsitelty Memcached, Redis voi tallentaa tiedon keskusmuistin lisäksi säännöllisesti myös levylle tiedon varmuuskopiointia varten [Cat11]. Redis voidaan asettaa kirjoittamaan myös kaikki muutokset suoraan levylle, joka toisaalta alentaa huomattavasti suorituskykyä [RuB11]. Muiden avain arvo tietokantajärjestelmien tapaan Redis toteuttaa lisäys, haku ja
9 poisto operaatiot [Cat11]. Redis sisältää myös operaatioita listojen ja joukkojen käsittelyyn sekä muita operaatioita [Ler10]. Luvun esimerkit perustuvat Redistietokantajärjestelmän dokumentaation tietotyyppien esittelyoppaaseen [RInt]. Esimerkissä 2 havainnollistetaan tietokantajärjestelmän mukana tulevaa komentoriviohjelmaa käyttäen laskurin kasvattamista ja vähentämistä sen omilla operaatioilla. Esimerkissä 4 lisätään joukkoon vihannekset kolme alkioita. Seuraavaksi joukon alkiot listataan ja yritetään lisätä samaan joukkoon yhtä alkiota, joka löytyy jo joukosta. Tämä ei onnistu, sillä kaikkien joukon alkioiden tulee olla uniikkeja [Ler10]. Lopuksi vielä varmistetaan, ettei lisäys onnistunut, kysymällä joukon mahtavuutta, eli sen alkioiden lukumäärää. Esimerkeissä esiteltyjen operaatioiden lisäksi Redis sisältää myös joukko operaatiot muun muassa unionille ja leikkaukselle sekä tuen järjestetyille joukoille [Ler10]. Ruflinin ja Burkhart kirjoittavat [RuB11] Redis tietokantajärjestelmän skaalautuvan horisontaalisesti lukuoperaatioiden suhteen tietokanta voidaan toisintaa useammalle solmulle isäntä renki periaatteella, missä järjestelmässä on useita renkejä, joilla on vain lukuoikeudet tietokantaan ja isäntä, johon varsinaiset muutokset tehdään. Heiredis> SET laskuri 1 OK redis> INCR laskuri (integer) 2 redis> DECR laskuri (integer) 1 Esimerkki 2: Laskurin kasvattaminen Redis tietokantajärjestelmässä. 6 Esimerkissä 3 lisätään listan luvut perään kolme alkiota, jotka seuraavaksi haetaan listasta; antamalla lopetusindeksiksi 1 saadaan koko lista. Viimeisenä haetaan ja samalla poistetaan listan ensimmäinen alkio. redis> RPUSH luvut eka toka kolmas (integer) 3 redis> LRANGE luvut 0-1 1) "eka" 2) "toka" 3) "kolmas" redis> LPOP luvut "eka" Esimerkki 3: Listan käyttö Redis tietokantajärjestelmässä.
10 7 redis> SADD vihannekset kurkku tomaatti porkkana (integer) 3 redis> SMEMBERS vihannekset 1) "porkkana" 2) "tomaatti" 3) "kurkku" redis> SADD vihannekset kurkku (integer) 0 redis> SCARD vihannekset (integer) 3 Esimerkki 4: Joukon käyttö Redis tietokantajärjestelmässä. dän mukaansa kirjoitusoperaatioiden suhteen skaalautuminen on myös mahdollista, mutta se vaatii asiakasohjelmalta tuen jatkuvalle hajauttamiselle. Lernerin mukaan [Ler10] Redis soveltuukin tilanteisiin, joissa tarvitaan nopeaa tietokantajärjestelmää, jolta vaadittavat tietorakenteet löytyvät Redis tietokantajärjestelmän tarjoamista tietorakenteista eikä mahdollinen viimeisimmän tiedon menettäminen ole haitallista. 3.3 Project Voldemort Project Voldemort on helposti skaalautuva ja suurien tietomassojen käsittelyyn suunniteltu avain arvo pohjainen NoSQL keskusmuistitietokantajärjestelmä [SKG10]. Voldemort on avointa lähdekoodia ja se on kirjoitettu Java ohjelmointikielellä [Cat11]. Sen tunnetuimpia käyttäjiä ja kehittäjiä on sosiaalisen median LinkendIn palvelu, jossa sitä käytetään erityisesti suuria tietomassoja käsittelevien toiminnallisuuksien toteutuksessa [SKG10]. Muiden avain arvo pohjaisten NoSQL keskusmuistitietokantajärjestelmien tapaan Voldemort tukee haku, lisäys ja poisto operaatioita [Päi10]. Aiemmissa luvuissa esitellyistä NoSQL keskusmuistitietokantajärjestelmistä poiketen Voldemort käyttää moniversioivaa samanaikaisuuden hallintaa päivitysoperaatioissa (multi version concurrency control MVCC) [Cat11]. Moniversioiva samanaikaisuuden hallinta liittyy tietokantamalliin, jossa tietoalkiosta on saatavilla nykyversion lisäksi myös vanhempia versioita alkion päivitysoperaatio siis ainoastaan luo uuden alkion eikä välttämättä poista vanhaa alkiota [BeG83]. Esimerkissä 5 havainnollistetaan Voldemort tietokantajärjestelmän moniversioivan samanaikaisuuden hallinnan toimintaa sen omaa komentoriviohjelmaa käyttäen. Esimerkki perustuu tietokantajärjestelmän dokumentaation pikaoppaaseen [VQck].
11 Esimerkissä tallennetaan avainta juoma vastaava arvo olut tietokantaan ja heti perään haetaan samaisella avaimella samainen arvo. Seuraavaksi tallennetaan avainta juoma vastaava arvo vesi ja haetaan se tietokannasta kuten edellä, jolloin huomataan versionumeron muuttuneen. > PUT "juoma" "olut" > GET "juoma" version(0:1): "olut" > PUT "juoma" "vesi" > GET "juoma" version(0:2): "vesi" Esimerkki 5: Project Voldemort tietokantajärjestelmän moniversioiva samanaikaisuuden hallinta. 8 Sumbalyn ja kumppaneiden mukaan [SKG10] Voldemort skaalautuu horisontaalisesti sekä luku että kirjoitusoperaatioiden suhteen. Cattell kirjoittaa [Cat11] tietokantajärjestelmän huolehtivan automaattisesti myös osien partitionnista yhtenäinäistä hajautusta (consistent hashing) käyttämällä tieto jaetaan koko solmujen muodostaman renkaan kesken. Voldemort tukee myös tiedon tallentamista levylle ja sen mukana tuleekin BerkleyDB ja MySQL toteutukset [Päi10]. 3.4 Terrastore Terrastore on dokumenttipohjainen NoSQL keskusmuistitietokantajärjestelmä, jota käytetään HTTP protokollan välityksellä tapahtuvien haku ja tallennusoperaatioiden kautta [Cat11]. Tietokannan dokumentit ovat JSON (JavaScript Object Notation) muodossa [WeD12]. Luvun esimerkit perustuvat Terrastore HTTP Client API dokumentaatioon [TAPI]. Esimerkissä 6 tallennetaan HTTP protokollan PUT päivitysoperaatiolla JSON objekti avaimella auto tietokannan säiliöön (bucket) parkkihalli. Esimerkissä 7 haetaan GETpyynnöllä säiliöstä parkkihalli avainta auto vastaava dokumentti ja saamme vastaukseksi saman JSON objektin, jonka tallensimme tietokantaan edellisessä esimerkissä. curl -X PUT -H "Content-Type: application/json" -d "{\"merkki\" : \"Ferrari\"}" Esimerkki 6: Dokumentin lisääminen Terrastore tietokantaan.
12 9 curl -X GET -H "Content-Type: application/json" {"merkki" : "Ferrari"} Esimerkki 7: Dokumentin hakeminen Terrastore tietokannasta. Esimerkissä 8 haetaan kokonainen säiliö sen sisältämine dokumentteineen. Pyyntö muistuttaa esimerkin 6 pyyntöä, mutta siitä on jätetty pois dokumentin avain. Esimerkissä 9 poistamme esimerkissä 6 lisäämämme dokumentin. Mikäli halutaan poistaa koko säiliö, tarvitsee esimerkin 9 pyynnöstä jättää pois esimerkin 8 tapaan dokumen tin avain. curl -X GET -H "Content-Type: application/json" {"auto":{"tyyppi" : "Ferrari"}} Esimerkki 8: Säiliön hakeminen Terrastore tietokannasta. curl -X DELETE -H "Content-Type: application/json" Esimerkki 9: Dokumentin poistaminen Terrastore tietokannasta. Cattellin mukaan [Cat11] kyselyille voidaan antaa myös ehtolauseita sekä rajoja ja se tukee map reduce periaatetta, jossa tehtävä hajautetaan suurelle määrälle solmuja (map), minkä jälkeen tulokset kootaan yhdeksi vastaukseksi (reduce). Lisäksi hänen mukaansa Terrastore tietokantajärjestelmästä on myös saatavilla Java ja Pythonasiakasohjelmatoteutukset. 3.5 Muut Scalaris Scalaris on Redis tietokantajärjestelmän kaltainen avoimen lähdekoodin avain arvopohjainen NoSQL keskusmuistitietokantajärjestelmä, joka on kirjoitettu Erlang ohjelmointikielellä [Cat11]. Cattellin mukaan [Cat11] Scalaris takaa tiedon olevan eheää ja tukevan ACID transaktioita. Hänen mukaan Scalaris osaa myös hajauttaa tiedon useammalle solmulle ja toisintaa synkronisesti.
13 Tokyo Cabinet Tokyo Cabinet on C ohjelmointikielellä kirjoitettu NoSQL keskusmuistitietokanta [Cat11]. Cattellin mukaan [Cat11] Tokyo Cabinet tarjoaa useita eri tietokantamoottorivaihtoehtoja. Hänen mukaansa niiden valinnasta riippuu myös tietokantajärjestelmän tarjoamat operaatiot joskin kaikki tarjoavat yleiset haku, lisäys ja poisto operaatiot. 4 Yhteenveto Luvussa 3.1 havaittiin, että NoSQL keskusmuistitietokantajärjestelmillä, kuten Memcachded, on tärkeä rooli perinteisten relaatiotietokantajärjestelmien rinnalla nykyaikaisissa web sovelluksissa [Ler08]. Luvussa 3.2 esiteltiin ominaisuuksiltaan jo hieman monipuolisempi tietokantajärjestelmä Redis, joka tukee useampia tietorakenteita, kuten listoja ja joukkoja [Ler10]. Luvussa 3.3 esiteltiin Project Voldemort, joka skaalautuu helposti ja kykenee käsittelemään suuria määriä tietoa nopeasti [SKG10]. Sumbalyn ja kumppaneiden mukaan [SKG10] Project Voldemort on myös yksi kulmakivistä maailmanlaajuiselle sosiaalisen median LinkedIn palvelulle, jossa sitä on käytetty menestyksekkäästi jo useiden vuosien ajan. Luvussa 3.4 tutkimme dokumenttipohjaista Terrastore NoSQL keskusmustitietokantajärjestelmää. Terrastore poikkeaa suuresti aikaisemmissa luvuissa esitellyistä tietokantajärjestelmistä, sillä se pohjautuu dokumentteihin avain arvo parien sijaan ja käyttää HTTP protokollaa tietokantaoperaatiossa [Cat11]. Lopuksi käytiin läpi lyhyesti muutama NoSQL keskusmuistitietokantajärjestelmä, joista yksi oli myös kaupallinen [FCP12]. NoSQL tietokantojen soveltuvuus riippuu pitkälti sovelluksen käyttötarpeesta [Ler10], mutta käyttämällä niitä oikeissa tilanteissa voidaan saavuttaa merkittävästi tehokkaampia ja skaalautuvampia sovelluksia [Ler08, SKG12].
14 11 Lähteet Bar10 D. Bartholomew. SQL vs. NoSQL. Linux Journal, 2010,195 (2010). [Myös: BeG83 P.A. Bernstein, N. Goodman. Multiversion concurrency control theory and algorithms. ACM Transactions on Database Systems, 8,4 (1983), sivut Cat11 R. Cattell. Scalable SQL and NoSQL data stores. ACM SIGMOD Record, 39,4 (2011), sivut FCP12 F. Färber, S.K. Cha, J. Primsch, C. Bornhövd, S. Sigg, W. Lehner. SAP HANA database: data management for modern business applications. ACM SIGMOD Record, 40,4 (2012), sivut Ler08 R.M. Lerner. At the forge: memcached. Linux Journal, 2008,176 (2008). [Myös: memcached]. Ler10 R.M. Lerner. At the forge: Redis. Linux Journal, 2010,197 (2010). [Myös: Pri08 D. Pritchett. BASE: An ACID alternative. ACM Queue, 6,3 (2008), sivut Päi10 R. Päivärinta. Applicability of NoSQL Databases to Mobile Networks. M.Sc. Thesis, Faculty of Information and Natural Sciences, School of Science and Technology, Aalto University, RInt A fifteen minute introduction to Redis data types. intro [ ]. RuB11 N. Ruflin, H. Burkhart. Social data storage systems. DBSocial '11 Proc. of the First ACM SIGMOD Workshop on Databases and Social Networks, 2011, sivut SKG12 R. Sumbaly, J. Kreps, L. Gao, A. Feinberg, C. Soman, S. Shah. Serving large scale batch computed data with Project Voldemort. FAST 12: Proc. of the 10 th USENIX Conference on File and Storage Technologies, 2012.
15 12 Sto10 M. Stonebraker. In search of database consistency. Communications of the ACM, 53,10 (2010), sivut 8 9. TAPI Terrastore HTTP Client API. [ ]. VQck Project Voldemort Quickstart. voldemort.com/quickstart.php [ ]. WeD12 C. von der Weth, A. Datta. Multiterm keyword search in NoSQL systems. IEEE Internet Computing, 16,1 (2012), sivut
arvostelija OSDA ja UDDI palveluhakemistoina.
Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution
Selainpelien pelimoottorit
Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
Aika/Datum Month and year Kesäkuu 2012
Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen
Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages
Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month
Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa
Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos
Action Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg
Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen
Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan
Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Pro gradu -tutkielma 31.1.2012 Helsingin yliopisto Humanistinen tiedekunta Filosofian, historian,
Luento 2: Tiedostot ja tiedon varastointi
HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...
Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto
Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään
Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä
hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto
jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja
Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1
Citrusleaf-tietokanta: Voiko NoSQL-tietokanta tarjota transaktioiden
hyväksymispäivä arvosana arvostelija Citrusleaf-tietokanta: Voiko NoSQL-tietokanta tarjota transaktioiden ACID-ominaisuudet? Mikko Kangasaho Helsinki 7.3.2012 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen
HELIA 1 (14) Outi Virkki Tiedonhallinta
HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3
18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne
HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten
Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36
!!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat
Tietokanta (database)
Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään
Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
! #! %! & #!!!!! ()) +
! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen
Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden
MEMS-muisti relaatiotietokannoissa
MEMS-muisti relaatiotietokannoissa Antti Tikka Espoo 28.2.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto
Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa
Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa
HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely
HAAGA-HELIA Heti-09 1 (14) Transaktionkäsittely Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen...
A274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative
Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin
INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta
Samanaikaisuuden hallinta Snapshot Isolationin avulla
hyväksymispäivä arvosana arvostelija Samanaikaisuuden hallinta Snapshot Isolationin avulla Olli Korhonen Helsinki 4.3.2009 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO
Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14
Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2
Luonnontieteiden popularisointi ja sen ideologia
Luonnontieteiden popularisointi ja sen ideologia Tapauksina Reino Tuokko ja Helsingin Sanomat 1960-luvulla Ahto Apajalahti Helsingin yliopisto Humanistinen tiedekunta Suomen ja Pohjoismaiden historia Pro
IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012)
IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) TEHTÄVIÄ/KYSYMYKSIÄ Määrittele tapahtuma (transaction) tapahtumien hallinta Mitä ovat tapahtuman ACIDominaisuudet?
Laskennallinen yhteiskuntatiede
Laskennallinen yhteiskuntatiede Matti Nelimarkka Helsinki 5.5.2011 LuK tutkielma HELSINGIN YLIOPISTO Tietojenkasittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
PN-puu Erno Härkönen Helsinki 24.10.2006 Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto
TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
ProQuest Dissertations & Thesis: The Humanities and Social Sciences Collection
Kuukauden tietokanta tammikuu 2013 ProQuest databases ARTBibliographies Modern (ABM) Modern and contemporary art journal articles and books British Humanities Index (BHI) Humanities - journals, weekly
Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen
Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen
Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas
Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä
Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,
Seminaari: HL7 versio 2
hyväksymispäivä arvosana arvostelija Seminaari: HL7 versio 2 Markus Koski Helsinki 29.9.2014 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF
JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
PIKAOHJE Web of Science tietokantojen käyttöön
PIKAOHJE Web of Science tietokantojen käyttöön SCIENCE CITATION INDEX Monitieteinen tietokanta, joka sisältää biologian, lääketieteen ja psykiatrian alalta n. 7100 lehteä SOCIAL SCIENCES CITATION INDEX
Algoritmit 2. Luento 4 To Timo Männikkö
Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4
Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,
Tieto- ja tallennusrakenteet
Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)
!"#$%&'$("#)*+,!!,"*--.$*#,&--#"*/".,,%0 1&'23456789::94752;&27455<:4;2;&,9:=>23?277<&8=@74;9&ABBCDABBE
!"#$%&'$("#)*+,!!,"*--.$*#,&--#"*/".,,%0 1&'23456789::94752;&2745523?27747544H9;&IG@&JG9?=&15=5H42>:9 '28
Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.
1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
SanssouciDB ja SAP HANA
Seminaari keskusmuistitietokannoista SanssouciDB ja SAP HANA Juho Tahvanainen Helsinki, 8.3.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY
Järjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000
Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->
Algoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018
SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010
SQLite selvitysraportti Juha Veijonen, Ari Laukkanen, Matti Eronen Maaliskuu 2010 Opinnäytetyö Kuukausi Vuosi 1 SISÄLTÖ 1. YLEISTÄ SQLITE:STA... 2 2. HISTORIA... 2 3. SQLITEN KÄYTTÖ... 3 3.1 SQLiten asennus
Arkkitehtuurinen reflektio
Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET
ELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2
Subversion-ohje Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Helsinki 1.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
Solidin korkean käyttöasteen tietokantajärjestelmä
hyväksymispäivä arvosana arvostelija Solidin korkean käyttöasteen tietokantajärjestelmä Antti Viita Helsinki 2.12.2007 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS
Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:
Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -
Palvelutasosopimukset ja niiden asema IT-ulkoistuksissa
Hyväksymispäivä Arvosana Arvostelija Palvelutasosopimukset ja niiden asema IT-ulkoistuksissa Marko Lehtimäki Helsinki 12.5. 2009 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i HELSINGIN YLIOPISTO
JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus
JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus Versio: 28.2.2013 Julkaistu: 28.2.2013 Voimassaoloaika: toistaiseksi Sisällys 1 Yleiset vaatimukset... 2 2 Latauspalvelun
Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
Visma Liikkuvan työn ratkaisut
Visma Liikkuvan työn ratkaisut Päivitysohje Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta.
Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas
Visma Liikkuvan työn ratkaisut Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan
Projektinhallintaa paikkatiedon avulla
Projektinhallintaa paikkatiedon avulla Tampereen Teknillinen Yliopisto / Porin laitos Teemu Kumpumäki teemu.kumpumaki@tut.fi 25.6.2015 1 Paikkatieto ja projektinhallinta Paikkatiedon käyttäminen projektinhallinnassa
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa
Asuntojen neliöhinnan vaihtelu Helsingissä (1997-2010)
hyväksymispäivä arvosana arvostelija Asuntojen neliöhinnan vaihtelu Helsingissä (1997-2010) Tuomas Puikkonen Helsinki 8.1.2010 Geoinformatiikan menetelmät ja kirjallisuus -kurssin harjoitustyö HELSINGIN
Dominointianalyysi. Teppo Niinimäki. Helsinki Approksimointialgoritmit HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Dominointianalyysi Teppo Niinimäki Helsinki 10.5.2010 Approksimointialgoritmit HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta
Algoritmit 2. Luento 4 Ke Timo Männikkö
Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
Algoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017
LINUX-HARJOITUS, MYSQL
LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10
HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta
Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Laitos Institution Department Politiikan ja talouden tutkimuksen laitos Tekijä Författare Author Virta, Mikko Antero Työn nimi Arbetets
REST an idealistic model or a realistic solution?
REST an idealistic model or a realistic solution? 17.10.2006 Jari Aarniala jari.aarniala@cs.helsinki.fi Johdanto Representational State Transfer, eli REST Arkkitehtuurinen tyyli hajautetuille (hypermedia)järjestelmille
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki
PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet
Ilmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit
Ilmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit Pertti Koskela Kasvatuksen ja koulutuksen toimiala Tietohallinto, Ict-kehityspalvelut Mukana : Espoon työväenopisto, Esbo
Järjestelmänvalvontaopas
Järjestelmänvalvontaopas Medtronic MiniMed Northridge, CA 91325 USA 800 646 4633 (800-MiniMed) 818 576 5555 www.minimed.com Edustaja EU:n alueella Medtronic B.V. Earl Bakkenstraat 10 6422 PJ Heerlen Alankomaat
815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
811312A Tietorakenteet ja algoritmit II Perustietorakenteet
811312A Tietorakenteet ja algoritmit 2017-2018 II Perustietorakenteet Sisältö 1. Johdanto 2. Pino 3. Jono 4. Lista 811312A TRA, Perustietorakenteet 2 II.1. Johdanto Tietorakenne on tapa, jolla algoritmi
A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi
A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07 Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT Tavoitteet Oppia tietokantojen suunnitteluperiaatteet Osata käyttää
tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla
2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella
MySQL ja PostgreSQL Seminaarityö
Jani Ahde (1401497, TI14SPeli) MySQL ja PostgreSQL Seminaarityö Essee Opintojakso 206101312_TP Marraskuu 2015 SISÄLLYS 1 JOHDANTO... 3 2 RELAATIO JA SQL... 3 2.1 Relaatiotietokanta... 3 2.2 SQL... 4 3
Algoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa
CT50A2602 Käyttöjärjestelmät Seminaarityö Tietokoneen muisti nyt ja tulevaisuudessa Jyrki Eurén Raimo Asikainen Janne Laitinen Teppo Lapinkoski Manu Toivanen Pasi Ruuth Johdanto Taustaa Työn taustana ryhmän
Algoritmit 2. Luento 6 Ke Timo Männikkö
Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu
FuturaPlan. Järjestelmävaatimukset
FuturaPlan Järjestelmävaatimukset 25.1.2017 2.2 Hermiankatu 8 D tel. +358 3 359 9600 VAT FI05997751 33720 Tampere fax. +358 3 359 9660 www.dbmanager.fi i Versiot Versio Päivämäärä Tekijä Kommentit 1.0
KODAK EIM & RIM VIParchive Ratkaisut
ATK Päivät 2006 Mikkeli KODAK EIM & RIM VIParchive Ratkaisut 29.-30.5. 2006 Stefan Lindqvist HCIS Sales Specialist Health Care Information Systems Kodak Health Group 3/24/2013 1 Arkistoinnin haasteita
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
Kymenlaakson Ammattikorkeakoulu
Kymenlaakson Ammattikorkeakoulu Tietotekniikka/Tietoverkkotekniikka Jussi Toivakka ja Juha Törö MySQL & PostGRE 1 Sisällysluettelo 2 Yleistä tietokannoista... 3 3 MySQL... 4 3.1 Historiaa... 4 3.2 Käyttö...
Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit
Esimerkki arkkitehtuurit Sivu 2/8 Sisällysluettelo 1. Johdanto... 3 1.1. Termejä... 3 2. Web hosting ilman kuormantasausta... 4 3. Web hosting kuormatasaus ja bastion... 5 3.1.... 5 3.2. Kuvaus... 5 4.
Simplex-menetelm. S ysteemianalyysin. 3. luento: Suuret LP-tehtävät sekä operaatiot harvoilla vektoreilla ja matriiseilla
Simplex-menetelm menetelmän laskennalliset tekniikat 3. luento: Suuret LP-tehtävät sekä operaatiot harvoilla vektoreilla ja matriiseilla Matemaattisten algoritmien ohjelmointi Kevät 28 / 1 Suuret LP-teht
FYYSINEN SUUNNITTELU
IIO30120 DATABASE DESIGN / TIETOKANTOJEN SUUNNITTELU JA IIO30220 DATABASE MANAGEMENT / TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI,
Johdanto PHP PostgreSQL. PHP & PostgreSQL. Paul Tötterman 5. helmikuuta PHP & PostgreSQL.
Paul Tötterman paul.totterman@iki.fi 5. helmikuuta 2008 LAMP SQL LAMP LAMP L = Linux tai *BSD, Solaris... A = Apache M = MySQL tai... P =, Perl, Python, Ruby... Flickr, Yahoo, Facebook... : Hypertext Preprocessor
Oppimateriaalin kokoaminen ja paketointi
Oppimateriaalin kokoaminen ja paketointi Pekka Simola Helsinki 14.4.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto