Lad os betragte en relation R(A B C). Her er A, B og C kendt som attributten for relationen R. Når følgende tilstand opstår; så opstår den transitive afhængighed i DBMS. Betingelserne er A → B, B → C. Derfor bliver betingelsen A → C. Med andre ord kan vi sige, at når afhængigheder er lavet af to funktionelle afhængigheder, så bliver de funktionelle afhængigheder transitive afhængigheder.
Hvad er transitiv afhængighed?
Overvej en relation R(A B C). Her er A, B og C kendt som attributten for relationen R. Når følgende tilstand opstår; så opstår den transitive afhængighed i DBMS. Betingelserne er A → B, B → C. Derfor bliver tilstanden A → C. i transitive funktionelle afhængigheder er en afhængig direkte afhængig af determinanten.
Lad os forstå de transitive afhængigheder ved hjælp af følgende eksempel.
Author_ID | Forfatter | Bestil | Forfatter_Nationalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tings gud | Indien |
A1 | Kiran Desai | Tabets arv | Indien |
A2 | R.K. Narayan | The Man Eater of Malgudy | Indien |
I ovenstående forfattertabel får vi det.
Hvis vi ser nærmere på de funktionelle afhængigheder diskuteret ovenfor, finder vi følgende mønster.
- A → B og B → C B→C; derfor A → CA → C.
- A → Bog, B → Forfatter B → Forfatter og C → Forfatter_Nationalitet C→ Forfatter_Nationalitet
Antag, at vi anvender Third Normal Form (3NF) i ovenstående forfattertabel. I så fald skal forfattertabellens transitive afhængighed fjernes, og processen med at fjerne databasens transitive afhængigheder er kendt som normaliseringsprocessen.
Hvordan undgår man transitive afhængigheder?
Lad os overveje ovenstående forfattertabel igen og se, hvilken type problem der opstår under oprettelsen af tabellen.
Forfatter tabel:
Author_ID | Forfatter | Bestil | Forfatter_Nationalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tings gud | Indien |
A1 | Kiran Desai | Tabets arv | Indien |
A2 | R.K. Narayan | The Man Eater of Malgudy | Indien |
Dataanomalierne (såsom opdaterings-, indsættelses- og sletningsanomalier) og inkonsistens kan bidrage fra forfattertabellen. Når der er for meget redundans i databasen, forårsages dataanomalier i dataene. Dataanomalier opstår også, når der er et problem med at opdatere, slette og indsætte nye data. For eksempel i forfattertabellen-
- Vi kan ikke tilføje en ny forfatter, før vi ikke kan tilføje en bog til bordet.
- Vi kan ikke slette forfatteren, før vi helt sletter bogen fra databasen.
- Hvis vi vil slette bogen 'De små tings gud', blev forfatterens id, forfatter og nationalitet også slettet.
Ovenstående problemer opstår i ethvert forhold, der indeholder transitive afhængigheder.
Tredje normalform ved at fjerne transitiv afhængighed
Lad os overveje Forfatter tabel med tre attributter (Author_ID, Author, Author_Nationality) og prøv at finde og eliminere den Transitive afhængighed fra denne tabel,
Forfatter tabel:
Author_ID | Forfatter | Bestil | Forfatter_Nationalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tings gud | Indien |
A1 | Kiran Desai | Tabets arv | Indien |
A2 | R.K. Narayan | The Man Eater of Malgudy | Indien |
Ovenstående forfatters tabel er ikke i 3NF, fordi den har en Transitiv afhængighed. Lad os se hvordan
java len af array
- Forfatter → Forfatter_Nationalitet Forfatter → Forfatter_Nationalitet
- Author_ID → Forfatter
Derfor eksisterer følgende funktionelle afhængighed også,
- Authir_ID → Author_Nationality danner et mønster, der ligner det, vi diskuterede ovenfor.
Nu for at eliminere den Transitive afhængighed, er alt, hvad vi skal gøre, at opdele forfatterens tabel på en sådan måde, at Author_ID ikke længere funktionelt vil afhænge af Author_Nationality.
Lad os oprette to tabeller, en kun indeholder { Author_ID, Author} og en anden indeholdende {Author_Nationality}. De nye borde vil se sådan ud,
Forfatter tabel
Author_ID | Forfatter |
---|---|
A1 | De små tings gud |
A2 | Tabets arv |
A3 | The Man Eater of Malgudy |
Forfatterens nationalitetstabel
Forfatter | Forfatter_Nationalitet |
---|---|
Arundhati Roy | Indien |
Kiran Desai | Indien |
R.K. Narayan | Indien |
Nu indeholder den nye forfattertabel og forfatternationalitetstabel ingen transitiv afhængighed, og relationen er nu i 3NF.