8.1 Oliosuuntautunut 8.2 Oliorelaationaalinen 8.3 NoSQL. Luku 8. Tietokantaparadigmat. ITKA204 kevät

Samankaltaiset tiedostot
1.1 Käsitteet ja termit 1.2 Historia. Luku 1. Johdanto. ITKA204 kevät

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen. Luku 2. Arkkitehtuuri ja analyysi. ITKA204 kevät

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

TIETOKANNAT JOHDANTO

HELIA 1 (17) Outi Virkki Tiedonhallinta

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietokantojen suunnittelu, relaatiokantojen perusteita

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HELIA 1 (11) Outi Virkki Tiedonhallinta

Relaatiomalli ja -tietokanta

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tiedonsiirto- ja rajapintastandardit

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Tiedon suojaaminen ja hallinta. Sytyke seminaari

ITKA204 Tietokannat ja tiedonhallinnan perusteet

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

A TIETOKANNAT, 4 op Kevät TI09

Järjestelmäarkkitehtuuri (TK081702)

Listat ja aggregaatio NoSQL-dokumenttivarastossa tapaus Taitorakennerekisteri. Tuuli Kähkönen

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL - STRUCTURED QUERY LANGUAGE

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Johdanto. Kiinteistöhuoltoyhtiö tarvitsee järjestelmän huoltopyyntöjen hallinnointiin

Luento 2: Tiedostot ja tiedon varastointi

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

IHTE-1900 Seittiviestintä

IHTE-1900 Seittiviestintä

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

Tietokanta (database)

Kymenlaakson Ammattikorkeakoulu

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Sovellusarkkitehtuurit

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Projektinhallintaa paikkatiedon avulla

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

CSE-A1200 Tietokannat

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Verkkotapahtumien keräysjärjestelmän tietokannan uudistaminen. Petri Kotiranta

REST an idealistic model or a realistic solution?

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tietokantakurssit / TKTL

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

2. Käsiteanalyysi ja relaatiomalli

HELIA 1 (15) Outi Virkki Tiedonhallinta

Luento 3 Tietokannan tietosisällön suunnittelu

HELIA 1 (14) Outi Virkki Tiedonhallinta

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

HELIA 1 (14) Outi Virkki Tiedonhallinta

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Big data and NoSQL databases

Tuomas-Matti Soikkeli. NoSQL-tietokannat: perusominaisuudet ja luokittelu

OpenOffice.org Base 3.1.0

5.1 Normalisoinnin tarkoitus 5.2 Funktionaalinen riippuvuus 5.3 Normaalimuodot. Luku 5. Normalisointi. ITKA204 kevät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Maiju Mykkänen Susanna Sällinen

Tietokantojen perusteet

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Tietokannanhallintajärjestelmä (DBMS)

The OWL-S are not what they seem

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

ECDL Tietokannat. Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7

ELM GROUP 04. Teemu Laakso Henrik Talarmo

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Tuomas-Matti Soikkeli. NoSQL-tietokannat: perusominaisuudet ja luokittelu

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Citrusleaf-tietokanta: Voiko NoSQL-tietokanta tarjota transaktioiden

Tuomas-Matti Soikkeli. NoSQL-tietokannat: perusominaisuudet ja luokittelu.

Tietokannat II -kurssin harjoitustyö

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

TIETOKANNAN SUUNNITTELU

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Täysautomatisoitu raportointiympäristö. Joni-Petteri Paavilainen Jani Alatalo

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Action Request System

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Transkriptio:

8.1 Oliosuuntautunut 8.2 Oliorelaationaalinen 8.3 NoSQL Luku 8 Tietokantaparadigmat ITKA204 kevät 2016 1

8.1 Oliosuuntautunut Kohti uusia tietomalleja 1960 1970 1980 1990 2000 2010 flat file hierarkkinen verkko relaationaalinen oliosuuntautunut oliorelaationaalinen NoSQL NewSQL ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 2

