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.
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.