Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Samankaltaiset esitykset


Esitys aiheesta: ""— Esityksen transkriptio:

243 3.2. Relaatiotietokannan normalisointi
Rakenteelliset ongelmat: Miten ne tunnistaa ja miten niistä pääsee eroon? Attribuuttien väliset riippuvuudet keskeisiä: Minkälaiset riippuvuudet ovat haitallisia ja miksi? Relaatioiden normaalimuodot: Asteittain tiukempia laatuvaatimuksia, joilla ongelmat vältetään. 3-2-Normalisointi Teuhola-2012

244 3-2-Normalisointi Teuhola-2012
Pyrkimys laatuun Millainen on hyvä relaatiotietokannan kaava? Käsitteellinen taso (conceptual): Kaavan semanttinen oikeellisuus ja ymmärrettävyys käyttäjälle. Toteutustaso (implementation): Talletuksen tehokkuus, päivitysten helppous. Normalisointi käsittelytason ”taikasana” Suunnitteluperiaatteet korkean laadun takaamiseksi Kohteena joko yksi relaatio (alemmat normaalimuodot) tai koko relaatiokaava (ylemmät normaalimuodot) Osallistuva suunnittelu (käyttäjä + suunnittelija) 3-2-Normalisointi Teuhola-2012

245 3-2-Normalisointi Teuhola-2012
Suunnittelun suunnat Alhaalta ylös (Bottom-up) Lähtökohtana yksittäiset attribuutit ja niiden väliset semanttiset yhteydet Ylhäältä alas (Top-down) ’Design-by-analysis’ Lähtökohtana valmiiksi ryhmitellyt attribuutit (tuloksena käsitetason suunnittelusta). 3-2-Normalisointi Teuhola-2012

246 Relaatiokaavan laadun mittarit
(1) Relaation ja sen attribuuttien luontevuus Pyrkimys yksinkertaisiin relaatioihin Relaatioilla selkeä merkitys Ei sotketa useita entiteettejä ja (moniarvoisia) liittymiä samaan relaatioon. Relaatio kuvaa vain yhdentyyppisiä asioita. 3-2-Normalisointi Teuhola-2012

247 Esimerkki: pyrkimys yksinkertaisuuteen
Huonosti suunniteltu (2 entiteettiä ja liittymä): Työntekijä (Hetu, Nimi, Osoite, OsastoNo, OsastoNimi, JohtajaHetu) Parempi ratkaisu (toinen entiteetti eri relaatioon): Työntekijä (Hetu, Nimi, Osoite, OsastoNo) Osasto (OsastoNo, OsastoNimi, JohtajaHetu) 3-2-Normalisointi Teuhola-2012

248 Relaatiokaavan laadun mittarit
(2) Redundanssin minimointi Muistintarpeen vähentäminen Päivitysongelmien välttäminen: Lisäys: Yksi asia kerrallaan Poisto: Ei kadoteta tarpeellista informaatiota Muutos: Ei samoja muutoksia moneen paikkaan Redundanssia voi joskus käyttää harkitusti tehokkuuden parantamiseen Tällöin on huolehdittava myös syntyvistä ongelmista! 3-2-Normalisointi Teuhola-2012

249 Esimerkki redundanssista
Työntekijä Hetu Nimi Osoite OsNo OsNimi JohtHetu 123456 Aalto Turku 11 Tutkimus 987654 234567 Laine Raisio 345678 Järvi Kaarina 22 Varasto 876543 456789 Lahti 567890 Virta 3-2-Normalisointi Teuhola-2012

250 Relaatiokaavan laadun mittarit
(3) Null-arvojen vähentäminen NULLin hankaluuksia: Muistin haaskaus Tulkintaeroja: ’arvo ei mahdollinen’, ’arvo tuntematon’, ’arvo puuttuu’ Liitosten määrittely epäselvä Tulkinta koostefunktioissa (COUNT, AVG) epäselvä Oikeellisuuden valvonta viiteavaimissa hankalaa Siis: Valitse vaihtoehtoisista relaatiokaavoista se, joka minimoi NULLien määrän. Systeemi valvoo NOT NULL –määreiden voimassaoloa automaattisesti. 3-2-Normalisointi Teuhola-2012

