r - harmadik normálforma · normálforma egyszeruen az a feltétel, hogy minden sor minden...

2
108 3. Relációs adatbázisok tervezésének elmélete aj B ---> E és CE ---> Aj b J AC ---> E és BC ---> D; ej A ---> D, D ---> E és B ---> D; dJ A ---> D, CD ---> E és E ---> D. ! 3.4.2. feladat. A 3.4.1. feladat összes függoséghalmazai közül melyiket orzi meg a dekompozíció? 3.5. Harmadik normálforma A 3.25. példában látott problémát megoldhat juk úgy, hogy enyhítünk a BCNF feltételen annak érdekében, hogy alkalmanként megengedheto legyen, hogy ha egy relációsémát nem tudunk felbontani BCNF-relációkra, akkor ne végezzük el, vagy enyhítsük az FD-k ellenorzését. Ennek az enyhíto feltételnek a neve ,,harmadik normálforma". Ebben a részben megadjuk a harmadik normálforma követelményeit, aztán megadunk egy algoritmust, amellyel elvégezhetjük a de- kompozíciót, a 3.20. algoritmustól lényegesen eltéro módon annak érdekében, hogy megkapjuk a harmadik normálformát és megtartsuk mind a veszteségmen- tes összekapcsolást, mind pedig a függoségmegorzo tulajdonságokat. 3.5.1. A harmadik normálforma definíciója Az R reláció harmadik normálformában (3NF) van akkor és csak akkor, ha: . Valahányszor létezik R-ben egy AIA2 ... An ---> BIB2 ... Bm nem triviális függoség, akkor vagy az {AI,A2"" ,An} halmaz az R szuperkulcsa, vagy azokra az attribútumokra BI, B2' ... ,Brn közül, amelyek nincsenek az A-k között, teljesül, hogy egy kulcsnak az elemei (nem feltétlenül ugyanannak a kulcsnak). Ha egy attribútum szerepel valamelyik kulcsban, akkor gyakran elsodleges attri- bútumnak (vagy más néven prímattribútumnak) nevezzük. - a 3NF feltételét átfogalmazhatjuk: ,,minden nem triviális függoségre igaz ogy baloldala szU- perkulcs, vagy jobb oldala csak elsodleges attribútumo t tartalmaz". "1 Megjegyezzük, hogy a 3NF feltétel és a BCNF fel étel közötti különbség a ,;vagy jobb oldala csak elsodleges attribútumokat tar lmaz" mondatrészbeJl van, ami ,,felmenti"a mozi --->város-hoz hasonló függo éget a 3.25. példábaJl, mivel a jobb oldali város egy elsodleges attribútum. r 3.5. Harmadik normálforma 109 - Más normálformák Ha van ,,harmadik normálforma", mi történt az elso két ,,normálformával"? Ezeket valóban definiálták, de ma már keveset használjuk oket. Az elso normálforma egyszeruen az a feltétel, hogy minden sor minden komponen- se atomi értéku legyen. A második normálforma kevésbé szigorú feltétel, mint a 3NF. Van ,,negyedik normálforma" is, ezzel késobb, a 3.6. alfejezet- ben találkozunk. :'" 3.5.2. 3NF -szintetizáló algoritmus Most kifejtjük és megindokoljuk, hogyan bontható fel egy R reláció olyan relá- ciók halmazává, amelyekre teljesülnek az alábbiak: aj A felbontásban szereplo relációk mindegyike 3NF-ben van. bJ A felbontásnak veszteségmentes összekapcsolása van. ej A felbontásnak függoségmegorzo tulajdonsága van. 3.26. algoritmus. Harmadik normálformában lévo relációk eloállítása veszte- ségmentes összekapcsolással és függoségmegorzéssei BEMENET: Egy R reláció és az R-re vonatkozó funkcionális függoségek F hal- maza. KIMENET: Az R felbontása relációk gyujteményére, melyek mindegyike 3NF- ben van. A felbontás rendelkezik veszteségmentes összekapcsolással és függoség- megorzo tulajdonsággal. 1:1ELJÁRÁS:Hajtsuk végre a következo lépéseket: I 1. Keressük meg F egy minimális bázisát, amit hívjunk C-nek. 2. A C-ben szereplo összes X ---> A funkcionális függoségre használjuk XA-t sémaként a felbontás egy relációjához. 3. Amennyiben a 2. lépésben kapott relációk attribútumhalmazának egyike sem szuperkulcs R-ben, adjunk még egy relációt az eredményhez, melynek sémája kulcs lesz R-hez. [J 3.27. példa. Tekint~ük az R(A, B, C, D, E) relációt az AB ---> C, C ---> B és A. -7 D funkcionális függoségekkel. Elso lépésként figyeljük meg, hogya meg- a.dott funkcionális függoségek a minimális bázist jelentik. Ennek ellenorzésére

