Tietokantojen suunnittelun perusteita. YYT-C3001 Ympäristötiedon hallinta Jussi Nikander, erikoistutkija, Luonnonvarakeskus

Samankaltaiset tiedostot
SQL - STRUCTURED QUERY LANGUAGE

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

CSE-A1200 Tietokannat

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

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

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Johdanto PHP PostgreSQL. PHP & PostgreSQL. Paul Tötterman 5. helmikuuta PHP & PostgreSQL.

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

TIETOKANNAT JOHDANTO

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

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

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

Tietokantakurssit / TKTL

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

MySQL ja PostgreSQL Seminaarityö

2. Käsiteanalyysi ja relaatiomalli

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Luento 2: Tiedostot ja tiedon varastointi

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

TIETOKANTOJEN PERUSTEET MARKKU SUNI

SPARQL-workshop. Sini Pessala Kirjastoverkkopäivät KANSALLISKIRJASTO - Kirjastoverkkopalvelut

SELECT-lauseen perusmuoto

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

CSE-A1200 Tietokannat

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4);

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

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

ASTERI-OHJELMIEN SQL-ERIKOISKURSSI LUENTOKALVOT

Dell Fluid Data TM solutions

Luento 12: XML ja metatieto

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

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

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

Liitokset - haut useaan tauluun

Tietokantojen perusteet

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

SQL:N PERUSTEET MARKKU SUNI

Projektinhallintaa paikkatiedon avulla

Opiskeluoikeuksien maaran tiedonkeruu

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

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Relaatiomalli ja -tietokanta

Poweria analytiikkaan

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

Tietokannat II -kurssin harjoitustyö

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

Paikkatiedon hallinta ja analyysi

SPARQL(SPARQL Protocol and RDF Query Language)

TIETOKANTOJEN PERUSTEET MARKKU SUNI

CSE-A1200 Tietokannat

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

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

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

3. Taulujen määrittely ja muuttaminen

Järjestelmäarkkitehtuuri (TK081702)

Transkriptio:

Tietokantojen suunnittelun perusteita YYT-C3001 Ympäristötiedon hallinta, erikoistutkija, Luonnonvarakeskus

Luennon sisältö Johdanto: data, tieto ja tietämys Tietokantojen perusteita Tietokantojen käyttö: kyselykielet Arvauksia tulevista trendeistä Page 2

Johdanto: data, tieto, tietämys, sekä niiden käyttö ja hallinta Page 3

Peruskäsitteet: ihmisten ja organisaatioiden näkökulma Tietämyksen hallinta on toimintaa, jonka avulla pyritään pitämään kirjaa ja käyttämään organisaation tietämystä Tietämys on tietoa, jota on sovellettu tietyssä asiayhteydessä Tieto on perusteltu tosi uskomus Tietämystä käytetään parantamaan toimintaa Page 4

Tieto ja tietämys, yksinkertainen esimerkki Tieto: Lannoitteet auttavat kasveja kasvamaan Asiayhteys: Maatalous Tietämys: Lannoittaminen lisää satoa Parannus toimintaan: koska lannoittaminen maksaa k ja lisää sadon arvoa (k+m), lannoitetaan pellot Page 5

Tarkempi ja parempi tietämys mahdollistaa paremman toiminnan Pellon sisäisen satopotentiaalin ja muiden tekijän vaihtelun takia lannoitteen määrää kannattaa vaihdella pellon eri osissa parhaan hyödyn saavuttamiseksi Page 6

Peruskäsitteet: tietotekniikkanäkökulma Data on yksittäisiä symboleita ilman merkitystä, esim. numero: 20151001 Tieto on dataa, jolle on annettu merkitys, esim. 20151001 on päivämäärä muodossa YYYYMMDD; 1. lokakuuta 2015 Tietämys on tietoa, joka on asetettu asiayhteyteen, esim. tämä luento pidetään kyseisellä päivämäärällä Page 7