251 Esimerkki NULL-arvojen välttämisestä
Ei näin: Työntekijä (Hetu, Nimi, Osoite, OsNoJotaJohtaa) Osasto (OsNo, OsNimi) vaan näin (useimmat työntekijät eivät johda osastoa): Työntekijä (Hetu, Nimi, Osoite) Osasto (OsNo, OsNimi, JohtajaHetu) NOT NULL 3-2-Normalisointi Teuhola-2012

252 Esimerkki NULL-arvojen välttämisestä (2)
Oletetaan, että joillakin työntekijöillä on työsuhdeauto, mutta useimmilla ei. NULL-arvoja tuottava ratkaisu: Työntekijä (Hetu, Nimi, Osoite, OsNo, TyöAutoRek) NULL-arvot välttävä ratkaisu: Työntekijä (Hetu, Nimi, Osoite, OsNo) TyöntekijäAuto (Hetu, TyöAutoRek) Jälkimmäisessä relaatiossa ovat vain autoedun omaavat. Mutta: Luonnollinen liitos ei tuota alkuperäistä relaatiota! 3-2-Normalisointi Teuhola-2012

253 Relaatiokaavan laadun mittarit
(4) Väärien monikkojen välttäminen Huonosti suunniteltu relaatiokaava voi johtaa virheellisiin (’spurious’) monikoihin liitoksessa. Ohje: Suunnittele relaatiot siten, että ne on mielekästä liittää vain viiteavain-pääavain-yhteyden perusteella, jolloin vääriä monikkoja ei synny 3-2-Normalisointi Teuhola-2012

254 Esimerkki väärien monikoiden synnystä
TyöntekOsasto Liitoksen tulos (OsNo:n perusteella) Hetu Osoite OsNo 12345 Turku 11 23456 Salo 34567 22 Hetu Nimi Osoite Osno 12345 Aalto Turku 11 Järvi 23456 Salo 34567 Laine 22 *) *) NimiJaOsasto Nimi OsNo Aalto 11 Järvi Laine 22 *) ‘Väärät’ monikot 3-2-Normalisointi Teuhola-2012

255 Funktionaalinen riippuvuus (functional dependency, FD)
Alempien normaalimuotojen perusta Funktionaalinen = yksiarvoinen Funktionaalinen riippuvuus: yksiarvoinen lukumääräsuhde Riippuvuuden osapuolet ovat relaation sisällä olevia attribuutteja tai attribuuttiryhmiä. Vrt. ER-kaavion lukumääräsuhteet 1:1 ja M:1 3-2-Normalisointi Teuhola-2012

256 Funktionaalinen riippuvuus: alustava esimerkki (1)
Työntekijä(Hetu, Nimi, Osasto) Kullakin työntekijällä on tarkalleen yksi nimi ja osasto. ‘Hetu’ identifioi työntekijät. Funktionaaliset eli yksiarvoiset riippuvuudet: Hetu  Nimi Hetu  Osasto 3-2-Normalisointi Teuhola-2012

257 Funktionaalinen riippuvuus: alustava esimerkki (2)
Osallistuu (Hetu, Projekti, Tuntimäärä) Henkilö voi osallistua moneen projektiin ja samassa projektissa voi olla useita työntekijöitä, mutta henkilön tuntimäärä yhdessä projektissa on yksiarvoinen. Funktionaalinen riippuvuus: (Hetu, Projekti)  Tuntimäärä Riippuvuuden vasen puoli on siis attribuuttiryhmä 3-2-Normalisointi Teuhola-2012

258 Funktionaalinen riippuvuus formaalisti
Olkoot X ja Y attribuutteja tai attribuuttiyhdelmiä relaatiossa R, ja merkitään ti[X] = X:n arvo rivillä ti. Jos Y on funktionaalisesti riippuva X:stä, niin ( t1, t2 R): Jos t1[X] = t2[X] niin myös t1[Y] = t2[Y] X ’määrää’ yksikäsitteisesti/funktionaalisesti Y:n. FD on relaation attribuuttien semanttinen ominaisuus. Sitä ei voida päätellä relaation hetkellisestä sisällöstä. FD kuvaa sääntöä, jonka pitää aina olla voimassa tietyssä relaatiossa (kaikilla instansseilla). Sitä tulisi pystyä valvomaan automaattisesti. 3-2-Normalisointi Teuhola-2012