8.1 Oliosuuntautunut Olio-relaatioyhteensopimattomuus RDBMS Levyllä sijaitsevien taulurivien yhteen liittäminen muistissa sijaitseviin olioihin voi olla ongelmallista. Tunnistetusta, potentiaalisten ongelmien joukosta käytetään nimitystä olio-relaatioyhteensopimattomuus (object-relational impedance mismatch). Kapselointi: vaikutus rajapinnan kautta Natiivikyselyt ja SQL sekä tapahtumat Näkyvyysalueet ja käyttöoikeudet Perintä Olion identiteetti ja perusavain (olio-rivi) Suhteet sekä kootut ja moniarvoiset attribuutit (olio-rivi) Käytös Tietotyypit ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 3

8.1 Oliosuuntautunut Oliotietokannanhallintajärjestelmät Oliotietokannanhallintajärjestelmät (object-oriented database management system, OODBMS) ovat mahdollinen ratkaisu yhteensopimattomuuden poistamiseen: ei käytetä relaatioita lainkaan. Oliosuuntautunut tietokantaparadigma perustuu oliosuuntautuneen ohjelmoinnin perusperiaatteisiin. OODBMS:t tarjoavat mahdollisuuden ainakin yksinkertaisten operaatioiden (nouda, tallenna, poista) suorittamiseen. Keskeinen käsite on olion pysyvyys (persistence): muistissa oleva olio on lyhytkestoinen (volatile) levylle tallennettu olio on pysyvä (persistent). Oliotietokantojen heikkoon yleistymiseen on vaikuttanut standardoinnin epäonnistuminen ja heikko suosio yritysmaailmassa. Käytännön käyttökohteet ovat tällä hetkellä spesifisiä, esim. hiukkaskiihdyttimet. Tunnetuimpia tuotteita ovat mm. db4o, Perst ja ObjectDB. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 4

8.1 Oliosuuntautunut ORM-työkalut generoi SQL:n Sovellusohjelma (isäntäkieli) ORM-kirjasto ORM-työkalut (object relational mapper) ovat tavallisesti isäntäkielen lisäkirjastoja. ORM:n metodeilla generoidaan SQL:ää, joka lähetetään RDBMS:lle. Niiden hyötynä ja tarkoituksena on Olio-relaatioyhteensopimattomuuden minimoiminen. Yksinkertaisten kyselyiden tekemiseen ei tarvitse opetella SQL:ää. Yksinkertaisen kyselyiden tekemiseen ei tarvitse upottaa SQL:ää isäntäkieleen. Sovelluskehityksen, erityisesti sen alkuvaiheen vauhdittuminen. tietokanta-ajuri data SQL RDBMS ORM-työkalujen heikkouksia voivat olla esim. Lisäkirjastojen metodien ilmaisuvoima ei välttämättä ole SQL:n tasolla. Isäntäkielen vaihtuessa voidaan joutua opettelemaan uusi ORM-työkalu. Generoitu SQL voi olla huonosti optimoitua. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 5

8.2 Oliorelaationaalinen Oliorelaationaaliset tietokannanhallintajärjestelmät Nyt on esitelty kaksi tapaa varautua oliorelaatioyhteensopimattomuuteen: OODBMS ja ORM. Kolmas tapa on suunnitella tietokantajärjestelmä relaatiotietokannan ehdoilla. Tietokannan loogisen suunnittelun ei tarvitse ottaa suuresti kantaa tietotarpeisiin. SQL laajennoksineen on niin ilmaisuvoimainen, että lähes mihin tahansa tietotarpeeseen voidaan vastata. Tämä tapa asettaa rajoitteita sovellusohjelman suunnittelulle: monimutkaiset rakenteet kuten suunnittelumallit. Neljäs tapa ovat ns. oliorelaationaaliset tietokannanhallintajärjestelmät (object-relational database management system, ORDBMS). ORDBMS on tavallisesti RDBMS, johon on lisätty oliosuuntautunutta toiminnallisuutta. Olio-relaationaalisia ominaisuuksia on lisätty myös SQL-standardiin (SQL-99). Tuotteet toteuttavat ominaisuuksia yleisesti heikosti. Tunnettuja tuotteita ovat mm. PostgreSQL, Oracle ja Greenplum. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 6