Data, tieto, ja tietämys, yksinkertainen esimerkki Sääasemat tuottavat säähavaintoja - Havainnot koostuvat mittauksista (data), jotka jokainen mittaavat jotain sääsuuretta (merkitys, tieto) Ilmatieteen laitos käyttää havaintoja - Tämänhetkinen säätila, sääennuste (tietämys) Ihmiset käyttävät sääennusteita - En ruiskuta viljoja nyt, koska kohta alkaa sataa Page 8

Yksityiskohtaisempi ja paremmin hyödynnetty tieto mahdollistaa kehittyneemmän päätöksenteon Koska tautipaine on koholla ja sen ennustetaan kohoavan nopeasti, kannattaa harkita kemikaaliruiskutusta sään salliessa Page 9

Data, tieto, ja tietokannat Tietoa hallitaan tietokantojen avulla Tietokanta on järjestetty ja luetteloitu joukko tietoalkioita (dataa), joilla on tietty merkitys (tieto) Tietokannan avulla tarvittava tieto on helposti käytettävissä - Tietoa haetaan, lisätään, ja poistetaan tietokannasta Page 10

Tietokannat eivät ole uusi keksintö Ennen tietokoneita tietokannoista käytettiin tyypillisesti nimeä arkisto Käyttöliittymänä toimi arkiston hoitaja Page 11

Tietokanta tiedon tallennus, ja hallintavälineenä Ohjelmisto A Ohjelmisto B Ohjelmiston A data Ohjelmiston B data Massamuisti Page 12

Tietokanta tiedon tallennus, ja hallintavälineenä Ohjelmisto A? Ohjelmisto B Ohjelmiston A data Ohjelmiston B data Massamuisti Page 13

Tietokanta tiedon tallennus, ja hallintavälineenä Ohjelmisto A Ohjelmisto B Tietokanta Massamuisti Page 14

Tietokantojen perusteita Page 15

(Erittäin) abstrakti malli tietokoneesta Prosessori laskee - Nopea, pieni muisti Keskusmuisti tallettaa työdatan - Suhteellisen nopea ja iso Muistin koko 128MB (0,1GB) 4-64GB CPU Keskusmuisti Latenssi ~CPU:n nopeus ( < 1 ns) < 10 ns Massamuisti sisältää muun datan - Hidas mutta valtava 512+ GB Kovalevyt ja muut mediat 1-10 ms (10 6 ns) Page 16

Tietokanta tietokoneessa Tietokanta ohjaa ohjelmistojen pääsyä tietoon - Ohjelmisto voi hakea, lisätä, ja poistaa tietoa Tietokanta tallettaa tiedon massamuistiin tehokkaasti - Tiedon haku ja tallennus hitaaseen massamuistiin ei aiheuta valtavaa pullonkaulaa Page 17

Tietokannan määritelmä Yleisesti: tietokanta on järjestetty joukko tietoa, jota on mahdollista käsitellä tehokkaasti Tietokantoja on monenlaisia - Relaatiotietokannat (SQL) - Dokumenttitietokannat (NoSQL) - Graafitietokannat (NoSQL) - yms. Page 18

Tietokannan rakenne Ulkoinen näkymä - Mitä tietokannan käyttäjät näkevät Looginen näkymä - Miten käyttäjät pääsevät käyttämään tietokannan dataa Fyysinen taso - Miten data tietokannassa on järjestetty, luetteloitu, ja tallennettu Users / programmers Applications Queries DBMS Query interpreter and processor Data access engine disk Data Metadata Page 19

ER-Malli (Entity-Relationship Model) Koostuu entiteeteistä, joilla on arvoja ja jotka on liitetty toisiinsa yhteyksillä - Jotkut arvoista ovat avainarvoja joiden avulla tietoa voidaan luetteloida - Erilaisia yhteyksiä ovat 1:1, 1:N, M:N ER-malli on formaali kuvaus oikean maailman ongelmasta - Helppo muuttaa (relaatio)tietokantakuvaukseksi Page 20

