Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto



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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, k 2006 relaatioalgebra. Harri Laine 1

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2004 Tietokannan suunnittelusta. Harri Laine 1

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokannan suunnittelusta Harri Laine 1

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

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

HELIA 1 (17) Outi Virkki Tiedonhallinta

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

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

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Relaatiomalli ja -tietokanta

Relaatioalgebra. Kyselyt:

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet:

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

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

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

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

CSE-A1200 Tietokannat

SQL-KYSELYJEN OPTIMOINNISTA. Niko Jalkanen Joensuun yliopisto Tietojenkäsittelytiede Pro gradu tutkielma

Laajennettu relaatiomalli ERDM ja suoraviittauksinen kyselykieli NSQL. Mika Niemelä

Normalisointi. Jouni Huotari & Ari Hovi. kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luku 5

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

2. Käsiteanalyysi ja relaatiomalli

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

HAAGA-HELIA Heti-09 1 (27) ICT05 Tiedonhallinta ja Tietokannat O.Virkki

TIETOKANNAT JOHDANTO

D B. Tietokannan hallinta kertaus

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

CSE-A1200 Tietokannat

Paikkatiedon käsittely 2. Relaatiomallin paikkatietolaajennokset

D B. Kyselypuut ja ekvivalenssi

HELIA 1 (17) Outi Virkki Tiedonhallinta

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon

4. Kyselyjen käsittely ja optimointi

Relaatioalgebra. Luku Joukko-opilliset operaatiot Yhdiste eli unioni Leikkaus

Kyselyiden käsittely. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Tietokantojen perusteet, osa 1

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

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Opintopiiritehtävä 3: Verkkohuutokauppa

Luento L: Normalisointi

ITKA204 Tietokannat ja tiedonhallinnan perusteet

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

Liitokset - haut useaan tauluun

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA TIETOTEKNIIKAN LAITOS. Petteri Kaikkonen

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

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

Helsingin yliopisto/tktl Tietokannan hallinta, s Harri Laine 1 D B. Kyselyjen käsittely ja optimointi

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat

Kyselyiden optimointi

Kyselypuut ja ekvivalenssi. Kyselyiden optimointi. Kyselypuut ja ekvivalenssi. Kyselypuut ja ekvivalenssi. R & G Chapter 12-15

HELIA 1 (12) Outi Virkki Tiedonhallinta

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

Tietokannat I. c 2007 Olli Luoma olli.luoma@it.utu.fi

Algoritmit 2. Luento 7 Ti Timo Männikkö

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

FYYSINEN SUUNNITTELU

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

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

D B. Kyselyjen käsittely ja optimointi. Kyselyjen käsittely ja optimointi

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt

Transkriptio:

Harri Laine Helsingin yliopisto

Suosion syy? Yksinkertaisuus vähän käsitteitä helppo hahmottaa Selkeä matemaattinen perusta ei tulkintaongelmia kuten esim. UML:ssä

teoria käytäntö kaavio: R(A 1 :D 1, A 2 :D 2,, A n :D n ) ilmentymä R D 1 D 2 D n {(a,b,,c), } R A 1 A 2 A n a b c relaatio=taulu attribuutti=sarakenimi monikko=rivi D 1

Keskeistä relaatiomallissa Taulun kaikki rivit ovat keskenään erilaisia Rivien järjestyksellä ei ole merkitystä Rivit voidaan identifioida vain sisältämänsä datan avulla Taululla on aina vähintään yksi avain = rivien identifiointiin kaikissa tilanteissa riittävä sarakeyhdistelmä Taululla voi olla useita avaimia

Pääavain = taulun rivien ensisijaiseksi identifiointitavaksi valittu avain Rivejä voidaan kytkeä toisiinsa vain sisällyttämällä yhteen riviin toisen rivin identifiointitieto eli (pää)avain. Kytkennän toteuttavia sarakkeita kutsutaan viiteavaimeksi.

Relaatiotietokannan kelpoisuusvaatimukset: arvojoukkoeheys= sarakkeessa on vain sen arvojoukkoon kuuluvia arvoja avaineheys = avaimen mikään sarake ei voi sisältää tyhjäarvoja viite-eheys = viiteavaimen arvona voi olla vain tyhjäarvo tai olemassa olevan rivin avainarvo

Suunnitteluteoria pyrkimys toisteettomuuteen ja ylläpidon helppouteen perustana tietojen väliset riippuvuudet relaatiomallin taulut aina 1. normaalimuodossa funktionaalinen riippuvuus: sarakkeen arvot ovat yksikäsitteisiä suhteessa jonkin toisen sarakkeen (määrääjän) arvoihin esim. henkilönimet yksikäsitteisiä suhteessa henkilötunnuksiin