8.2 Oliorelaationaalinen Oliorelaationaalinen tietomalli Oliorelaationaalisen tietomallin voidaan katsoa olevan SQL:n laajennos. Tärkeimmät lisäykset SQL:ään: 1) Mukautetut tietotyypit (user-defined type, UDT). Mahdollista määrittää uusia tietotyyppejä. Tyyppi voidaan periä jo olemassa olevasta tietotyypistä tai määrittää kokonaan uusi. Mahdollistaa mm. kootut attribuutit. Vastaavat olio-relaatioyhteensopimattomuuden tietotyyppi- ja rivi-olio ongelmiin. 2) UDT-tasoiset metodit Mukautetulle tietotyypille voidaan määrittää metodeja. Vastaavat olio-relaatioyhteensopimattomuuden oliokäytösongelmaan. 3) Taulutasoinen perintä Taulu voi periä ylitaulunsa sarakkeet. Vastaa olio-relaatioyhteensopimattomuuden perintäongelmaan. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 7

Taustaa NoSQL is a set of concepts that allows the rapid and efficient processing of data sets with a focus on performance, reliability and agility (McCreary & Kelly 2014). NoSQL-ilmiön (not only SQL) taustalla on Web 2.0 ja sisällön räjähdysmäinen kasvu. Syntynyt tarve massiivisten tietomäärien varastointiin ja käsittelyyn. Tämä edellytti hyvin tehokasta, skaalautuvaa ja äärimmilleen hajautettua arkkitehtuuriratkaisua. Tämän kurssin näkökulmasta NoSQL on tietokantaparadigmaperhe. Sen tarkoituksena on vastata RDBMS:ien heikkouksiin: RDBMS:t eivät skaalaudu tehokkaasti suuriin määriin dataa. RDBMS:t eivät skaalaudu tehokkaasti suuriin määriin käyttäjiä. RDBMS:ien hajautus on työlästä. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 8

Mikä on ajanut muutosta? Suunnannäyttäjinä ovat toimineet yritykset, joiden käyttäjämäärä on erittäin suuri: Google, Facebook, Twitter, Amazon, Reddit. Vuoteen 2009 mennessä käyttäjät olivat ladanneet Facebookiin yli 15 mrd valokuvaa (n. 1,5 Pb levytilaa). Facebookilla on arviolta yli 100 000 palvelinta. (Gruener 2012). Twitter tallensi yli 12 Tb tietoa päivittäin vuonna 2009, Facebook yli 500 Tb päivittäin vuonna 2012. (Constine 2012) Vuonna 2013 Twitterissä julkaistiin keskimäärin 5 700 viestiä sekunnissa. Määrä nousi 2013 elokuussa hetkellisesti yli 140 000 viestiin sekunnissa. (Krikorian 2013) Instagram sirpaloi tietokannan ennen käyttöönottoa 5 000 virtuaaliseen PostgreSQL-palvelimeen. Reddit-palvelussa tapahtui huhtikuussa 2015 n. 7,5 mrd sivulatausta. (Reddit 2015) Erään arvion mukaan yksistään vuonna 2015 luotiin 8 Yb dataa. Twitterin kautta julkaistu yht. yli 300 mrd viestiä vuoteen 2013 mennessä. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 9

Taustaa NoSQL-tuotteiden ominaispiirteitä, erityisesti RDBMS:iin verrattuna (McCreary & Kelly 2014): NoSQL-kannat soveltuvat erityisen hyvin hajautettuihin ympäristöihin. NoSQL-kannat tukevat horisontaalista skaalautuvuutta. Tietoa tallennetaan ja käsitellään monimuotoisilla rakenteilla. Tietojen yhdistäminen ei perustu liitosoperaatioon. NoSQL-kannat ovat usein skeemattomia, ts. niitä varten ei tarvita ennalta määriteltyjä tietokantakaavoja. Usein open source tuotteita. Kehitetty 2000-luvulla (rajaa pois IMS:n ja muut 1960-1970 -lukujen tuotteet). Lisäksi: ACID-ominaisuuksia voidaan jättää toteuttamatta tai löyhentää. Käyttökohteet vaihtelevat tuotteen mukaan yleiskäyttöisistä spesifisiin kohdealueisiin. Kyselykielet ovat SQL:ään verrattuna yksinkertaisia. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 10

