Többértékű függőségek, egyed kapcsolat modell
Többértékű függőségek
A többértékű függőség: az reláció fölött teljesül, ha bármely két sorra, amelyek megegyeznek az minden attribútumán, az attribútumaihoz tartozó értékek felcserélhetők, azaz a keletkező két új sor -beli lesz.
Más szavakkal: minden értéke esetén az -hoz tartozó értékek függetlenek az értékeitől.
Többértékű függőség szabályok
-
Minden funkcionális függőség egyben többértékű függőség is.
- Ha és két sor megegyezik -en, -on is megegyezik, emiatt ha ezeket felcseréljük, az eredeti sorokat kapjuk vissza, azaz:
-
Komplementálás: Ha és jelöli az összes többi attrubútum halmazát, akkor
-
Ugyanúgy, mint az FF-ek esetében, a baloldalakat nem "bánthatjuk" általában.
-
Az FF-ek esetében a jobboldalakat felbonthattuk, míg ebben az esetben ez sem tehető meg.
Negyedik normálforma
- A TÉF-ek okozta redundanciát a BCNF nem szünteti meg.
- Megoldás: a negyedik normálforma
- A negyedik normálformánál amikor dekomponálunk, a TÉF-eket úgy kezeljük, mint az FF-eket, a kulcsok megtalálásánál azonban nem számítanak.
Triviális TÉFek
Legyen egy reláció, és részhalmazai attribútumainak, jelölés:
- TÉF automatikusan fennáll, ha
- TÉF automatikusan fennáll, ha
4NF definíció
Egy reláció 4NF-ben van, ha minden nemtriviális TÉF esetén szuperkulcs
- Nemtriviális TÉF:
- nem részhalmaza -nek
- és együtt nem adják ki az összes attribútumot.
- A szuperkulcs definíciója ugyanaz marad, azaz csak az FF-ektől függ.
BCNF vs 4NF
- Kiderült, hogy minden FF TÉF is.
- Így ha 4NF-ben van, akkor BCNF-ben is.
- De lehet úgy BCNF-ben, hogy közben nincs 4NF-ben.
Dekompozíció és 4NF
Ha megsérti a 4NF-t, akkor -t hasonlóan dekomponáljuk, mint a BCNF esetén.
- az egyik dekomponált reláció
- Az -be nem tartozó attribútumok a másik.
TÉF és FFek együttes következtetése
- Probléma: relációsémához adott a TÉF-ek és FF-ek egy halmaza, kérdés: egy adott FF vagy TÉF következik-e ezekből fölött?
- Megoldás: használjunk egy táblázatot (tablót), hogy a függőségek hatásait feltárjuk. (A chase mögötti ötletet terjesztjük ki.)
Miért foglalkozunk ilyesmivel?
- 4NF azon múlik, hogy van-e olyan TÉF, ami sérti a feltételt.
- Előfordulhat, hogy a megadott FF-ek és TÉF-ek nem sértik a feltételt, de egy belőlük következő függőség igen.
- Amikor dekomponálunk az FF-eket és TÉF-eket is vetítenünk kell.
Következtetés
FF használata
FF alkalmazásánál keressük meg azon sorpárokat, amelyek megegyeznek attribútumain. Az attribútumain is tegyük őket egyenlővé.
- Egy változót egy másikra cseréljünk.
- Ha a lecserélt változó a célsorban is megjelenik, ott is cseréljünk.
TÉF használata
Egy TÉF használatánál keressünk két sort, amelyek megegyeznek X attribútumain.
- Adjuk hozzá a tablóhoz azokat a sorokat, amelyeket az attribútumaihoz tartozó értékek felcserélésével kapunk.
Célok
-
Az ellenőrzésekor akkor nyertünk, ha a megfelelő változók -hez tartozó minden oszlopban egyenlőek.
-
akkor győztünk, ha sikerül egy olyan sort kigenerálni, ami az eredeti két sorból keletkezik értékeinek felcserélésével.
Végjáték
- Használjuk az összes FF-et és TÉF-et, amíg bármiféle változtatás történhet.
- Ha nyertünk, nyertünk.
- Ha nem, egy ellenpéldát kaptunk.
- A kapott előfordulás az összes előre megadott függőséget teljesíti.
- Az eredeti két sor megsérti a kikövetkeztetendő függőséget.
TÉFek vetítése
- Le kell tudnunk vetíteni megadott függőségeket 2 reláció sémára
- Legrosszabb eset: ki kell próbálnunk minden lehetséges FF-et és TÉF-et a felbontott relációkra
- Chase teszt alkalmazása; Cél egy TÉF ellenőrzésénél: olyan sor előállítása a tablóban, amely indexeletlen betűket tartalmaz a felbontott reláció oszlopaira
Egyed kapcsolat modell
- Egyed kapcsolat modellekkel adatbázissémát vázolhatunk fel.
- A főbb részek felvázolásával hatékonyabb lehet egy működő adatbázist.
Egyedhalmazok
- Egyed (entity)
- Egyedhalmaz
- Az objektum-orientált nyelvek osztály fogalmához hasonló
- Attribútum
- Atomi értékűek, nem rekordok, tömbök
Diagrammok
- Az egyed kapcsolat diagramban:
- egyedhalmaz: téglalap
- alosztályok: háromszög (nincs töbszörös öröklés)
- attribútum: ovális
- kulcs(ok): aláhúzás
- sok-sok, sok-egy, egy-egy kapcsolat (rombusz)
- kapcsolathalmaz
- ezek össze vannak kötve
- egyedhalmaz: téglalap