Adatbázis rendszerek I Kovács László Normalizálási alapok
Normalizálási alapok A szoftver az egyik legösszetettebb és legmegbízhatatlanabb ipari termék Számítási hibák Mars Climate Orbiter (1999) Ariane 5 rakéta (1996) Védelmi hiányosságok ILOVEYOU (2000), $10 billió SQLslammer (2003) Adatkezelés Y2000 és Y2038 Kezelő felület hiányosságai …
Normalizálási alapok A tervezéssel eltöltött idő sohasem elvesztegetett idő Adatbázisoknál a javítás költsége a tervezési hiányosságoknál egy nagyságrenddel nagyobb mint a többi hiba esetében Mire kell ügyelni? minden információelem meglegyen beszédes elnevezések érvényes adattípusok érvényes kapcsolatok érvényes integritási elemek kezelés biztonsága hatékonyság védelem … tacoma Failure is not an option. It is a key part of a software.
Normalizálási alapok Az adatbázis tervezésnél, az egyik jól formalizálható elem a redundancia kezelése redundancia: információ ismétlődése hátrányai: - beszúrási anomália - módosítási anomália - törlési anomália - helyfoglalás előnyei: - elérési gyorsaság - hibatűrés cél: szabályozott, minimális redundancia dkod uticél dnév dcím befizetes 1 Eger Peter Miskolc 3 3 Eger Antal Baja 5 1 Ózd Peter Miskolc 2
Normalizálási alapok redundancia oka: mezők közötti érték-függőség dkod uticél dnév dcím befizetes 1 Eger Peter Miskolc 3 3 Eger Antal Baja 5 1 Ózd Peter Miskolc 2 függőség jele: FD A B függőség értelmezése: minden A értékhez maximum egy B érték tartozik Az FD eltávolítása megszünteti a redundanciát
Normalizálási alapok Normalizálás: redundancia megszüntetése az FD-k eliminálásával de nem mindegyik FD-t kell eldobni! dkod uticél dnév dcím befizetes 1 Eger Peter Miskolc 3 3 Eger Antal Baja 5 1 Ózd Peter Miskolc 2 Az ismétlődő értékű mezőkből kiinduló FD-ket kell elvetni A kulcsból kiinduló FD-k nem okoznak redundanciát
Normalizálási alapok A nemkívánt FD megszüntetése a tartalmazó reláció felbontásával történik (dekompozíció) dkod uticél dnév dcím befizetes 1 Eger Peter Miskolc 3 dkod uticél befizetes dkod dnév dcím 1 Eger 3 1 Peter Miskolc A felbontásnak veszteségmentesnek kell lennie Az eredeti relációkat elő kell tudni állítani a részekből
kép Csontváry Kosztka Tivadar (1853-1919): Öreg halász(1902)
Normalizálási elemek Mező elnevezéshez kapcsolódó hibák szinonima homonima TILOS! nem beszédes elnevezés DOLGOZO(nev,c12,fonok,f_cim,fizetes,telephely) OSZTALY(nev,telephely,vezeto,v_cim,fizetes) PROJEKT(nev,d_nev,megrendelo,fizetes,mcim) nyilt logikai átfedés technikai homonima
Normalizálási elemek FD fogalma: A B az R(A,B,C) sémában, ha minden t1,t2 r(R)-beli rekordra, ha t1(A) = t2(A), akkor t1(B) = t2(B) is teljesül a definíció r(R) függő eseti függőség (néhány r-re) érdemi függőség (minden r-re) egy adott r(R)-ből nem lehet következtetni az FD érdemiségére, de lehet következtetni az esetiségére minden R sémához tartozik egy érdemi FD halmaz dkod uticél dnév dcím befizetes
Normalizálási elemek Cél: áttekinthetőség, egyszerűség dkod uticél dnév dcím befizetes felesleges FD-k jelennek meg az FD-k között is redundancia jelenhet meg Armstrong axiómák: ha B A A B (triviális FD) A B AC BC A B, B C A C következmények: A B, C D AC BD
Normalizálási elemek Egy FD-halmaz kibővíthető a származtatott FD-kel Az X FD-halmaz lezártja: X+ X+ : {B | X B} FD-halmazok ekvivalenciája: X Y, ha X+ = Y+ Egy FD-halmaz egyszerűsíthető a redundáns FD-kel Az X FD-halmaz irreducibilis magja: X- X- jellemzői: - nem tartalmaz triviális FD-t - jobb oldal elemi Belátható, hogy X X+ és X X- és X- X+ X+ X X-
Normalizálási elemek dkod uticél dnév dcím befizetes irreducibilis mag meghatározása dkod uticél dnév dcím befizetes
Normalizálási elemek Redundancia oka: ismétlődő értékű mezőből kiinduló FD Redundancia mentesítés: csak nem-ismétlődő értékű mezőkből induljon ki FD Normalizálás: nem kívánt FD-k megszüntetése Az FD-ket a mezők szétválasztásával, a reláció felbontásával (dekompozíció) szüntetjük meg
Normalizálási elemek Alap normalizálási lépések: - FD-k feltárása - 1NF : létezzen kulcs, minden mező elemi - 2NF : 1NF + részkulcsból ne induljon ki FD - 3NF : 2NF + nem kulcsból ne induljon ki FD dkod uticél dnév dcím befizetes 1NF 3NF 2NF dnév dcím dkod uticél befizetes dkod dnév
Normalizálási elemek A gyakorlat szinte mindig megtalálja az elmélet hiányosságait Miért nem jó a 3NF? ig.szám taj-szám név A felbontás nem hoz nyereséget Szükségtelen a felbontás A taj_szám jelölt kulcs, nem ismétlődik, nem okoz redundanciát BCNF: FD csak jelölt kulcsból induljon ki
Normalizálási elemek Az elmélet a gyakorlat egy közelítése, modellje Az adatbázis tervezésnél a hatékonysági szempontokat is lényegesnek kell tekinteni (JOIN költségessége) re-decomposition: a szétbontott táblák egyesítése „A normalizálás nem tervezés hanem elemzés” „A valós adatbázisséma a 3NF és a teljes káosz között van”
kép csontváry Kosztka Tivadar: Fohászkodó Üdvözítő (1903)
Normalizálási alapok Egyedi elemek - levezethetőség és logikai következmény - igazságtétel bizonyítása - levezetési példák - szuperkulcs - FD halmaz lezárási tételek - teljességi tétel bizonyítása - lezárási tétel bizonyítása
kép Csontváry Kosztka Tivadar: Római híd Mosztarban (1903)