Esimerkki: MMORPG Page 21 Source: wikipedia

Relaatiotietokanta Koostuu tauluista (relaatiot) joissa on sarakkeita (arvoja) ja jotka sisältävät rivimuotoista dataa (tupleja, monikkoja) - Vähintään yksi arvo on avainarvo - Jos avaimia on enemmän kuin yksi, on yhden oltava ensisijainen avain - Jotkut avaimet voivat viitata muihin tauluihin Yhä yleisin tietokantatyyppi Page 22

Esimerkki relaatiotietokannasta Page 23 Source: http://info.sns.edu.pl/

Relaatiotietokantojen vahvuuksia Transaktiot ja rinnakkaisuuden hallinta - ACID-ominaisuudet takaavat tiedon säilymisen ja tietokannan pysymisen sallitussa tilassa Pitkään käytössä ollut ja hyväksi havaittu teknologia - Ohjelmistot kehittyneitä, osaajia löytyy Tukee monimutkaisia kyselyrakenteita - Kysely on tietokannalle annettu käsky Page 24

Atomicity, consistency, isolation, durability (ACID) Atomicity (atomisuus) tarkoittaa, että muutos tietokantaan tehdään joko kokonaan tai ei laisinkaan Consistency (johdonmukaisuus) tarkoittaa, että tietokanta on jokaisen operaation jälkeen sallitussa tilassa Isolation (eristäminen) tarkoittaa, että transaktion muokkaamaan tietoon ei päästä käsiksi ennen transaktion päättymistä Durability (pysyvyys) tarkoittaa, että suoritettu transaktio säilyy tietokantavirheistä huolimatta ACID on relaatiotietokantamallin kivijalka Page 25

Relaatiotietokantojen heikkouksia Sopii vain jäsennetyn datan tallennukseen - Jäsentymätön data ei tue kyselyitä Rakenne usein hyvin monimutkainen - Satoja tauluja, tuhansia arvoja Raskas rakenne voi johtaa skaalautuvuusongelmiin - Esim. valtava määrä rinnakkaisia käyttäjiä Ohjelmistot hyvin raskaita - Useimmat käyttäjät tarvitsevat murto-osaa ominaisuuksista Page 26

Esimerkki johon relaatiotietokanta ei sovellu: verkkohaku Kysely on avainsana tai avainsanojen joukko - Yksinkertainen kysely Vastaus on joukko html-sivuja - Osittain jäsennettyä dataa Valtaosa operaatioista kyselyitä, päivitykset tehdään usein massa-ajoina - Transaktioita ei oikeastaan tarvita Page 27

Avain-arvo -tietokanta Tietokanta koostuu avaimista ja niitä vastaavista arvoista - Avain-arvo avaruutta voidaan tukea esimerkiksi arvoista haetulla metatiedolla tai ontologioilla Tietojen ajantasaisuutta ei välttämättä taata - Tieto esim. päivittyy jossain vaiheessa Tyypillisesti skaalautuu erittäin hyvin Tietomalli huomattavasti relaatiomallia joustavampi Page 28

Graafitietokanta Järjestää tallennetun tiedon graafiksi - Koostuu solmuista ja niitä yhdistävistä kaarista - Sekä solmuihin että kaariin liittyy avain-arvopareja Avaimia voidaan järjestää osoiteavaruuksiin ja niihin voidaan liittää merkitys (semantiikka) - Ontologiamallit ja semanttinen verkko Relaatiotietokantaa joustavampi tietomalli, joka on helpommin muokattavissa Page 29

Graafitietokantaesimerkki Lähde: http://milicicvuk.com/blog/2011/08/10/fixing-the-rdf-model/ Page 30

Paikkatieto tietokannoissa Useimpia tietokantoja ei ole tarkoitettu ensisijaisesti paikkatiedon tallentamiseen Relaatiotietokannan data koostuu tietyn kokoisista dataalkioista - Polygonin koko vaihtelee Avain-arvo tietokanta tallentaa symbolidataa - Rasteri ei kuvaa symbolia vaan pintaa Paikkatieto on moniulotteista - Tietokannat usein olettavat datan olevan yksiulotteista Paikkatieto aiheuttaa muutoksia tietokantoihin Page 31