259 Normalisoinnin yleiset periaatteet
Normalisointi: Redundanssin minimointi, päivitysongelmien poisto Relaatiokaavojen jako projektioilla pienempiin osiin siten, että normaalimuodoille asetetut ehdot täyttyvät. Relaatiokaavojen tulisi yhdessä toteuttaa: Häviötön (lossless) ja ’ei-lisäävä’ (nonadditive) liitos: Infoa ei häviä, eikä synny vääriä monikoita. Tärkeä! Riippuvuuksien säilymisominaisuus: Kukin alkuperäinen FD esiintyy jossakin normalisoidussa relaatiossa. Tätä ei voida aina taata. 3-2-Normalisointi Teuhola-2012

260 3-2-Normalisointi Teuhola-2012
Normaalimuodot 1 NF, 2 NF, 3 NF ja BCNF perustuvat avaimiin ja funktionaalisiin riippuvuuksiin. 4 NF perustuu moniarvoisiin riippuvuuksiin. 5 NF perustuu liitosriippuvuuksiin. Tavoitteena on käytännössä BCNF. Jos BCNF ei ole mahdollinen, niin 3 NF 1 NF ja 2 NF eivät riitä 3-2-Normalisointi Teuhola-2012

261 Avaimista ja attribuuteista
Avaimet Superavain: Attribuutti(joukko), joka identifioi monikot, eli eri monikoilla on eri superavainarvot. Avain: minimaalinen superavain (ei turhia attrib.) Samassa relaatiossa voi olla useita avaimia; näistä ehdokasavaimista valitaan jokin relaation pääavaimeksi. Attribuutit jaetaan kahteen ryhmään: Avainattribuutti (prime attribute) on jokin (ehdokas-)avain tai sen osa. Muut ovat ei-avainattribuutteja (non-prime attribute) 3-2-Normalisointi Teuhola-2012

262 Relaation (R) avainten (K) päättely
Algoritmi: Asetetaan aluksi K = { R:n kaikki attribuutit } Toistetaan seuraavaa: Jos K:n jokin attribuutti a on funktionaalisesti riippuva joistain K–{a}:n attribuuteista, niin poistetaan a K:sta. Muuten lopetetaan; K on avain. Huom! Lopputulos riippuu attribuuttien tutkimis-järjestyksestä. Kannattaa aloittaa niistä, jotka eivät esiinny minkään FD:n vasemmalla puolella. 3-2-Normalisointi Teuhola-2012

263 3-2-Normalisointi Teuhola-2012
Esimerkki Suoritus (Opno, OpNimi, Kurssi-id, Knimi, Sali, Ajankohta, Laitos, Arvosana) Relaatio: FD:t: Attribuuttien poisto avaimesta (eräs järjestys): Avain: (Sali, Ajankohta)  Laitos (Opno, Ajankohta)  Sali (Opno, Ajankohta)  Kurssi-id (Opno, Ajankohta)  Arvosana Opno  OpNimi Kurssi-id  Knimi OpNimi, Knimi, Laitos, Sali, Kurssi-id, Arvosana (Opno, Ajankohta) 3-2-Normalisointi Teuhola-2012

264 3-2-Normalisointi Teuhola-2012
1 NF Kuuluu oikeastaan relaation määritelmään (’flat’ relation). Attribuuttien arvot atomisia Ei yhdistettyjä tai moniarvoisia attribuutteja On myös ehdotettu yleistettyä mallia: Non-First-Normal-Form (NF2 eli 1NF): Relaatio voi olla hierarkkinen. Se saadaan 1NF-muotoon unnest-operaatiolla. 3-2-Normalisointi Teuhola-2012

265 Esimerkki: Normalisointi 1NF 1NF
OsNo OsNimi JohtHetu ToimiPaikka 11 Tutkimus 123456 Turku Salo 22 Varasto 234567 Turku Kaarina Osasto (1NF) unnest Osasto (1NF) OsNo OsNimi JohtHetu ToimiPaikka 11 Tutkimus 123456 Turku Salo 22 Varasto 234567 Kaarina Huom. Pääavain muuttui! 3-2-Normalisointi Teuhola-2012

266 Esimerkki 3-tasoisesta 1NF-relaatiosta
OsastoNo OsNimi Työntekijät Hetu Nimi Lapset Lnimi 11 Tutkimus Aho Anni Arto Elo Eeva Eero 22 Hallinto Oja Oili Olli 3-2-Normalisointi Teuhola-2012

