logo

Tranzitív függőség a DBMS-ben

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.

    Könyv → Szerző:Itt a szerző attribútumot a könyv attribútum határozza meg. Ha valaki ismeri a könyv nevét, megtudhatja a szerző nevét is.Szerző → Szerző_Nationality:Ha valaki ismeri a szerző nevét, megtudhatja a szerző nemzetiségét is.Könyv → Szerző_Nemzetiség: Ha valaki ismeri a könyv nevét, megtudhatja a szerző nemzetiségét is.

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.