Upload: others

Post on 11-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

108 3. Relációs adatbázisok tervezésének elmélete

aj B ---> E és CE ---> Aj

bJ AC ---> E és BC ---> D;

ej A ---> D, D ---> E és B ---> D;

dJ A --->D, CD --->E és E --->D.

! 3.4.2. feladat. A 3.4.1. feladat összes függoséghalmazai közül melyiket orzimeg a dekompozíció?

3.5. Harmadik normálforma

A 3.25. példában látott problémát megoldhat juk úgy, hogy enyhítünk a BCNFfeltételen annak érdekében, hogy alkalmanként megengedheto legyen, hogy haegy relációsémát nem tudunk felbontani BCNF-relációkra, akkor ne végezzükel, vagy enyhítsük az FD-k ellenorzését. Ennek az enyhíto feltételnek a neve,,harmadik normálforma". Ebben a részben megadjuk a harmadik normálformakövetelményeit, aztán megadunk egy algoritmust, amellyel elvégezhetjük a de-kompozíciót, a 3.20. algoritmustól lényegesen eltéro módon annak érdekében,hogy megkapjuk a harmadik normálformát és megtartsuk mind a veszteségmen-tes összekapcsolást, mind pedig a függoségmegorzo tulajdonságokat.

3.5.1. A harmadik normálforma definíciója

Az R reláció harmadik normálformában (3NF) van akkor és csak akkor, ha:

. Valahányszor létezik R-ben egy AIA2 . . . An --->BIB2 . . . Bm nem triviálisfüggoség, akkor vagy az

{AI,A2"" ,An}

halmaz az R szuperkulcsa, vagy azokra az attribútumokra BI, B2' . . . ,Brnközül, amelyek nincsenek az A-k között, teljesül, hogy egy kulcsnak azelemei (nem feltétlenül ugyanannak a kulcsnak).

Ha egy attribútum szerepel valamelyik kulcsban, akkor gyakran elsodleges attri-bútumnak (vagy más néven prímattribútumnak) nevezzük. - a 3NF feltételétátfogalmazhatjuk: ,,minden nem triviális függoségre igaz ogy baloldala szU-perkulcs, vagy jobb oldala csak elsodleges attribútumo t tartalmaz". "1

Megjegyezzük, hogy a 3NF feltétel és a BCNF fel étel közötti különbséga ,;vagy jobb oldala csak elsodleges attribútumokat tar lmaz" mondatrészbeJlvan, ami ,,felmenti"a mozi --->város-hoz hasonló függo éget a 3.25. példábaJl,mivel a jobb oldali város egy elsodleges attribútum.

r3.5. Harmadik normálforma 109

-Más normálformák

Ha van ,,harmadik normálforma", mi történt az elso két ,,normálformával"?Ezeket valóban definiálták, de ma már keveset használjuk oket. Az elsonormálforma egyszeruen az a feltétel, hogy minden sor minden komponen-se atomi értéku legyen. A második normálforma kevésbé szigorú feltétel,mint a 3NF. Van ,,negyedik normálforma" is, ezzel késobb, a 3.6. alfejezet-ben találkozunk.

:'"3.5.2. 3NF -szintetizáló algoritmus

Most kifejtjük és megindokoljuk, hogyan bontható fel egy R reláció olyan relá-ciók halmazává, amelyekre teljesülnek az alábbiak:

