logo

Zależność przechodnia w systemie DBMS

Rozważmy relację R(A B C). Tutaj A, B i C są znane jako atrybut relacji R. Kiedy pojawia się następujący warunek; wówczas w systemie DBMS występuje zależność przechodnia. Warunki to A → B, B → C. Zatem warunek staje się A → C. Innymi słowy, możemy powiedzieć, że gdy zależności są tworzone przez dwie zależności funkcjonalne, wówczas zależności funkcjonalne stają się zależnościami przechodnimi.

Co to jest zależność przechodnia?

Rozważmy relację R(A B C). Tutaj A, B i C są znane jako atrybut relacji R. Kiedy pojawia się następujący warunek; wówczas w systemie DBMS występuje zależność przechodnia. Warunki to A → B, B → C. Zatem warunek staje się A → C. w przechodnich zależnościach funkcjonalnych zależna jest bezpośrednio zależna od wyznacznika.

Przyjrzyjmy się zależnościom przechodnim na poniższym przykładzie.

Autor_ID Autor Książka Autor_Narodowość
A1 Arundhati Roy Bóg małych rzeczy Indie
A1 Kiran Desai Dziedziczenie straty Indie
A2 R. K. Narayan Ludożerca z Malgudów Indie

W powyższej tabeli autorów mamy to.

    Książka → Autor:W tym przypadku atrybut autora jest określany na podstawie atrybutu książki. Jeśli ktoś zna tytuł książki, może poznać także nazwisko autora.Autor → Autor_Narodowość:Jeśli ktoś zna nazwisko autora, może poznać także jego narodowość.Książka → Autor_Narodowość: Jeśli ktoś zna tytuł książki, może poznać także narodowość autora.

Jeśli przyjrzymy się bliżej zależnościom funkcjonalnym omówionym powyżej, znajdziemy następujący wzór.

  • A → B i B → C B → C; zatem A → CA → C.
  • A → Książka, B → Autor B → Autor i C → Autor_Narodowość C → Autor_Narodowość

Załóżmy, że w powyższej tabeli autora zastosujemy trzecią postać normalną (3NF). W takim przypadku należy usunąć przechodnią zależność tabeli autora, a proces usuwania przechodnich zależności bazy danych nazywany jest procesem normalizacji.

Jak uniknąć zależności przechodnich?

Rozważmy ponownie powyższą tabelę autorów i zobaczmy, jakiego rodzaju problemy pojawiają się podczas tworzenia tabeli.

Tabela autorów:

Autor_ID Autor Książka Autor_Narodowość
A1 Arundhati Roy Bóg małych rzeczy Indie
A1 Kiran Desai Dziedziczenie straty Indie
A2 R. K. Narayan Ludożerca z Malgudów Indie

Anomalie danych (takie jak anomalie aktualizacji, wstawiania i usuwania) oraz niespójności mogą wynikać z tabeli autorów. Jeśli w bazie danych występuje zbyt duża nadmiarowość, w danych powstają anomalie. Anomalie danych powstają także wtedy, gdy pojawia się problem z aktualizacją, usuwaniem i wstawianiem nowych danych. Na przykład w tabeli autora-

  • Nie możemy dodać nowego autora, dopóki nie będziemy mogli dodać książki do tabeli.
  • Nie możemy usunąć autora, dopóki nie usuniemy całkowicie książki z bazy.
  • Jeśli chcemy usunąć książkę „Bóg rzeczy małych”, identyfikator, autor i narodowość autora również zostaną usunięte.

Powyższe problemy występują w każdej relacji zawierającej zależności przechodnie.

Trzecia postać normalna poprzez usunięcie zależności przechodniej

Rozważmy Tabela autorska z trzema atrybutami (Author_ID, Author, Author_Nationality) i spróbuj znaleźć i wyeliminować zależność przechodnią z tej tabeli,

Tabela autorów:

Autor_ID Autor Książka Autor_Narodowość
A1 Arundhati Roy Bóg małych rzeczy Indie
A1 Kiran Desai Dziedziczenie straty Indie
A2 R. K. Narayan Ludożerca z Malgudów Indie

Powyższa tabela autora nie znajduje się w 3NF, ponieważ ma zależność przechodnią. Zobaczmy jak

wiek Ankity Lokhande
  • Autor → Autor_Narodowość Autor → Autor_Narodowość
  • ID_autora → Autor

Dlatego istnieje również następująca zależność funkcjonalna,

  • Authir_ID → Author_Nationality tworzy wzór podobny do tego, co omówiliśmy powyżej.

Teraz, aby wyeliminować zależność przechodnią, wystarczy podzielić tabelę autora w taki sposób, aby Author_ID nie był już funkcjonalnie zależny od Author_Nationality.

Utwórzmy dwie tabele, jedną zawierającą tylko { Author_ID, Author} i drugą zawierającą {Author_Nationality}. Nowe tabele będą wyglądać tak,

Tabela autora

Autor_ID Autor
A1 Bóg małych rzeczy
A2 Dziedziczenie straty
A3 Ludożerca z Malgudów

Tabela narodowości autora

Autor Autor_Narodowość
Arundhati Roy Indie
Kiran Desai Indie
R. K. Narayan Indie

Teraz nowe tabele autorów i tabele narodowości autorów nie zawierają zależności przechodniej, a relacja jest teraz w 3NF.