Vektorimuotoisen paikkatiedon jäsennysesimerkki: OGC Simple Features Page 32

Mikä on Simple Feature Simple Features standardin mukaisten elementtien tulee olla yksinkertaisia (simple) ja valideja (valid) Piste on aina validi Viiva ei saa ristetä itsensä kanssa (pl. päätepisteissä) Polygonin tapaus on monimutkaisempi Page 33

Simple Features esimerkki Page 34

Simple Features esimerkki Page 35

Paikkatieto relaatiotietokannoissa Uudet datatyypit paikkatiedolle - Vähintään piste, viiva, ja polygoni Koordinaattijärjestelmät Laajennukset kyselykieleen - <, =, > tilalla topologiset ja muut paikkatietokyselyt Paikkatiedon käyttö avainarvoina vaatii uusia jäsennysmenetelmiä - Paikkatietorakenteita fyysisellä tasolla Page 36

Paikkatiedot relaatiotietokannoissa Jos paikkatietoa täytyy päivittää käsin, voi tällainen päivitys viedä pitkän aikaa Relaatiotietokannan transaktioiden oletetaan kestävän lyhyen aikaa - Muuten ACID estäisi rinnakkaisuuden Täten paikkatietopäivitykset voidaan joutua hoitamaan erityisjärjestelyin - Ns. pitkät transaktiot Page 37

Paikkatieto muissa tietokannoissa Esitystapa riippuu tietokannasta Avain-arvo tietokannoissa avaimet oletusarvoisesti merkkijonoja - Paikka-avain vaatii muutoksia tietokantaan Graafitietokannoissa erillisia ontologioita (jäsennyksiä) paikkatiedolle - Esimerkiksi W3C:n geo-ontologia, OpenGis GeoSPARQL Käytäntö on kirjavaa Page 38

Tietokantojen käyttö: Kyselykielet Page 39

Structured Query Language (SQL) Relaatiotietokantojen käyttöön kehitetty kieli SQL:n sisältää tietokantojen ylläpitoon ja käyttöön tarvittavat komennot Kansainvälinen standardi Deklaratiivinen kieli - SQL-käsky kertoo mitä pitää tehdä, mutta ei miten Page 40

Tietomallin hallinta SQL:n avulla voidaan luoda, muokata ja poistaa tietokannan tauluja CREATE TABLE City ( name VARCHAR(20) PRIMARY_KEY, pop INT, capital CHAR(1), shape POLYGON); ALTER TABLE City ADD country VARCHAR(20); ALTER TABLE City DROP COLUMN capital; TRUNCATE TABLE City; DROP TABLE City; Page 41

Tietokantahaut SQL-kielellä SELECT * FROM City; SELECT name, pop FROM City WHERE country= Finland ORDER BY pop; SELECT Book.title, count(*) AS Authors FROM Book JOIN Book_author ON Book.isbn = Book_author.isbn GROUP BY Book.title; Page 42

Tiedon muokkaaminen SQL INSERT INTO City VALUES ( Vantaa, 200000, N, polygon, Finland ); UPDATE City SET pop=213250 WHERE name= Vantaa ; DELETE FROM City WHERE pop < 100000; DELETE FROM City; Page 43

SPARQL (SPARQL Protocol And Query Language) RDF-graafitietokantojen käyttöön kehitetty kieli - Semanttinen, graafiin tallennettu tripletti-tieto Vain datan hakua varten, päivittäminen muilla keinoin W3C:n standardi SQL:n tavoin deklaratiivinen kieli Page 44

Tietokantahaut SPARQL-kiellä PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX org: <http://example.com/ns#> CONSTRUCT {?x foaf:name?name } WHERE {?x org:employeename?name } PREFIX foaf: <http://xmlns.com/foaf/0.1/> ASK {?x foaf:name "Alice" } Page 45