aj A felbontásban szereplo relációk mindegyike 3NF-ben van.

bJ A felbontásnak veszteségmentes összekapcsolása van.

ej A felbontásnak függoségmegorzo tulajdonsága van.

3.26. algoritmus. Harmadik normálformában lévo relációk eloállítása veszte-ségmentes összekapcsolással és függoségmegorzéssei

BEMENET: Egy R reláció és az R-re vonatkozó funkcionális függoségek F hal-maza.

KIMENET: Az R felbontása relációk gyujteményére, melyek mindegyike 3NF-ben van. A felbontás rendelkezik veszteségmentes összekapcsolással és függoség-megorzo tulajdonsággal.

1:1ELJÁRÁS: Hajtsuk végre a következo lépéseket:I

1. Keressük meg F egy minimális bázisát, amit hívjunk C-nek.

2. A C-ben szereplo összes X --->A funkcionális függoségre használjuk XA-tsémaként a felbontás egy relációjához.

3. Amennyiben a 2. lépésben kapott relációk attribútumhalmazának egyikesem szuperkulcs R-ben, adjunk még egy relációt az eredményhez, melyneksémája kulcs lesz R-hez.

[J

3.27. példa. Tekint~ük az R(A, B, C, D, E) relációt az AB --->C, C --->B ésA. -7 D funkcionális függoségekkel. Elso lépésként figyeljük meg, hogya meg-a.dott funkcionális függoségek a minimális bázist jelentik. Ennek ellenorzésére

110 3. Relációs adatbázisok tervezésének elmélete

egy kis munkát kell végeznünk. Eloször ellenorizzük, hogy nem tudunk egyet-len függoséget sem elhagyni. Ennek megmutatására a 3.7. algoritmust használ-juk, azaz funkcionális függoségek egyik párosa sem implikálja a harmadikat.Például vegyük az {A, B} lezárását. Az elso funkcionális függoség baloldalacsak a második és harmadik funkcionális függoségekben - azaz a C -+ B-ben

és A -+ D-ben - kerül felhasználásra. Így a lezárás tartalmazza D-t, de nemtartalmazza C-t, így levonhatjuk azt a konklúziót, hogy az AB -+ C funkcio-nális függoséget nem implikálja a második és a harmadik funkcionális függoség.Hasonló konklúzióra jutunk, ha a második vagy a harmadik funkcionális függo-séget próbáljuk elhagyni.

Azt is ellenoriznünk kell, hogy nem tudunk egyetlen attribútumot sem el-

hagyni a bal oldalról. Ebben az egyszeru esetben az egyetlen lehetoség az, hogyaz elso funkcionális függoségbol az A-t vagy a B-t hagyjuk el. Például, ha az A-thagyjuk el, akkor B -+ C marad. Azt kell megmutatni, hogy ez a B -+ C nemvezetheto le a három eredeti funkcionális függoségbol, amelyek az AB -+ C,C -+ B és A -+ D. Ezekkel a funkcionális függoségekkel a {B} lezárása csak aB, így a B -+ C nem következik belole. Így megvan a minimális bázisunk.

A 3NF eloállítását azzal kezdjük, hogy vesszük az egyes funkcionális füg-goségek attribútumait, mint egy-egy sémát. Így az 81 (A, B, C), 82(B, C) és83(A, D) relációkat kapjuk. Sosem szükséges olyan relációt használnunk, amely-nek sémája egy másik reláció részhalmaza, így az 82 sémát eldobjuk.

Azt is meg kell vizsgálnunk, hogy szükséges-e egy olyan reláció hozzá-adása, amelynek sémája egy kulcs. Ebben a példában R két kulccsal rendel-kezik: {A, B, E} és {A, C, E}, így ezeket tudjuk ellenorizni. Ezen kulcsok egyi-ke sem részhalmaza az eddig kiválasztott sémáknak. Így az egyiket hozzá kelladnunk, mondjuk az 84(A, B, E) sémát. Így R végso felbontása a következo:81(A,B,C), 83 (A, D) és 84(A,B,E). O

3.5.3. Miért muködik a 3NF-szintetizáló algoritmus?

Három dolgot kell megmutatnunk: azt, hogy a veszteségmentes összekapcs0-lási, valamint a függoségmegorzo tulajdonságok megmaradtak, és azt, hogy afelbontás relációi 3NF-ben vannak.

1. Veszteségmentes összekapcsolás. Kezdjük egy olyan relációval, amelyattribútumainak egy K halmaza szuperkulcs. Tekintsük a funkcionálisfüggoségek szekvenciáját, ahogy azt a 3.7. algoritmusban használtuk a Kkiterjesztéséhez K+ -ra. Mivel K egy szuperkulcs, így~tudjuk, hogy K+ azösszes attribútumot jelenti. A funkcionális függoségeket a chase-tabl6raalkalmazva azt kapjuk, hogy az indexelt SZim

~

lumOk aK-hoz t8l1tozósorban egyenlok lesznek a nem indexelt szimb lumokkal, ugyanabban asorrendben, ahogyan az attribútumok a lezárt a kerültek. Így ennek atesztnek az eredményeként levonhatjuk azt a k"vetkeztetést, hogy a fel-bontás veszteségmentes.

,.

3.5. Harmadik normálforma 111

2. Függoségmegorzés. A minimális bázis összes funkcionális függoségerendelkezik az összes attribútummal a felbontás valamelyik relációjában.Így az összes függoség ellenorizheto a felbontás relációiban.

3. Harmadik normálforma. Amikor egy olyan relációt adunk hozzá a felbon-táshoz, amelynek sémája egy kulcs, akkor ez a reláció biztosan 3NF-benvan. Ennek az az oka, hogy ennek a relációnak az összes attribútuma el-sodleges kulcs, így nem sérti meg a 3NF-et erre a relációra. A minimálisbázis funkcionális függoségeibol származó relációk esetében annak bizo-nyítása, hogy 3NF-ben vannak, túlmutat ennek a könyvnek a keretein.Az érvelés annak bemutatására szorítkozik, hogy a 3NF megsértése magaután vonná, hogy a bázis nem minimális.

3.5.4. Feladatok

3.5.1. feladat. Minden reláci6sémára és funkcionális függoséghalmazra, amelya 3.3.1. feladatban szerepelt:

i) Derítsük fel a 3NF-sértéseket.