BASE-oikeellisuusmalli NoSQL-tuotteille on tyypillistä, että ACID-ominaisuuksia ei toteuteta ainakaan kokonaisuudessaan. Tuotteita tarkastellaan ACID-ominaisuuksien ja normalisoinnin suhteen eri näkökulmasta: Datan toisteisuutta siedetään tai jopa suositaan. Toisteisuudesta johtuvia poikkeamia siedetään. Nopeutta, vikasietoisuutta ja saatavuutta arvostetaan tavallisesti enemmän kuin oikeellista dataa. Laskennan vähentämistä suositaan, uudet kohdealueet ja tekniikat siirtävät laskentaa asiakkaan laitteelle. NoSQL:n yhteydessä käytetäänkin ACID:n sijaan ns. BASE-oikeellisuusmallia: Basically Available (periaatteessa käytettävissä): dataa on aina saatavilla. Esim. vaikka jokin solmu menetetään, tai toisintaminen on viiveellistä. Soft state (ei aina oikeellinen): data ei ole aina yhdenmukaista solmujen kesken. Esim. toisintamisen seuraksena. Eventually consistent (lopulta oikeellinen): data on lopulta yhdenmukaista. Esim. kun kirjoitusoperaatiot / sekunti vähenevät, solmujen data on lopulta yhdenmukainen. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 11

CAP-teoreema A CAP-teoreema (ts. Brewerin teoreema) on näkökulma hajautettuihin järjestelmiin. Teoreeman mukaan järjestelmä voi toteuttaa kolmesta vaatimuksesta korkeintaan kaksi: Consistency (eheys tai ristiriidattomuus): järjestelmä sisältää yhden ja vain yhden version datasta. Availability (saatavuus): jokainen aktiivinen solmu suorittaa tapahtumia. Partition tolerance (osioinnin sietokyky): siedetään osiointia. C P CA CP AP data data data data S1 S1 S2 S1 S2 Keskitetty tietokanta. Atomiset operaatiot koko hajautetussa tietokannassa. Jatkuva toiminta ristiriidoista huolimatta. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 12

datan määrä 8.3 NoSQL Tietomallit NoSQL-paradigmaperhe jaetaan neljään luokkaan tietomallien mukaisesti: Avain-arvoparitietokannat (key-value store) Dokumenttitietokannat (document-oriented database) Sarakeperhetietokannat (column-family tai wide column store) Graafitietokannat (graph database) KV CF Näiden neljän pääluokan sisällä on alaluokkia. Tuotteella voi olla piirteitä useammastakin pääluokasta. Tuotteiden kenttä ja tietomallit elävät jatkuvassa muutoksessa. relaationaalinen DO GR tietomallin monimutkaisuus ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 13

Avain-arvopari Avain-arvoparitietomallin mukaisesti tietue koostuu avaimesta ja avaimen arvosta. Avain yksilöi arvonsa kuten esim. hajautustaulu (hash table) tai loogisen tason tiedostojärjestelmä. Jotkin tuotteet sallivat avaimen arvoksi monimutkaisetkin tietotyypit. avain 61 76 61 69 6e Avain Arvo arvo nimi : Aatami Rastas osoite : Välikatu 10 /var/usr/01.png http://www.a.fi BLOB HTML-tiedosto tilaukset 617661696e Muista vehnäjauhot! tuote : leivänpaahdin määrä : 1 view-person?personid=12345&format=x ml <person id= 12345 > <name>aatami</name> </person> tuote : kiharrin määrä : 4 ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 14

Avain-arvopari Tietokannan rakenne on äärimmäisen yksinkertainen. Tietokannan loogisessa suunnittelussa tietotarpeet korostuvat: Kyselykielet rajoittuvat tavallisesti yksinkertaisiin operaatioihin (get, put, delete). Kaikki haluttu data pyritään noutamaan yhdellä yksinkertaisella kyselyllä. Tuotteille on ollut tyypillistä, että DBMS ei osaa käsitellä avaimen arvon osia, vaan avain on DBMS:lle atominen (ts. läpinäkymätön) kokonaisuus. Tämä piirre on kuitenkin vähitellen häviämässä. Liitosten tekeminen tehdään tavallisesti sovellusohjelman tasolla. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 15

