Tekintsünk egy R(A B C) relációt. Itt A, B és C az R reláció attribútumaként ismert. Amikor a következő feltétel adódik; akkor a tranzitív függőség fellép a DBMS-ben. A feltételek A → B, B → C. Ezért a feltételből A → C lesz. Más szóval azt mondhatjuk, hogy ha két funkcionális függőség hoz létre függőséget, akkor a funkcionális függőségek tranzitív függőségekké válnak.
Mi az a tranzitív függőség?
Tekintsünk egy R(A B C) relációt. Itt A, B és C az R reláció attribútumaként ismert. Amikor a következő feltétel adódik; akkor a tranzitív függőség fellép a DBMS-ben. A feltételek A → B, B → C. Ezért a feltétel A → C lesz. tranzitív funkcionális függőségekben, egy függő közvetlenül függ a determinánstól.
Értsük meg a tranzitív függőségeket a következő példa segítségével.
Szerző_ID | Szerző | Könyv | Szerző_nemzetiség |
---|---|---|---|
A1 | Arundhati Roy | A kis dolgok istene | India |
A1 | Kiran Desai | A veszteség öröksége | India |
A2 | R. K. Narayan | Malgudy emberevője | India |
A fenti szerzői táblázatban ezt kapjuk.
Ha alaposan megvizsgáljuk a fent tárgyalt funkcionális függőségeket, a következő mintát találjuk.
- A → B és B → C B → C; ezért A → CA → C.
- A → Könyv, B → Szerző B → Szerző és C → Szerzői_nemzetiség C→Szerző_nemzetisége
Tegyük fel, hogy a fenti szerzői táblázatban a harmadik normál formát (3NF) alkalmazzuk. Ebben az esetben el kell távolítani a szerzői tábla tranzitív függőségét, és az adatbázis tranzitív függőségei eltávolításának folyamatát Normalizálási folyamatnak nevezzük.
Hogyan kerüljük el a tranzitív függőségeket?
Tekintsük újra a fenti szerzői táblázatot, és nézzük meg, milyen típusú probléma merül fel a táblázat létrehozása során.
Szerzői táblázat:
Szerző_ID | Szerző | Könyv | Szerző_nemzetiség |
---|---|---|---|
A1 | Arundhati Roy | A kis dolgok istene | India |
A1 | Kiran Desai | A veszteség öröksége | India |
A2 | R. K. Narayan | Malgudy emberevője | India |
Az adatok anomáliáihoz (például frissítési, beillesztési és törlési anomáliák) és inkonzisztenciához a szerzői táblázat hozzájárulhat. Ha túl sok a redundancia az adatbázisban, akkor az adatok anomáliákat okoznak. Adatrendellenességek akkor is előfordulnak, ha probléma van a frissítéssel, törléssel és új adatok beszúrásával. Például a szerzői táblázatban-
- Addig nem adhatunk hozzá új szerzőt, amíg nem tudunk könyvet hozzáadni a táblázathoz.
- A szerzőt addig nem tudjuk törölni, amíg a könyvet teljesen nem töröljük az adatbázisból.
- Ha törölni akarjuk A kis dolgok istene című könyvet, akkor a szerző azonosítója, szerzője és nemzetisége is törlésre kerül.
A fenti problémák minden olyan kapcsolatban előfordulnak, amely tranzitív függőséget tartalmaz.
Harmadik normál forma a tranzitív függőség eltávolításával
Tekintsük a Szerző táblázat három attribútummal (Author_ID, Author, Author_Nationality), és próbálja meg megtalálni és megszüntetni a tranzitív függőséget ebből a táblázatból,
Szerzői táblázat:
Szerző_ID | Szerző | Könyv | Szerző_nemzetiség |
---|---|---|---|
A1 | Arundhati Roy | A kis dolgok istene | India |
A1 | Kiran Desai | A veszteség öröksége | India |
A2 | R. K. Narayan | Malgudy emberevője | India |
A fenti szerzői táblázat nem 3NF-ben található, mert tranzitív függősége van. Lássuk hogyan
lebegő css
- Szerző → Szerző_nemzetiség Szerző → Szerző_Nemzetiség
- Szerző_ID → Szerző
Ezért a következő funkcionális függőség is fennáll,
- Authir_ID → Author_Nationality a fentebb tárgyalthoz hasonló mintát alkot.
Most, hogy kiküszöböljük a tranzitív függőséget, mindössze annyit kell tennünk, hogy felosztjuk a Szerző tábláját oly módon, hogy a Szerző_ID többé funkcionálisan ne függjön az Author_Nationality-től.
Hozzunk létre két táblát, az egyikben csak a { Author_ID, Author}, a másikban a {Author_Nationality} szerepel. Az új asztalok így fognak kinézni:
Szerzői táblázat
Szerző_ID | Szerző |
---|---|
A1 | A kis dolgok istene |
A2 | A veszteség öröksége |
A3 | Malgudy emberevője |
Szerző nemzetiségi táblázat
Szerző | Szerző_nemzetiség |
---|---|
Arundhati Roy | India |
Kiran Desai | India |
R. K. Narayan | India |
Most az új Szerző tábla és Szerzői nemzetiség tábla nem tartalmaz tranzitív függőséget, és a reláció 3NF-ben van.