ii) Ha szükséges, bontsuk fel a relációkat 3NF-ben lévo relációk halmazára.

3.5.2. feladat. Vizsgáljuk meg a Kurzusok(K, O, 1, T, D, Cs) relációt, amely-nek az attribútumai informálisan az alábbiak: kurzus, oktató, idopont, terem,diák, csoport. Legyenek a funkcionális függoségek: K -+ O, IT -+ K, 10 -+ T,ID -+ T és K D -+ Cs. Intuitívan az elso állítás azt mondja, hogy egy kurzusnakegyedi oktatója van, a második azt jelenti, hogy egy idopontban egy terembenegy kurzus lehet. A harmadik azt mondja, hogy egy tanár egy idopontban csakegy teremben lehet, a negyedik pedig ugyanezt mondja a diákokról. Az utolsópedig azt jelenti, hogy egy diák egy kurzus egyetlen csoportjába jár.

a) Melyek a Kurzusok reláció kulcsai?

b) Igazoljuk, hogy a megadott funkcionális függoségek minimális bázist al-kotnak.

e) Használjuk a 3NF-szintetizáló algoritmust, hogy megtaláljuk R veszteség-mentes összekapcsolási és függ6ségmegorzo tulajdonságú dekompozícióit3NF-reláci6kra. Van ezek között olyan reláció, amelyik nincs BCNF-ben?

3.5.3. feladat. Vizsgáljuk meg a Részvények(B, 1, Be, R, M, O) relációt,melynek az attribútumai informálisan az alábbiak: bróker, iroda (a brókeré),befekteto, részvény, mennyiség (a befekteto által birtokolt részvényé) és osz-talék (a részvén1é). Legyenek a Részvények-re érvényes függoségek R -+ O,Be -+ B, BeR -+ M és B -+ 1. Ismételjük meg a 3.5.2. feladatot a Részvényekrelációra.