267 3-2-Normalisointi Teuhola-2012
2 NF (yleinen muoto) Relaatiokaava R on 2NF, jos mikään ei-avain-attribuutti ei ole osittain riippuvainen mistään R:n avaimesta. Osittainen riippuvuus: X  Y, missä X  avain, ja avain on usean attribuutin yhdelmä. Täydellinen riippuvuus: X’  Y, missä X’ on avain, eikä X’:sta voida poistaa attribuutteja, menettämättä FD-omin. Normalisointi 2NF:ään: Jaetaan R useampaan 2NF-relaatioon siten, että ei-avain-attribuutit tulevat samaan relaatioon avaimen sen osan kanssa, josta ne ovat täydellisesti riippuvaisia. Esim. R(A,B,C) ja BC: Tulos R1(A,B), R2(B,C) 3-2-Normalisointi Teuhola-2012

268 3-2-Normalisointi Teuhola-2012
Esimerkki: 2NF  2NF Osasto Osastonimi ja johtajan hetu toistuvat kunkin toimi- pisteen kohdalla OsNo OsNimi JohtHetu ToimiPaikka 11 Tutkimus 123456 Turku Salo 22 Varasto 234567 Kaarina Osasto- Paikat Osasto’ OsNo ToimiPaikka 11 Turku Salo 22 Kaarina OsNo OsNimi JohtHetu 11 Tutkimus 123456 22 Varasto 234567 3-2-Normalisointi Teuhola-2012

269 3-2-Normalisointi Teuhola-2012
3 NF (yleinen muoto) Relaatiokaava R on 3NF, jos kullekin FD:lle X ® A on voimassa joko a) X on R:n superavain, tai b) A kuuluu johonkin avaimeen R:ssä Käytännön merkitys: 3NF kieltää ei-avainattri-buuttien transitiiviset riippuvuudet avaimesta. Normalisointi 3NF:ään: Dekompositio. Esim. R(A,B,C) ja AB sekä BC (jolloin AC) Tulos R1(A,B), R2(B,C) 3-2-Normalisointi Teuhola-2012

270 3-2-Normalisointi Teuhola-2012
Esim. Työntekijä (3NF) Hetu Nimi Osoite OsNo OsNimi JohtHetu 123456 Aalto Turku 11 Tutkimus 987654 234567 Laine Raisio 345678 Järvi Kaarina 22 Varasto 876543 456789 Lahti 567890 Virta Työntekijä’ Osasto Hetu Nimi Osoite OsNo 123456 Aalto Turku 11 234567 Laine Raisio 345678 Järvi Kaarina 22 456789 Lahti 567890 Virta OsNo OsNimi JohtHetu 11 Tutkimus 987654 22 Varasto 876543 3-2-Normalisointi Teuhola-2012

271 BCNF eli Boyce-Codd-normaalimuoto
Relaatio R on BCNF:ssä, jos FD:n X ® A ollessa voimassa X on R:n superavain Auttaa poistamaan ongelmia esimerkiksi, kun relaatiolla on useita ehdokasavaimia ja ehdokasavaimet ovat yhdistettyjä ja ehdokasavaimet ovat 'päällekkäisiä' eli samoja kenttiä on useissa ehdokasavaimissa Huom! Riippuvuudet eivät välttämättä säily, vaan jakautuvat normalisoinnissa usean relaation osalle 3-2-Normalisointi Teuhola-2012

272 Esimerkki: BCNF BCNF
Opisk Kurssi Opett Matti Kannat Aalto TRAK Laine Liisa Virta OhjPK Salmi Maija Järvi Opisk Opett Matti Aalto Laine Liisa Virta Salmi Maija Järvi Opett Kurssi Aalto Kannat Laine TRAK Virta Salmi OhjPK Järvi 3-2-Normalisointi Teuhola-2012

273 Edellisen esimerkin tulkinta
Opettaja opettaa vain yhtä kurssia Samaa kurssia voi (eri vuosina) pitää usea eri opettaja. Opiskelija voi osallistua usealle kurssille, ja samalle kurssille osallistuu useita opiskelijoita. Opiskelija osallistuu tietylle kurssille vain kerran, jolloin opettaja tulee kiinnitettyä. 3-2-Normalisointi Teuhola-2012