Avain-arvopari Tietomallin tai tuotteiden ominaispiirteitä: Jotkin tuotteet voivat pitää tietokantaa kokonaisuudessaan muistissa (ns. in-memory database). Haku- ja indeksointitoiminnot perustuvat keinoavaimeen. Rakenne voi sisältää toisistaan paljonkin eroavia tietotyyppejä. Sopivat kohdealueisiin, jotka eivät vaadi monimutkaisia tapahtumia tai tietokantakyselyitä, ja joissa nopeus on erityisen tärkeää. Tietoa toistetaan. Tunnistettuja käyttökohteita ovat esim. Sanakirjat, valokuva- ja muut dokumenttiarkistot. Session data, asetukset, käyttäjäprofiilit, ostoskorit. Suosittuja tuotteita vuonna 2016: Riak, Redis ja memcached. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 16

Dokumentti Dokumenttitietomalli muistuttaa avain-arvoparitietomallia: dokumenteilla on tunniste ja sisältö. Dokumentit ovat kuitenkin DBMS:lle läpinäkyviä: se pystyy erottelemaan dokumentin osia toisistaan. tunniste dokumentti ObjectID(64 6f 6b 75 6d 65) etunimi : Aatami sukunimi : Rastas osoite : Välikatu 10 A tilaukset : tilaus : tilausnro : 1001 tuotenimi : paahdin määrä : 1 tilaus: tilausnro : 1002 tunniste: 68 6f 6b 70 6d 65 avain arvo etunimi Bertta sukunimi Hukari ikä 25 ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 17

Dokumentti Dokumentit tallennetaan tavallisesti joko XML- (Extensible Markup Language), JSON- (JavaScript Object Notation) tai BSON-formaatissa (Binary JSON). Tietomallin ja tuotteiden ominaispiirteitä: Avain-arvoparitietomallin kaltainen skeemattomuus. Dokumentit voivat poiketa rakenteeltaan huomattavasti toisistaan. Haku voi perustua tunnisteen lisäksi arvoihin (avain-arvoparituotteita monipuolisemmat kyselykielet). Tietoa toistetaan. Tunnistettuja käyttökohteita ovat esim. Sisällönhallintajärjestelmät, blogit, joustavia skeemoja vaativat kohdealueet. Suosittuja tuotteina vuonna 2016: MongoDB ja CouchDB. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 18

Sarakeperhe Sarakeperhetietomallin nimeämiskäytännöt ovat tuotesidonnaisia. Haluttu arvo tunnistetaan rivitunnisteen (row id) ja (sarake)avaimen yhdistelmästä. nimiavaruus asiakkaat sarakeperhe taloudet avain : arvo supersarake nimi : Aatami perhe rivitunniste avain : arvo 73 61 72 nimi : Bertta avain : arvo nimi : Cecilia rivitunniste avain : arvo avain : arvo 73 60 70 nimi : Daavid email : da@vid.fi ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 19

Sarakeperhe Tietomallin tai tuotteiden ominaispiirteitä: Aikaleimat: tietueista voidaan tallentaa useita eri versioita. Moniosaiset tietueiden tunnisteet: rivi- ja sarakeavainten lisäksi myös aikaleimat. Tietokanta ei ole täysin skeematon: sarakeperheen rivit voivat olla rakenteeltaan erilaisia ja tyhjäarvoja voi esiintyä runsaastikin. Tunnistettuja käyttökohteita ovat esim. Massiivisten datamäärien reaaliaikainen analysointi (esim. hakurobotit, lisätty todellisuus). Laajat ja harvat (sparse) taulukot. Suuriinkin rakenteellisiin muutoksiin varautuvat järjestelmät. Suosittuja tuotteina vuonna 2016: Apache Cassandra, HBase ja Hypertable. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 20

