logo

Tranzitivní závislost v DBMS

Uvažujme vztah R(A B C). Zde jsou A, B a C známé jako atribut vztahu R. Když nastane následující podmínka; pak tranzitivní závislost nastane v DBMS. Podmínky jsou A → B, B → C. Proto se podmínka stává A → C. Jinými slovy, můžeme říci, že když jsou závislosti tvořeny dvěma funkčními závislostmi, pak se funkční závislosti stanou tranzitivními závislostmi.

Co je to tranzitivní závislost?

Uvažujme vztah R(A B C). Zde jsou A, B a C známé jako atribut vztahu R. Když nastane následující podmínka; pak tranzitivní závislost nastane v DBMS. Podmínky jsou A → B, B → C. Proto se podmínka stává A → C. v tranzitivních funkčních závislostech je závislá přímo závislá na determinantu.

Pojďme pochopit tranzitivní závislosti pomocí následujícího příkladu.

Author_ID Autor Rezervovat Autor_Národnost
A1 Arundhati Roy Bůh malých věcí Indie
A1 Kiran Desai Dědictví ztráty Indie
A2 R. K. Narayan Muž Pojídač Malgudy Indie

Ve výše uvedené tabulce autorů to dostáváme.

    Kniha → Autor:Zde je atribut autor určen atributem kniha. Pokud někdo zná název knihy, může se dozvědět i jméno autora.Autor → Autor_Národnost:Pokud někdo zná jméno autora, může se dozvědět i jeho národnost.Kniha → Autor_Národnost: Pokud někdo zná název knihy, může se dozvědět i národnost autora.

Podíváme-li se pozorně na výše diskutované funkční závislosti, najdeme následující vzorec.

  • A → B a B → C B → C; proto A → CA → C.
  • A → Kniha, B → Autor B → Autor a C → Autor_Národnost C→Národnost_autor

Předpokládejme, že ve výše uvedené tabulce autorů použijeme třetí normální formu (3NF). V takovém případě musí být odstraněna přechodná závislost autorské tabulky a proces odstranění přechodných závislostí databáze je známý jako proces normalizace.

Jak se vyhnout tranzitivním závislostem?

Podívejme se znovu na výše uvedenou autorskou tabulku a podívejme se, jaký typ problému se objeví během vytváření tabulky.

Tabulka autorů:

Author_ID Autor Rezervovat Autor_Národnost
A1 Arundhati Roy Bůh malých věcí Indie
A1 Kiran Desai Dědictví ztráty Indie
A2 R. K. Narayan Muž Pojídač Malgudy Indie

Anomálie dat (jako jsou anomálie aktualizace, vkládání a mazání) a nekonzistence mohou být způsobeny tabulkou autora. Pokud je v databázi příliš mnoho redundance, jsou v datech způsobeny datové anomálie. Datové anomálie jsou také způsobeny při potížích s aktualizací, mazáním a vkládáním nových dat. Například v autorské tabulce-

  • Nemůžeme přidat nového autora, dokud nebudeme moci přidat knihu do tabulky.
  • Autora nemůžeme smazat, dokud knihu zcela nevymažeme z databáze.
  • Pokud chceme smazat knihu „Bůh malých věcí“, bude smazáno také id autora, autor a národnost.

Výše uvedené problémy se vyskytují v jakémkoli vztahu, který obsahuje přechodné závislosti.

Třetí normální forma odstraněním tranzitivní závislosti

Uvažujme o Autorská tabulka se třemi atributy (Author_ID, Author, Author_Nationality) a pokuste se najít a odstranit tranzitivní závislost z této tabulky,

Tabulka autorů:

Author_ID Autor Rezervovat Autor_Národnost
A1 Arundhati Roy Bůh malých věcí Indie
A1 Kiran Desai Dědictví ztráty Indie
A2 R. K. Narayan Muž Pojídač Malgudy Indie

Výše uvedená tabulka autora není v 3NF, protože má tranzitivní závislost. Podívejme se jak

jquery toto kliknutí
  • Autor → Autor_Národnost Autor → Autor_Národnost
  • ID_autora → Autor

Proto také existuje následující funkční závislost,

  • Authir_ID → Author_Nationality tvoří vzor podobný tomu, o kterém jsme hovořili výše.

Nyní, abychom odstranili tranzitivní závislost, vše, co musíme udělat, je rozdělit tabulku Author takovým způsobem, že Author_ID již nebude funkčně záviset na Author_Nationality.

Vytvořme dvě tabulky, jednu obsahující pouze { Author_ID, Author} a druhou obsahující {Author_Nationality}. Nové tabulky budou vypadat takto,

Tabulka autorů

Author_ID Autor
A1 Bůh malých věcí
A2 Dědictví ztráty
A3 Muž Pojídač Malgudy

Tabulka národnosti autora

Autor Autor_Národnost
Arundhati Roy Indie
Kiran Desai Indie
R. K. Narayan Indie

Nyní nová tabulka Autor a tabulka Národnost autora neobsahuje žádnou tranzitivní závislost a vztah je nyní v 3NF.