274 Dekompositio BCNF-muotoon
Häviötön BCNF-algoritmi: Jos X  Y rikkoo BCNF:n relaatiossa Q, tee dekompositio relaatioiksi R1 { XY }, R2 { Q–Y } Pitäisi varmistua siitä, että informaatiosisältö säilyy dekompositiossa. 3-2-Normalisointi Teuhola-2012

275 Häviötön liitos –testi
Ns. NJB-ominaisuus, eli Nonadditive Join Test for Binary Decompositions: Huom.1. Tässä leikkaus ja erotus ovat attribuutti-joukkojen, eivät relaatioalgebran operaatioita Huom.2. Sääntö pätee koko R:ään myös silloin kun R:n osarelaatiot jaetaan edelleen osarelaa-tioihin, joilla on häviötön liitosominaisuus. {R1, R2} on R:n häviötön dekompositio silloin ja vain silloin kun (R1R2)  (R1 R2) pätee tai symmetrisesti: (R1R2)  (R2 R1) pätee 3-2-Normalisointi Teuhola-2012

276 Häviöttömyys edellisessä esimerkissä
Q = {Opiskelija, Kurssi, Opettaja} X = {Opettaja}, Y = {Kurssi} X Y = {Opettaja, Kurssi} = R1 Q  Y = {Opiskelija, Opettaja} = R2 R1  R2 = {Opettaja} R1  R2 = {Kurssi} (R1  R2)  (R1  R2) pätee, joten {R1, R2} on häviötön dekompositio 3-2-Normalisointi Teuhola-2012

277 Esimerkki häviöllisestä dekompositiosta
Q(Opisk, Kurssi, Opett)  R1’(Opisk, Kurssi), R2’(Opett, Kurssi) R1’  R2’ = {Kurssi} R1’  R2’ = {Opisk} R2’  R1’ = {Opett} {Kurssi}  {Opisk} ei päde {Kurssi}  {Opett} ei päde Siis liitos R1’ * R2’ voi tuottaa vääriä monikoita 3-2-Normalisointi Teuhola-2012

278 Yleistettyjä riippuvuuksia ja korkeampia normaalimuotoja
Moniarvoinen riippuvuus (MVD): 4. normaalimuodon (4NF) perusta Liitosriippuvuus (JD): 5. normaalimuodon (5NF) perusta Sisältymisriippuvuus: Eri relaatioissa sijaitsevien attribuuttien välinen Template-riippuvuus: Yleisempi oikeellisuusehto (vrt. ASSERTION) 3-2-Normalisointi Teuhola-2012

279 Moniarvoinen riippuvuus (Multivalued dependency, MVD)
FD:n yleistys: samaan attribuuttiarvoon voi liittyä useita toisen attribuutin arvoja. Esim. Osallistuu(OpiskNo, Kurssi) Opiskelija mukana monella kurssilla Kurssilla useita opiskelijoita 1NF:stä seuraa, että arvoja joudutaan toistamaan. Toiston haitallisuus riippuu siitä, mitä muita attribuutteja relaatiossa on. (Yo. relaatio on OK) 3-2-Normalisointi Teuhola-2012

280 Ongelmia aiheuttava MVD-tapaus
Jos tiettyyn X-arvoon x liittyy joukko Y-arvoja {y1...yk} ja joukko Z-arvoja {z1...zn} toisistaan riippumatta, niin relaatiossa on rivit, joissa x on liittyneenä kaikkiin yizj-pareihin (yhteensä kn kpl). Kyseessä on eräänlainen relaation sisäinen karteesinen tulo. Seurauksena on suuri määrä redundanssia. 3-2-Normalisointi Teuhola-2012

281 3-2-Normalisointi Teuhola-2012
MVD:n merkintätapa X -» Y, eli X-arvoon liittyy tietty Y-arvojen joukko muista attribuuteista riippumatta. Tällöin sanotaan että attribuutti(joukko) X ’määrää’ moniarvoisesti attribuutti(joukon) Y. Symmetrisyyden vuoksi: Jos X -» Y niin X -» Z, missä Z = R(X È Y): Näitä yhdessä merkitään: X -» Y | Z 3-2-Normalisointi Teuhola-2012

