Adatbázisok gyakorlat 5. gyakorlat Adatmodellezés III/IV Funkcionális függés, redundancia. Normalizálás Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1
Funkcionális függés Legyen R(A 1,...,A n ) egy relációséma, és P, Q az {A 1,...,A n } attribútumhalmaz részhalmazai. P-től funkcionálisan függ Q (jelölésben P Q), ha bármely R feletti T tábla esetén valahányszor két sor megegyezik P-n, akkor megegyezik Q-n is,vagyis bármely t i T és t j T esetén t i (P) = t j (P) => t i (Q) = t j (Q) EHA Név Lakcím Tárgy Jegy MINTAAT.SZE Minta Áron Szeged, Egy u. 2. Adatbázisok 4 KELPEET.SZE Kelek Elek Sándorfalva, Fő tér 9. Logika 3 MINTAAT.SZE Minta Áron Szeged, Egy u. 2. Logika 5 Pl.: {EHA} {Név, Lakcím} Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 2
Funkcionális függés A funkcionális függés a séma tulajdonsága Elnevezések: A P Q függést triviálisnak nevezzük, ha Q P, ellenkező esetben nem triviális. A P Q függést teljesen nemtriviálisnak nevezzük, ha Q P = 0. A gyakorlatban általában teljesen nemtriviális függőségeket adunk meg. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 3
Redundancia Akkora beszélünk róla, ha valamilyen adato(ka)t többszörösen tárolunk el. Előző példában pl. Név, Lakcím feleslegesen volt többször tárolva Probléma: Lakcímváltozás esetén mindenhol át kellene írni az új címre (hibák, felesleges erőforrás) Tárigény növekedés Adott séma dekompozíciójával megszüntethető (azaz több sémára bontjuk a sémát) Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 4
Redundancia Az adatok összesítése módosítása törlése tárolása esetén nem szerencsés a redundancia Emiatt szigorúbb formai szabályokat kell bevezetnünk a relációsémákra: 1NF 2NF 3NF ( BCNF 4NF) Mindig célszerű, de nem mindig kötelező Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 5
1. Normálforma Egy relációséma 1NF-ben van, ha az attribútumok értéktartománya csak egyszerű (atomi) adatokból áll (nem tartalmaz például listát vagy struktúrát). Mivel az 1NF feltétel teljesülését már a relációs modell definíciójánál kikötöttük, ezért az 1NF-re hozást lényegében az E-K modellről relációs modellre történő átalakításnál elvégeztük (lásd: előző óra/összetett és többértékű attribútumok leképezése). Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 6
2. Normálforma Teljes függés: Legyen R(A) relációséma, X,Y A, és X Y. Azt mondjuk, hogy X-től teljesen függ Y, ha X-ből bármely attribútumot elhagyva a függőség már nem teljesül, vagyis bármely X1 X esetén X1 Y már nem igaz. 2. Normálforma def.: Egy relációséma 2NF-ben van, ha minden másodlagos attribútum teljesen függ bármely kulcstól. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 7
2. Normálforma Vagyis: Ha egy kulcs több attribútumból áll, és ezen attribútumok közül néhányat letakarok, majd pedig így nem tudok minden sort egyértelműen megkülönböztetni, sérül a 2NF. Vannak másodlagos attribútumok, amik nem a teljes kulcstól, hanem annak csak egyes részeitől függenek. A séma akkor nincs 2NF-ben, ha egy kulcs részhalmazától függ (egy vagy több) másodlagos attribútum Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 8
Következmények 1. Ha minden kulcs egy attribútumból áll, akkor a séma 2NF-ben van. 2. Ha a sémában nincs másodlagos attribútum, akkor 2NF-ben van. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 9
2. Normálformára hozás A sémát felbontjuk Heath tétele szerint, a normálformát sértő függőség mentén. Ha valamely K kulcsra L K és L B (itt B legyen az összes L-től függő attribútum halmaza), akkor a sémát felbontjuk az L B függőség szerint. Legyen C = A (L U B), ekkor az R(A) sémát az R1(C U L) és R2(L U B) sémákkal helyettesítjük. Heath tétele alapján a felbontás hűséges. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 10
2. Normálformára hozás példa Tétel (árukód, számla.sorszám, árunév, egységár, mennyiség) Függőségek: f 1 : {számla.sorszám, árukód} {egységár, mennyiség} f 2 : {árukód} {árunév} Az árunév másodlagos attribútum nem teljesen függ a kulcstól Nincs 2NF-ben A gondot okozó függés (f2: {árukód} {árunév}) mentén felbontjuk a sémát két másik sémára. Tétel (árukód, számla.sorszám, egységár, mennyiség) Áru (árukód, árunév) Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 11
2. Normálformára hozás példa VIZSGATELJESÍTÉS(kurzuskód, kurzus_neve, dátum, jegy) Függőségek: f 1 : {kurzuskód} {kurzus_neve} f 2 : {kurzuskód, dátum} {jegy} A kurzus_neve másodlagos attribútum nem teljesen függ a kulcstól Nincs 2NF-ben A gondot okozó függés (f2: {kurzuskód} {kurzus_neve}) mentén felbontjuk a sémát két másik sémára. Kurzus(kurzuskód, kurzus_neve) Teljesítés(jegy, dátum, kurzuskód) Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 12
3. Normálforma Tranzitív függés Kulcs Másodlagos attribútum Másodlagos attribútum Tranzitív függés: Legyen X, Z A, és X Z. Azt mondjuk, hogy X-től tranzitívan függ Z, ha van olyan Y A, amelyre X Y és Y Z, de X nem függ Y-tól, és az Y Z függés teljesen nemtriviális 3.NF: Egy relációséma 3NF-ben van, ha minden másodlagos attribútuma közvetlenül függ bármely kulcstól. Következmény: Ha a sémában nincs másodlagos attribútum, akkor 3NF-ben van. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 13
3. Normálforma A sémát felbontjuk a normálformát sértő függőség mentén Ha másodlagos attribútumok egy B halmazára és valamely K kulcsra K Y B tranzitív függés fennáll, akkor a sémát felbontjuk Heath tétele szerint az Y B függés mentén. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 14
3. Normálformára hozás Számla (sorszám, dátum, vevőkód, vevőnév, vevőcím) {sorszám} {vevőkód} {vevőnév, vevőcím} Számla (sorszám, dátum, vevőkód) Vevő (vevőkód, vevőnév, vevőcím) Vagyis, felbontást végeztünk a {sorszám} {vevőkód} {vevőnév, vevőcím} függőség szerint. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 15
Feladat Egy áramszolgáltató nyilvántartja az ügyfeleit, valamint azok fogyasztását, a számlázás végett. Hozza az ÁRAM relációsémát 1NF, 2NF, 3NF normálformára! Jelölje be minden egyes sémában a kulcsokat és a függéseket! ÁRAM( ünév, vóra_száma, szavatosság, mérés_kezd, mérés_vége, ücím), ahol ünév, az ügyfél neve, mérés_kezd és mérés_vége a mérés kezdetén és végén leolvasott érték, ücím, az ügyfél lakcíme (város, utca, házszám, irsz). Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 16
Megjegyzések Feladatgyűjtemény: pub/adatbazisok/feladatok_v1.1.pdf Adatbázisok. Előadás jegyzet, www.inf.u-szeged.hu/~katona, pub/adatbázisok/ Cser Lajos diái alapján Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 17