Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen.

Samankaltaiset esitykset


Esitys aiheesta: "11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen."— Esityksen transkriptio:

1 11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen testaamiseksi dekompositiossa sekä lyhyesti myös neljäs ja viides normaalimuoto. 11.1.3 Dekomposition häviöttömän ( ei-additiivisen ) liitoksen ominaisuus Suoritettaessa dekompositio D taululle R ositteisiin { R 1, R 2,..., R m } pitää varmistua, että taulun R tietosisältö pystytään tarkalleen palauttamaan eli rekonstruoimaan soveltamalla luonnollisia liitoksia dekompositiossa muodostuneiden uusien, kooltaan pienempien taulujen välille. Formaalisesti määriteltynä dekompositio D säilyttää taululle R häviöttömän liitoksen ominaisuuden, mikäli mille tahansa relaation R lailliselle tilalle olla voimassa: * ( π R 1 ( r ),..., π R m ( r ) ) = r Toteutuessaan häviöttömän liitoksen ominaisuus takaa, ettei dekompositio tuota valetuplia relaatioon R, kun sitä kootaan D:n osatauluista luonnollisilla liitoksilla.

2 Häviöttömän liitoksen toteutumista voidaan testata algoritmisesti. Yleiskäyttöisin testausalgoritmeista on seuraavassa esiteltävä algoritmi 11.1, joka ei ota kantaa siihen, moneenko osaan alkuperäinen taulu R hajoaa dekomposition D yhteydessä. Algoritmi 11.1: Häviöttömän liitoksen toteutumisen testaus Syötetiedot: Normalisoinnin kohteena oleva relaatio R, sille suoritettu dekompositio D = { R 1, R 2,..., R m } sekä funktionaalisen riippuvuuksien joukko F relaatiossa R 1. Perustetaan matriisi S, jossa on yhtä monta riviä kuin D:ssä on tauluja ja yhtä monta saraketta kuin relaatiossa R on attribuutteja. Sarakkeet nimetään R:n attribuuttien mukaisesti. 2. Alustetaan jokainen matriisin positio S[i, j] alkuarvolla b ij. 3. Toista jokaista matriisin riviä i kohti Toista jokaista matriisin saraketta j kohti Jos dekomposition D relaatiossa R i esiintyy attribuutti j, vaihdetaan paikan S[i, j] sisällöksi a j.

3 4. Toista niin pitkään, kunnes silmukan suorituksen aikana ei enää tapahdu muutoksia matriisissa S: Toista F:n jokaista funktionaalista riippuvuutta X --> Y kohti Toista jokaista S:n riviä kohti, joilla on sarakkeissa samat symbolit X:n attribuuteilla Vaihda Y:hyn kuuluvien attribuuttien symbolit vastaamaan toisiaan näillä riveillä. Jos jollain kyseisistä riveistä esiintyy symbolia a, kopioidaan se samalla kaikkien muiden tarkasteltavien rivien samaan sarakkeeseen. Ellei a:ta esiinny millään rivillä Y:n attribuuteilla, yhdenmukaistetaan sarakkeen arvot jonkin rivin b ij -arvon mukaisesti kaikilla tutkittavilla riveillä. 5. Jos jokin matriisin riveistä sisältää ainoastaan a-symboleita, on normalisoinnin tulokseksi saatu dekompositio D toteuttanut häviöttömän liitoksen kriteerin, muulloin ei. Tarkastellaan kirjan esimerkkiä 11.1. Todetaan, että esimerkissä 10.3 esitetyn EMP_PROJ-relaation dekompositio esimerkin 10.5 mukaisiin ositteisiin EMP_PROJ1 ja EMP_LOCS ei tuota häviötöntä liitosta, kun taas dekompositio tauluiksi EMP, PROJECT ja WORKS_ON tuottaa sellaisen.

4 11.3.3 Neljäs normaalimuoto Neljäs normaalimuoto liittyy yksistään pääavaimen osasta riippuvien moniarvoisten riippuvuuksien purkamiseen. Tällainen tilanne saattaa syntyä, jos samaan relaatiotauluun yritetään sijoittaa kaksi lukumääräsuhteeltaan 1:N olevaa liittymää. Tarkastellaan kirjan esimerkkiä 11.5, jossa työntekijän tietoihin on yhdistetty tiedot projekteista, joissa hän työskentelee sekä tiedot hänen perheenjäsenistään. Relaatio on kylläkin 3NF:n mukainen, mutta sen toteutus on kovin kömpelö, sillä pakottaa lisäämään jokaista työntekijää kohti kerralla useita tuplia, jos työntekijä alkaa työskennellä uudessa projektissa, tai hänen perheenjäsentensä lukumäärä kasvaa. Tilanne purkautuu normalisoimalla relaatio 4NF:n mukaiseksi erottelemalla työntekijän projektit ja perheenjäsenet eri tauluihinsa. Relaatio on 4NF:n mukainen tarkalleen silloin, kun kaikki siinä esiintyvät sekä funktionaaliset ja moniarvoiset riippuvuudet määräytyvät yksinomaan superavaimesta X -->> Y.

5 11.4 Liitosriippuvuudet ja viides normaalimuoto Viidettä normaalimuotoa tarkastellaan lähinnä astetta 3 ja sitä korkeampaa astetta olevien relaatioiden yhteydessä. Käytännössä normalisointia 5NF:ään sovelletaan erittäin harvoin. Tarkastellaan esimerkkinä tavarantoimitusrelaatiota toimittajan, osan ja projektin välillä. Oletetaan, että jos toimittaja t pystyy toimittamaan osaa o, osaa o tarvitaan projektissa p, ja toimittaja t toimittaa jotain osaa projektille p, niin silloin projektille p ostetaan o ( ainakin ) toimittajalta t. Tarkastellaan lopuksi kirjan esimerkkejä 11.4c ja 11.4d.


Lataa ppt "11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen."

Samankaltaiset esitykset


Iklan oleh Google