282 Esimerkki moniarvoisesta riippuvuudesta
Opetus Kurssilla on useita opettajia ja opiskelijoita: Kurssi ->> Opettaja | Opiskelija Huom! Kaikki attribuutit mukana pääavaimessa Ei funktionaalisia riippuvuuksia Kurssi Opettaja Opiskelija TRAK Aalto Matti Liisa Salmi OhjPK Maija Laine 3-2-Normalisointi Teuhola-2012

283 3-2-Normalisointi Teuhola-2012
MVD formaalisesti Olkoon R:ssä attr.joukot X, Y ja Z = R(X È Y). (X -» Y|Z):sta seuraa: Jos monikot t1,t2  R siten että t1[X] = t2[X], niin monikot t3,t4R siten että t3[X] = t4[X] = t1[X] = t2[X] t3[Y] = t1[Y] ja t4[Y] = t2[Y] t3[Z] = t2[Z] ja t4[Z] = t1[Z] Vrt. edellinen esimerkki 3-2-Normalisointi Teuhola-2012

284 Moniarvoisen riippuvuuden merkitys
Formaalin määritelmän mukaan X -» Y kun attribuutti(ryhmä) X määrää yksinään täydellisesti joukon attribuutti(ryhmän) Y arvoja, eikä määrääminen riipu muista attribuuteista Z. FD on MVD:n erikoistapaus. X -» Y on triviaali MVD, jos a) Y on X:n alijoukko (eli Y Í X) tai b) X È Y = R 3-2-Normalisointi Teuhola-2012

285 3-2-Normalisointi Teuhola-2012
4 NF Relaatiokaava on 4NF suhteessa riippuvuuk-sien joukkoon F, jos kaikissa ei-triviaaleissa MVD:issä X -» Y pätee: X on superavain. Käytännössä tämä tarkoittaa, että ei-triviaalin MVD:n on oltava FD (MVD:n erikoistapaus). 4NF:n tyypillinen rikkomistapaus on relaatio, joka sisältää kaksi M:N-suhdetta. 3-2-Normalisointi Teuhola-2012

286 Häviötön dekompositio 4NF:ään
Jos R:ssä on voimassa X -» Y, niin R1 = XY ja R2 = RY on häviötön dekompositio. Formaalisesti: {R1, R2} on R:n häviötön dekompositio silloin ja vain silloin kun (R1R2) -» (R1 R2) tai symmetrisesti: (R1R2) -» (R2 R1) [Vrt. Aikaisempi teoreema FD:lle] 3-2-Normalisointi Teuhola-2012

287 Esimerkki dekompositiosta 4NF:ään
Opetus Kurssi Opett Opisk TRAK Aalto Matti Liisa Salmi OhjPK Maija Laine KurssiOpett KurssiOpisk Kurssi Opett TRAK Aalto Salmi OhjPK Laine Kurssi Opisk TRAK Matti Liisa OhjPK Maija 3-2-Normalisointi Teuhola-2012

288 Liitosriippuvuus JD (Join Dependency)
Aina ei ole mahdollista tehdä 'häviötön liitos' -dekompositiota kahdeksi relaatiokaavaksi, mutta kylläkin useammaksi. JD(R1 , R2 , .... , Rn) relaatiokaavalle R määrittelee, että sen dekompositio osiin R1, ..., Rn on häviötön kaikissa tilanteissa, eli: pR1(R )  pR2(R )  ...  pRn(R) = R 3-2-Normalisointi Teuhola-2012

289 Esimerkki liitosriippuvuudesta
Relaatio R (Toimittaja, Osa, Projekti) Sääntö: Jos toimittaja t toimittaa osaa o johonkin projektiin ja toimittaja t toimittaa jotain osaa projektiin p ja joku toimittaa osaa o projektiin p, niin myös toimittaja t toimittaa osaa o projektiin p. Tällöin on voimassa liitosriippuvuus JD( {toimittaja, osa}, {osa, projekti}, {toimittaja, projekti} ) 3-2-Normalisointi Teuhola-2012

290 Esimerkki liitosriippuvuudesta: häviötön dekompositio
Toimitt. Osa Projekti t1 o1 p2 t2 p1 o2 R1 Toimitt. Osa t1 o1 t2 o2 R2 Osa Projekti o1 p2 p1 o2 R3 Toimitt. Projekti t1 p2 t2 p1 3-2-Normalisointi Teuhola-2012