SPARQL-hakutulokset SELECT haku palauttaa tietoalkioita taulukkomuodossa - Vastaa SQL:n SELECT-hakua CONSTRUCT haku palauttaa RDFmuodossa olevaa tietoa - Voidaan käyttää esim. tiedon siirtämiseen osoiteavaruudesta toiseen ASK haku palauttaa totuusarvon Page 46

Paikkatiedon käsittely tietokannoissa Paikkatieto ei ole lähtökohtaisesti tekstimuotoista Kyselyt ovat tekstimuotoisia Kyselyissä paikkatieto on esitettävä tekstimuodossa - WKT: Well-Known Text on vektorimuotoisen paikkatiedon tekstimuotoinen esitystapa Page 47

WKT-esimerkkejä POINT(0 0) LINESTRING(0 0,1 1,1 2) POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) MULTIPOINT(0 0,1 2) MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1-1,-1-2,-2-2,-2-1,-1-1))) GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4)) Page 48

WTK SQL-kyselyissä, esimerkkejä INSERT INTO global_points (name, location) VALUES ('Town', POINT(-110 30)); SELECT name FROM global_points WHERE Within(location, POINT(-110 29), 1000000); SELECT the_geom FROM geom_table WHERE Distance(the_geom, POINT(100000 200000)) < 100 SELECT the_geom FROM geom_table WHERE Intersect(the_geom, 'BOX(90900 190900, 100100 200100) ) AND Distance(the_geom, POINT(100000 200000)) < 100 Page 49

Nykyisiä ja tulevia trendejä Page 50

Verkko, pilvet, Big Data, ja muu hype Tietokanta harvemmin sijaitsee samalla koneella kuin sen käyttäjä - Asiakas palvelin -arkkitehtuuri Palvelinten virtualisointi on siirtänyt tietokantoja pilvipalveluihin - Laskenta- ja tallennusresursseja voidaan skaalata helposti Big Data on valtavat määrät jäsentämätöntä dataa, jota relaatiotietokannat eivät vaan kykene käsittelemään Page 51

Pilvipalvelut ja tiedonhallinta: laitteiston ja palveluiden erottaminen toisistaan Palvelu Palvelu Palvelu Palvelu Palvelu Palvelu Palvelu Palvelu Palvelu Pilviarkkitehtuuri Palvelin Palvelin Palvelin Palvelin Palvelin Page 52

Big Data: lisäarvoa suurista, jäsentämättömistä datamassoista Page 53

Tietokonearkkitehtuurin muutos Tietokonearkkitehtuurin peruspalikat ovat pysyneet aika samoina pitkän aikaa - Prosessorit laskevat - Keskusmuisti tallettaa tarvittavan datan - Massamuisti tallettaa kaiken datan Palikat ovat kuitenkin muuttuneet ja eläneet Page 54

Toinen (Erittäin) abstrakti malli tietokoneesta Prosessori laskee - Nopea, pieni muisti Keskusmuisti tallettaa työdatan - Suhteellisen nopea ja iso Muistin koko 128MB (0,1GB) 4-64GB CPU Keskusmuisti Latenssi ~CPU:n nopeus ( < 1 ns) < 10 ns Massamuisti sisältää muun datan - Hidas mutta valtava 512+ GB Flash-muisti R: 10 4 ns W: 10 6 ns Page 55

(Erittäin) abstrakti malli mahdollisesta tietokoneesta vuonna 2020 Prosessori laskee - Nopea, pieni muisti Muisti tallettaa datan - Suhteellisen nopea ja valtava - Tieto pysyy muistissa myös ilman virtaa Muistin koko 10GB 5+TB CPU Keskusmuisti Latenssi ~CPU:n nopeus ( < 1 ns) < 10 ns Tietokannat täytyy suunnitella uudelleen! - Kunhan laitteistolupaukset ensin toteutuvat Page 56

Kysymyksiä? Page 57