1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor 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 KarAntal Gábor2Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor2 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) EHANévLakcímTárgyJegy MINTAAT.SZEMinta ÁronSzeged, Egy u. 2.Adatbázisok4 KELPEET.SZEKelek ElekSándorfalva, Fő tér 9.Logika3 MINTAAT.SZEMinta ÁronSzeged, Egy u. 2.Logika5 Pl.: {EHA} → {Név, Lakcím}
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor3Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor3 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 KarAntal Gábor4Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor4 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 KarAntal Gábor5Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor5 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 KarAntal Gábor6Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor6 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 KarAntal Gábor7Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor7 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 KarAntal Gábor8Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor8 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 KarAntal Gábor9Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor9 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 KarAntal Gábor10Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor10 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 KarAntal Gábor11Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor11 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 KarAntal Gábor12Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor12 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 KarAntal Gábor13Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor13 3. Normálforma •Tranzitív függés •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. Kulcs Másodlagos attribútum Másodlagos attribútum
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor14Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor14 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 KarAntal Gábor15Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor15 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 KarAntal Gábor16Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor16 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 KarAntal Gábor17Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor17 Megjegyzések •Feladatgyűjtemény: –pub/Adatbazisok/feladatok_v1.1.pdf •Adatbázisok. Előadás jegyzet, – –pub/Adatbázisok/ •Cser Lajos diái alapján