Funktionaalisiin riippuvuuksiin perustuvana ylimpänä tavoitetilana Boyce-Codd normaalimuoto: Taulu on Boyce-Codd normaalimuodossa, jos kaikissa siihen liittyvissä ei triviaaleissa funktionaalisissa riippuvuuksissa määräjä sisältää taulun avaimen, eli kaikki riippuvuudet muotoa: avain jotain Boyce-Codd normaalimuodossa olevissa tauluissa ei esiinny tiedon toistoa

Hieman lievempi 3. normaalimuoto sallii avainriippuvuuksien lisäksi riippuvuudet, joissa jokin ei-avain määrä avainsarakkeen jokin X, avain X : X avain X, avain Z : avain Z jokin

Taulurakenne saatetaan tavoitetilaan jakamalla taulun sarakkeet useaksi tauluksi (= normalisointi) Riippuvuudet ohjaavat jakoa, mutta ennen jakoon ryhtymistä tulisi riippuvuusjoukkoa analysoida ja karsia joukosta pääteltävissä olevat riippuvuudet päättelyn perustana säännöstö ns. Armstrongin aksiomat. analyysin tuloksena pitäisi saada aikaan minimipeite = minimaalinen joukko riippuvuuksia, joista voidaan päätellä samat riippuvuudet kuin alkuperäisestä riippuvuusjoukosta

Lähtökohtana normalisoinnille on yleensä käsiteanalyysin tuloksesta muunnoksen avulla tuotettu taulurakenne. Ongelmallisia voivat tällöin olla erityisesti taulut, joihin kertyy useita viiteavaimia

Normalisointi (yleensä BCNF, mutta vähintään 3NF) Määrää riippuvuuksien minimipeite (~karsi pääteltävät riippuvuudet) Jaa riippuvuudet ryhmiin yhteisen määrääjän perusteella Muodosta taulu kunkin riippuvuusryhmän attribuuteista Jos jonkin taulun kaavio on toisen osajoukko karsi taulu. Jos alkuperäisen taulun yksikään avain ei sisälly mihinkään uuteen tauluun, valitse avaimista jokin ja tee sen sarakkeista oma taulu.

lomakenumero tilaajan tunnus tilaajan nimi tilaajan osoite tilaajan puhelinnumero toimitusosoite rivinumero tavaran koodi tavaran nimi tilattu määrä tilauspäivä

Tilausrivi lomakenumero rivinumero tavaran koodi tilattu määrä Tavara tavaran koodi tavaran nimi Tilaus lomakenumero tilaajan tunnus toimitusosoite tilauspäivä Tilaaja tilaajan tunnus tilaajan nimi tilaajan osoite tilaajan puhelinnumero

Taulujen normalisointi tuottaa toisiinsa kytkettyjä tauluja Tietojen kokoamiseen tarvitaan liitosoperaatioita jos liitoksia tarvitaan kovin usein, voi olla tarpeen huonontaa rakennetta (denormalisoida)

Relaatioalgebra operaatiot tauluilla laskemiseen joukko-opista: yhdiste, erotus, ristitulo, leikkaus omat operaatiot: valinta, projektio, liitos tkhj:ssä näiden kaltaiset perusoperaatiot hoitavat kyselyn käsittelyn kyselyn optimoinnin ja kustannuslaskennan perusta

kyselyn suoritus = sarja operaatioita, jotka kohdistuvat perustauluihin tai välituloksiin optimaalinen suoritus= suoritus joka on nopein tai muuten edullisin

10100 10000 500 2000 2020 100 500 1100 100 20 500 rivi i/o 400 14530 100 100 230 60 30 30 620 osa operaatioista vaihdannaisia eli järjestys voidaan vaihtaa vaikuttamatta lopputulokseen

10000 500 2000 100 500 40000 10100 2020 10000 20 500 620 1100 eri suoritusjärjestyksillä eri kustannukset 100 100 230 60 30 30 54130 kustannuksiin vaikuttavat indeksit, algoritmit järjestelmäarkkitehtuuri puskurit

Pitäisikö kyselyn tekijän kyetä arvioimaan kyselyn kokoluokka? Pitäisikö kokoluokka kyetä arvioimaan tietämättä käytettävää optimoijaa? Mikä olisi mittari? käsiteltävien rivien vähimmäismäärä?

Arvioinnin ongelmat: SQL:n purkaminen relaatioalgebran operaatioiksi ja optimaaliseksi kyselypuuksi Operaatiosta voidaan ilman tiedostorakenne- ja algoritmioletuksia arvioida vain tuloksen koko, Esimerkiksi valinta-operaation kustannus voi olla suhteessa lähtötaulun kokoon tai tuloksen kokoon riippuen indekseistä vaihteluväli voidaan kuitenkin määrätä.