Uvažujme vzťah R(A B C). A, B a C sú tu známe ako atribút vzťahu R. Keď nastane nasledujúca podmienka; potom sa tranzitívna závislosť vyskytuje v DBMS. Podmienky sú A → B, B → C. Preto sa podmienka stáva A → C. Inými slovami, môžeme povedať, že keď sú závislosti vytvorené dvoma funkčnými závislosťami, potom sa funkčné závislosti stanú tranzitívnymi závislosťami.
Čo je tranzitívna závislosť?
Uvažujme vzťah R(A B C). A, B a C sú tu známe ako atribút vzťahu R. Keď nastane nasledujúca podmienka; potom sa tranzitívna závislosť vyskytuje v DBMS. Podmienky sú A → B, B → C. Preto sa podmienka stáva A → C. v tranzitívnych funkčných závislostiach je závislá priamo závislá na determinante.
Poďme pochopiť tranzitívne závislosti pomocou nasledujúceho príkladu.
Author_ID | Autor | Kniha | Autor_Národnosť |
---|---|---|---|
A1 | Arundhati Roy | Boh malých vecí | India |
A1 | Kiran Desai | Dedičstvo straty | India |
A2 | R. K. Narayan | Pojedač ľudí z Malgudy | India |
Vo vyššie uvedenej tabuľke autorov to dostaneme.
Ak sa bližšie pozrieme na funkčné závislosti diskutované vyššie, nájdeme nasledujúci vzor.
- A -> B a B -> C B -> C; preto A → CA → C.
- A → Kniha, B → Autor B → Autor a C → Autor_Národnosť C→Národnosť_autora
Predpokladajme, že použijeme Tretiu normálnu formu (3NF) vo vyššie uvedenej tabuľke autorov. V takom prípade sa musí odstrániť prechodná závislosť tabuľky autora a proces odstránenia prechodných závislostí databázy je známy ako proces normalizácie.
Ako sa vyhnúť prechodným závislostiam?
Pozrime sa znova na vyššie uvedenú tabuľku autora a uvidíme, aký typ problému sa vyskytne počas vytvárania tabuľky.
Tabuľka autorov:
Author_ID | Autor | Kniha | Autor_Národnosť |
---|---|---|---|
A1 | Arundhati Roy | Boh malých vecí | India |
A1 | Kiran Desai | Dedičstvo straty | India |
A2 | R. K. Narayan | Pojedač ľudí z Malgudy | India |
K anomáliám údajov (ako sú anomálie aktualizácie, vkladania a vymazania) a nekonzistentnosti môže prispieť tabuľka autora. Keď je v databáze príliš veľa redundancie, potom sú v údajoch spôsobené anomálie údajov. Dátové anomálie vznikajú aj pri problémoch s aktualizáciou, odstraňovaním a vkladaním nových údajov. Napríklad v tabuľke autora-
- Nemôžeme pridať nového autora, kým nebudeme môcť pridať knihu do tabuľky.
- Autora nemôžeme vymazať, kým knihu úplne nevymažeme z databázy.
- Ak chceme vymazať knihu „Boh malých vecí“, vymaže sa aj ID autora, autor a národnosť.
Vyššie uvedené problémy sa vyskytujú v akomkoľvek vzťahu, ktorý obsahuje prechodné závislosti.
Tretia normálna forma odstránením tranzitívnej závislosti
Uvažujme o Autorská tabuľka s tromi atribútmi (Autor_ID, Autor, Autor_Národnosť) a pokúsiť sa nájsť a odstrániť tranzitívnu závislosť z tejto tabuľky,
Tabuľka autorov:
Author_ID | Autor | Kniha | Autor_Národnosť |
---|---|---|---|
A1 | Arundhati Roy | Boh malých vecí | India |
A1 | Kiran Desai | Dedičstvo straty | India |
A2 | R. K. Narayan | Pojedač ľudí z Malgudy | India |
Vyššie uvedená autorská tabuľka nie je v 3NF, pretože má tranzitívnu závislosť. Pozrime sa ako
čo je špeciálny znak
- Autor → Autor_Národnosť Autor → Autor_Národnosť
- ID_autora → Autor
Preto existuje aj nasledujúca funkčná závislosť,
- Authir_ID → Author_Nationality tvorí vzor podobný tomu, o ktorom sme hovorili vyššie.
Teraz, aby sme eliminovali tranzitívnu závislosť, všetko, čo musíme urobiť, je rozdeliť tabuľku autora takým spôsobom, že Author_ID už nebude funkčne závisieť od Author_Nationality.
Vytvorme dve tabuľky, jednu obsahujúcu iba { Author_ID, Author} a druhú obsahujúcu {Author_Nationality}. Nové tabuľky budú vyzerať takto,
Tabuľka autorov
Author_ID | Autor |
---|---|
A1 | Boh malých vecí |
A2 | Dedičstvo straty |
A3 | Pojedač ľudí z Malgudy |
Tabuľka národnosti autora
Autor | Autor_Národnosť |
---|---|
Arundhati Roy | India |
Kiran Desai | India |
R. K. Narayan | India |
Teraz nová tabuľka Autor a Tabuľka Národnosti autora neobsahuje žiadnu tranzitívnu závislosť a vzťah je teraz v 3NF.