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(A1,...,An) egy relációséma, és P, Q az {A1,...,An} 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 ti ∈ T és tj ∈ T esetén ti(P) = tj(P) => ti(Q) = tj(Q) EHA
Név
Lakcím
Tárgy
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.
5
Logika
Jegy
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: – f1: {számla.sorszám, árukód} → {egységár, mennyiség} – f2: {á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: – f1: {kurzuskód} → {kurzus_neve} – f2: {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
Másodlagos
attribútum
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