Graafi Graafitietomalli (tai verkko-) perustuu osittain verkkoteoriaan: tietokanta nähdään solmuina (node) eli kohteina ominaisuuksineen ja suunnattuina kaarina (edge) eli suhteina ominaisuuksineen. Ominaisuus muodostuu avaimesta ja avaimen arvosta. Solmu ominaisuus Solmu nimi : Aatami tyyppi : henkilö sukulaisuus : isä nimi : Cecilia tyyppi : henkilö ominaisuus ominaisuus ominaisuus ominaisuus avio : 2000 rekrytoitu : 2006 tykkää : true titteli : CFO Solmu ominaisuus Solmu nimi : Bertta tyyppi : henkilö rekrytoitu : 2005 nimi : Facebook tyyppi : yritys ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 21

Graafi Tietomallin tai tuotteiden ominaispiirteitä: Liitoksia ei tehdä loogisten viittauksien avulla (kuten RDBMS), vaan fyysisten. Skeemattomuus: ominaisuuksia voidaan lisätä vaivattomasti sekä solmuihin että kaariin. Kyselyt poikkeavat muiden tietomallien kyselyistä, esim. Mitkä ovat lähimmät solmut? Mikä on lyhin polku kahden annetun solmun välillä? Millä solmuilla on lähisolmuja samoilla arvoilla? Miten samanlaisia ovat kahden annetun solmun naapurisolmut? Tunnistettuja käyttökohteita ovat esim. Sosiaaliset verkostot, vahvasti toisiinsa liittyvä paikkatieto, reititys. Suhdeanalyysi, erilaiset suosituksia tarjoavat järjestelmät. Suosittuja tuotteina vuonna 2016: Neo4J, OrientDB ja Infinite Graph. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 22

Monikielisyys Vuonna 2016 näyttää, että NoSQL-tuotteet ovat tulleet jäädäkseen. Paradigmojen yhteentörmäyksestä näyttää jääneen jäljelle ns. monikielisyys (polyglot persistence). Sen mukaan tietokantajärjestelmässä ei käytetä vain yhtä tietokantaparadigmaa, vaan sovelletaan eri paradigmojen tuotteita niille sopiviin järjestelmän osa-alueisiin. Osa-alue Kriittistä osa-alueessa Tietomalli Huudot Nopeus Avain-arvopari Maksutapahtumat Datan oikeellisuus Relaationaalinen Tuotesuositukset Nopeat liitokset Graafi Käyttäjien suhteet Nopeat liitokset Graafi Raportointi Monipuoliset raportointiominaisuudet Relaationaalinen Analysointi Suurten datamäärien reaaliaikainen analysointi Sarakeperhe ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 23

Tulevaisuus Yritykset haluttomia luopumaan RDBMS:stä SQL:n ja ACID:n vuoksi (Venkatesh & Nirmala 2012). Tunnistettu ongelma NoSQL-tietomallissa on sovelluskehityksen haastavuus. Syntyi uusi suuntaus nimeltä NewSQL. Tietomalleja luonnehditaan sanalla semi-relational. Solmun suorituskyky on RDBMS:n solmua parempi. Kyselykieli on SQL ja tuotteesta riippuen lisäksi muitakin. ACID-ominaisuudet toteutetaan, ja rinnakkaisuudenhallinta toteutetaan muuten kuin lukituksella. Hyödyntävät NoSQL-perheen piirteitä, kuten täysin muistissa toimivia tietokantoja ja sirpalointitoimintoja. Tukevat horisontaalista skaalautuvuutta, täysin erillinen arkkitehtuuria ja hajautusta. Oliosuuntautunut Oliorelaationaalinen Relaationaalinen NewSQL NoSQL ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 24

Osaamistavoitteet Ymmärtää mitä olio-relaatioyhteensopimattomuudella tarkoitetaan ja miten sitä voidaan välttää. Osaa kuvailla BASE-oikeellisuusmallia ja tietää mitä CAP-teoreemalla tarkoitetaan. Osaa kuvailla erilaisia NoSQL-tietomalleja ja tietää niiden erot relaationaaliseen tietomalliin. Ymmärtää monikielisyyden perusperiaatteen. Esim. Mitä tarkoitetaan olio-relaatioyhteensopimattomuudella? Mitä tarkoitetaan BASE-oikeellisuusmallilla? Kuvaile lyhyesti kutakin NoSQL-tietomallia. Kuvaile NoSQL-tuotteiden tyypillisiä eroja relaationaalisiin tuotteisiin. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 25