291 Esimerkki liitosriippuvuudesta: parittaiset liitokset häviöllisiä
R1 * R2 R2 * R3 R1 * R3 Toimitt Osa Proj t1 o1 p2 p1 t2 o2 Toimitt Osa Proj t1 o1 p2 t2 p1 o2 Toimitt Osa Proj t1 o1 p2 p1 t2 o2 Kaikissa parittaisissa liitoksissa on ylimääräinen monikko (lihavoitu). Vain kaikkien kolmen liitos (R1 * R2 * R3) tuottaa alkuperäisen relaation R. 3-2-Normalisointi Teuhola-2012

292 5 NF (PJNF, Project-Join NF)
Relaatiokaava on 5NF, jos kaikille liitosriippuvuuksille JD(R1 , R2 , .... , Rn), jokainen Ri on R:n (super)avain. Liitosriippuvuuksien havaitseminen on käytännössä vaikeaa ja vaatii syvällistä asiantuntemusta sovelluksen semantiikasta. 5NF ei pidetä tärkeänä käytännön kannalta. 3-2-Normalisointi Teuhola-2012

293 Sisältymisriippuvuus
Vallitsee eri relaatioiden vastinattribuuttien välillä, merkitään R.X < S.Y. Voimassa, jos X(R)  Y(S) kaikissa R:n ja S:n sallituissa tiloissa. Käytännön tilanteet: Viiteavaimet, aliluokkasuhteet. Ei uusia normaalimuotoja, mutta tärkeitä rajoitteita (assertion, foreign key, ym.) relaatiokaavaa täydentämässä 3-2-Normalisointi Teuhola-2012

294 Esimerkki sisältymisriippuvuuksista
Relaatiokaava yliopiston piiristä: Työntekijä (Hetu, Osoite, Palkka) Opettaja (Hetu, Oppiarvo, Oppiaine) Kurssi (KurssiId, OpeHetu, Laajuus, Periodi) Sisältymisriippuvuudet: Opettaja.Hetu < Työntekijä.Hetu Kurssi.OpeHetu < Opettaja.Hetu 3-2-Normalisointi Teuhola-2012

295 3-2-Normalisointi Teuhola-2012
Template-riippuvuus Template = malli, kaava Template-riippuvuus perustuu sääntöihin: Jos tietokannassa on tietynlaiset monikot, niin siinä on myös tietyt (muut) monikot. Riippuvuuksien valvonta tietokantakaavassa esim. väittämillä eli rajoitteilla (assertion) tai herätteillä (trigger) 3-2-Normalisointi Teuhola-2012

296 Esimerkki template-riippuvuudesta
’Jos opettajan äidinkieli on muu kuin suomi, hän luennoi englanniksi’: Kurssi (KurssiId, KurssiNimi, OpeHetu, LuentoKieli) Opettaja (Hetu, Osoite, Äidinkieli) Riippuvuuden määrittely: Jos (a, b, c, d)  Kurssi ja (c, e, f)  Opettaja ja f  ’suomi’ niin d = ’englanti’ 3-2-Normalisointi Teuhola-2012

297 Yhteenveto normalisoinnista
Joukko sääntöjä, jotka laadukkaan relaatiokaavan tulee toteuttaa. Säännöillä pyritään mm. yksinkertaisiin relaatioihin, redundanssin minimointiin, null-arvojen välttämiseen, päivitysvirheiden estämiseen, väärien monikoiden estämiseen. ER-kaavio  relaatiokaava –muunnos tuottaa useimmiten hyvän lopputuloksen; normalisointi on lähinnä laadunvarmistuskeino. 3-2-Normalisointi Teuhola-2012

298 Normalisoinnin kääntöpuoli
Normalisoinnissa ongelmat ratkaistaan dekompositiolla, mikä johtaa suureen määrään relaatioita. Käsittelytehtävissä relaatiot joudutaan usein liittämään takaisin yhteen, mikä on hidasta. Joskus tehokkuussyistä tehdään ns. denormalisointia, eli talletetaan valmiiksi liitettyjä relaatioita. Tämän käyttöä pitää harkita tarkasti. 3-2-Normalisointi Teuhola-2012


Lataa ppt ""

Samankaltaiset esitykset


Iklan oleh Google