Normalizálási feladatok megoldása SZÍNHÁZ(színháznév, megye, település, író, cím, műfaj, dátum, időpont) {színháznév} {megye, település} {település} {megye} {író, cím} {műfaj} {színháznév, dátum, időpont} {megye, település, író, cím, műfaj} 1NF-ban van, mivel nincs benne sem összetett, sem többértékű attribútum. A 2NF nem teljesül a {színháznév} {megye, település} függés miatt. Felbontjuk a sémát e függés MŰSOR(színháznév, író, cím, műfaj, dátum, időpont) SZÍNHÁZ(színháznév, megye, település) Ezek a sémák már 2NF-ban vannak, de a 3NF nem teljesül egyikben sem: a MŰSOR-ban az {író, cím} {műfaj}, a SZÍNHÁZ-ban pedig a {település} {megye} sérti ezt a normálformát. Felbontjuk a sémákat e függések MŰSOR(színháznév, író, cím, dátum, időpont) MŰ(író, cím, műfaj) SZÍNHÁZ(színháznév, település) TELEPÜLÉS(település, megye) Most már 3NF-ban van mindegyik séma. R(A, B, C, D, E, F) E = E1E2E3 1. B DEF 2. E2 E1 B DEF DE1E2E3F Az A, B és C attribútumok semelyik függés jobb oldalán nem szerepelnek, ezért biztosan részei a kulcsnak. Meghatározzuk az {A, B, C} + halmazt: {A, B, C} 0 = {A, B, C} {A, B, C} 1 = {A, B, C, D, E1, E2, E3, F } a B DE1E2E3F függés alapján. Tehát {A, B, C} szuperkulcs, és nyilvánvalóan semelyik részhalmaza sem szuperkulcs, tehát {A, B, C} lesz a kulcs. Más kulcs nem lehet, mivel minden egyéb attribútum a B attribútumtól függ. R(A, B, C, D, E, F)
A séma nincs 1NF-ban, mert E összetett. Behelyettesítést végzünk ennek megfelelően: R(A, B, C, D, E1, E2, E3, F) Ez már 1NF, de nem 2NF a B DE1E2E3F függés miatt. Felbontjuk a sémát e függés R1(A, B, C) R2(B, D, E1, E2, E3, F) Mindkét séma 2NF-ban van, de utóbbi nincs 3NF-ban a B E2 E1 tranzitív függés miatt. Felbontjuk R2-őt e függés R1(A, B, C) R2(B, D, E2, E3, F) R3(E2, E1) Most már mindegyik séma 3NF-ben van. R(A, B, C, D, E, F, G) F többértékű 1. A CD 2. DE BG 3. D C 4. B AF Korábban már levezettük, hogy ennek a sémának a kulcsai az {A, E} és {B, E} halmazok. (Lásd: http://www.inf.u-szeged.hu/~pkardos/oktatas/adatb/ffugges_megoldas.pdf) Így A, B és E az elsődleges attribútumok, C, D, F, G pedig a másodlagos attribútumok. R(A, B, C, D, E, F, G) A séma nincs 1NF-ban, mert F többértékű. Felbontást végzünk ennek megfelelően: R1(A, B, C, D, E, G) Mindkét séma 1NF-ben van, de az első nincs 2NF-ben az A CD függés miatt. Felbontjuk tehát R1-et e függés R1(A, B, E, G) R3(A, C, D) Ezekre már teljesül a 2NF tulajdonság, de a harmadik séma nincs 3NF-ban az A D C tranzitív függés miatt. Felbontjuk R3-at e függés
R1(A, B, E, G) R3(A, D) R4(C, D) Most már mindegyik séma 3NF-ben van. R(A, B, C, D, E, F, G, H, I) F és G többértékű 1. AB CD 2. BC F 3. E G 4. B HI 5. H CI Korábban már levezettük, hogy ennek a sémának a kulcsa az {A, B, E} halmaz. (Lásd: http://www.inf.u-szeged.hu/~pkardos/oktatas/adatb/ffugges_megoldas.pdf) R(A, B, C, D, E, F, G, H, I) A séma nincs 1NF-ban, mert F és G többértékű. Felbontjuk R-et ennek megfelelően: R1(A, B, C, D, E, H, I) Mindegyik séma 1NF-ban van. R2 és R3 esetén automatikusan teljesül a 2NF, mivel abban mindegyik attribútum elsődleges, de R1 nincs 2NF-ban például az AB CD és B HI miatt. Innen két lehetséges megoldást vizsgálunk: 1. megoldás: Célszerű megvizsgálni, hogy mik lesznek az {A, B} + és {B} + lezárt halmazok, mivel bár a feladatban felírt függések jobb oldalain csak 2-2 attribútum szerepel, közvetett módon még lehetséges, hogy további attribútum(ok) is függeni fog(nak) az {A, B} ill. {B} halmazoktól. {A, B} 1 = {A, B, C, D} az AB CD függés alapján. {A, B} 2 = {A, B, C, D, F} a BC F függés alapján. {A, B} 3 = {A, B, C, D, F, H, I} a B HI függés alapján. Vagyis AB ABCD ABCDF ABCDFHI. Ennél tovább nem tudunk bővíteni, tehát {A, B} + = {A, B, C, D, F, H, I}. {B} 1 = {B, H, I} az B HI függés alapján. {B} 2 = {B, C, H, I} a H C függés alapján. {B} 3 = {B, C, F, H, I} a BC F függés alapján. Vagyis B BHI BCHI BCDFHI.
Ennél tovább nem tudunk bővíteni, tehát {B} + = {B, C, D, F, H, I}. Mivel F már nincs benne az R1-ben, ezért a 2NF-át konkrétan az AB CDHI és B CDHI függések sértik. Elegendő az utóbbi függés mentén felbontani az R1-et, mivel utána a C, D, H, I attribútumok már nem lesznek egy sémában az A attribútummal, így nyilvánvalóan az AB CDHI függés már nem fogja sérteni a 2NF tulajdonságot: R4(B, C, D, H, I) Most már mindegyik séma 2NF-ban van, és az első három sémára a 3NF tulajdonság is automatikusan teljesül, mivel mindegyik attribútuma elsődleges, viszont az R4 még nincs 3NF-ban a B H CI tranzitív függés miatt, tehát felbontjuk ezt a sémát az említett függés R4(B, D, H) R5(H, C, I) Most már mindegyik séma 3NF-ban van. 2. megoldás: A lezártak vizsgálata helyett egyszerűen bontsuk fel R1-et az AB CD és B HI függések R4(A, B, C, D) R5(B, H, I) Most már mindegyik séma 2NF-ban van, de R5 nincs 3NF-ban a B H I tranzitív függés miatt. Felbontjuk R5-öt ezen függés R4(A, B, C, D) R5(B, H) R6(H, I) Most már mindegyik séma 3NF-ban van.
A két megoldást összehasonlítva látható, hogy az 1. megoldás szerint eljárva kevesebb sémára kellett bontani az eredeti sémát, mint a 2. megoldás esetén, tehát érdemes mindig az érintett attribútumhalmazok lezártjait is vizsgálni egy-egy felbontás előtt.