logo

Transitive Abhängigkeit im DBMS

Betrachten wir eine Beziehung R(A B C). Hier sind A, B und C als Attribut der Beziehung R bekannt. Wenn die folgende Bedingung auftritt; dann tritt die transitive Abhängigkeit im DBMS auf. Die Bedingungen sind A → B, B → C. Daher wird die Bedingung zu A → C. Mit anderen Worten können wir sagen, dass, wenn Abhängigkeiten durch zwei funktionale Abhängigkeiten hergestellt werden, die funktionalen Abhängigkeiten zu transitiven Abhängigkeiten werden.

Was ist transitive Abhängigkeit?

Betrachten Sie eine Beziehung R(A B C). Hier sind A, B und C als Attribut der Beziehung R bekannt. Wenn die folgende Bedingung auftritt; dann tritt die transitive Abhängigkeit im DBMS auf. Die Bedingungen sind A → B, B → C. Daher wird die Bedingung zu A → C. In transitiven funktionalen Abhängigkeiten ist ein Abhängiges direkt von der Determinante abhängig.

Lassen Sie uns die transitiven Abhängigkeiten anhand des folgenden Beispiels verstehen.

Autor_ID Autor Buch Autor_Nationalität
A1 Arundhati Roy Der Gott der kleinen Dinge Indien
A1 Kiran Desai Das Erbe des Verlustes Indien
A2 R. K. Narayan Der Menschenfresser von Malgudy Indien

In der obigen Autorentabelle sehen wir das.

    Buch → Autor:Dabei wird das Autorenattribut durch das Buchattribut bestimmt. Wenn jemand den Namen des Buches kennt, kann er auch den Namen des Autors erfahren.Autor → Autor_Nationalität:Wenn jemand den Namen des Autors kennt, kann er auch die Nationalität des Autors erfahren.Buch → Autor_Nationalität: Wenn jemand den Namen des Buches kennt, kann er auch die Nationalität des Autors erfahren.

Wenn wir uns die oben diskutierten funktionalen Abhängigkeiten genau ansehen, finden wir das folgende Muster.

  • A → B und B → C B→C; daher A → CA → C.
  • A → Buch, B → Autor B → Autor und C → Autor_Nationalität C→Autor_Nationalität

Angenommen, wir wenden die dritte Normalform (3NF) in der obigen Autorentabelle an. In diesem Fall muss die transitive Abhängigkeit der Autorentabelle entfernt werden, und der Prozess des Entfernens der transitiven Abhängigkeiten der Datenbank wird als Normalisierungsprozess bezeichnet.

Wie vermeide ich transitive Abhängigkeiten?

Schauen wir uns die obige Autorentabelle noch einmal an und sehen, welche Art von Problem bei der Tabellenerstellung auftritt.

Autorentabelle:

Autor_ID Autor Buch Autor_Nationalität
A1 Arundhati Roy Der Gott der kleinen Dinge Indien
A1 Kiran Desai Das Erbe des Verlustes Indien
A2 R. K. Narayan Der Menschenfresser von Malgudy Indien

Die Datenanomalien (wie Aktualisierungs-, Einfüge- und Löschanomalien) und Inkonsistenzen können durch die Autorentabelle verursacht werden. Wenn die Datenbank zu viel Redundanz aufweist, werden Datenanomalien in den Daten verursacht. Datenanomalien werden auch verursacht, wenn beim Aktualisieren, Löschen und Einfügen neuer Daten Probleme auftreten. Zum Beispiel in der Autorentabelle-

  • Wir können keinen neuen Autor hinzufügen, bis wir der Tabelle kein Buch hinzufügen können.
  • Wir können den Autor erst löschen, wenn wir das Buch vollständig aus der Datenbank gelöscht haben.
  • Wenn wir das Buch „Der Gott der kleinen Dinge“ löschen möchten, werden auch die ID, der Autor und die Nationalität des Autors gelöscht.

Die oben genannten Probleme treten in jeder Beziehung auf, die transitive Abhängigkeiten enthält.

Dritte Normalform durch Entfernen der transitiven Abhängigkeit

Betrachten wir das Autorentabelle mit drei Attributen (Author_ID, Author, Author_Nationality) und versuchen Sie, die transitive Abhängigkeit aus dieser Tabelle zu finden und zu beseitigen,

Autorentabelle:

Autor_ID Autor Buch Autor_Nationalität
A1 Arundhati Roy Der Gott der kleinen Dinge Indien
A1 Kiran Desai Das Erbe des Verlustes Indien
A2 R. K. Narayan Der Menschenfresser von Malgudy Indien

Die obige Autorentabelle befindet sich nicht in 3NF, da sie eine transitive Abhängigkeit aufweist. Mal sehen, wie

So initialisieren Sie ein Array in Java
  • Autor → Autor_Nationalität Autor → Autor_Nationalität
  • Autor_ID → Autor

Daher besteht auch die folgende funktionale Abhängigkeit:

  • Authir_ID → Author_Nationality bildet ein Muster, das dem oben besprochenen ähnelt.

Um nun die transitive Abhängigkeit zu beseitigen, müssen wir nur noch die Tabelle des Autors so aufteilen, dass Author_ID funktional nicht mehr von Author_Nationality abhängt.

Erstellen wir zwei Tabellen, eine mit nur { Author_ID, Author} und eine andere mit {Author_Nationality}. Die neuen Tabellen werden so aussehen:

Autorentabelle

Autor_ID Autor
A1 Der Gott der kleinen Dinge
A2 Das Erbe des Verlustes
A3 Der Menschenfresser von Malgudy

Nationalitätstabelle des Autors

Autor Autor_Nationalität
Arundhati Roy Indien
Kiran Desai Indien
R. K. Narayan Indien

Jetzt enthalten die neue Autorentabelle und die Autorennationalitätstabelle keine transitive Abhängigkeit und die Beziehung befindet sich jetzt in 3NF.