Låt oss betrakta ett samband R(A B C). Här är A, B och C kända som attributet för relationen R. När följande tillstånd uppstår; då inträffar det transitiva beroendet i DBMS. Villkoren är A → B, B → C. Därför blir villkoret A → C. Med andra ord kan vi säga att när beroenden skapas av två funktionella beroenden, så blir de funktionella beroenden transitiva beroenden.
Vad är transitivt beroende?
Betrakta ett samband R(A B C). Här är A, B och C kända som attributet för relationen R. När följande tillstånd uppstår; då inträffar det transitiva beroendet i DBMS. Villkoren är A → B, B → C. Därför blir tillståndet A → C. i transitiva funktionella beroenden är ett beroende direkt beroende av determinanten.
Låt oss förstå de transitiva beroenden med hjälp av följande exempel.
Author_ID | Författare | bok | Författare_Nationalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tingens gud | Indien |
A1 | Kiran Desai | Förlustens arv | Indien |
A2 | R.K. Narayan | Man Eater av Malgudy | Indien |
I författartabellen ovan får vi det.
Om vi tittar noga på de funktionella beroenden som diskuterats ovan hittar vi följande mönster.
- A → B och B → C B→C; därför A → CA → C.
- A → Bok, B → Författare B → Författare och C → Författare_Nationalitet C→ Författare_Nationalitet
Anta att vi tillämpar Third Normal Form (3NF) i författartabellen ovan. I så fall måste författartabellens transitiva beroende tas bort, och processen att ta bort databasens transitiva beroende är känd som normaliseringsprocessen.
Hur undviker man transitiva beroenden?
Låt oss överväga författartabellen ovan igen och se vilken typ av problem som uppstår när tabellen skapas.
Författartabell:
Author_ID | Författare | bok | Författare_Nationalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tingens gud | Indien |
A1 | Kiran Desai | Förlustens arv | Indien |
A2 | R.K. Narayan | Man Eater av Malgudy | Indien |
Dataavvikelserna (som uppdaterings-, infognings- och raderingsavvikelser) och inkonsekvens kan bidra med författartabellen. När det finns för mycket redundans i databasen orsakas dataavvikelser i datan. Dataavvikelser uppstår också när det finns problem med att uppdatera, ta bort och infoga ny data. Till exempel, i författartabellen-
- Vi kan inte lägga till en ny författare förrän vi inte kan lägga till en bok på bordet.
- Vi kan inte ta bort författaren förrän vi helt tar bort boken från databasen.
- Om vi vill ta bort boken 'Små tings gud' raderas även författarens id, författare och nationalitet.
Ovanstående problem uppstår i alla relationer som innehåller transitiva beroenden.
Tredje normalformen genom att ta bort transitivt beroende
Låt oss överväga Författartabell med tre attribut (Author_ID, Author, Author_Nationality) och försök hitta och eliminera det transitiva beroendet från den här tabellen,
Författartabell:
Author_ID | Författare | bok | Författare_Nationalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tingens gud | Indien |
A1 | Kiran Desai | Förlustens arv | Indien |
A2 | R.K. Narayan | Man Eater av Malgudy | Indien |
Ovanstående författares tabell är inte i 3NF eftersom den har ett transitivt beroende. Låt oss se hur
np.klipp
- Författare → Författare_Nationalitet Författare → Författare_Nationalitet
- Author_ID → Author
Därför finns även följande funktionella beroende,
- Authir_ID → Author_Nationality bildar ett mönster som liknar det vi diskuterade ovan.
Nu för att eliminera det transitiva beroendet, är allt vi behöver göra att dela upp författarens tabell på ett sådant sätt att Author_ID inte längre kommer att vara funktionellt beroende av Author_Nationality.
Låt oss skapa två tabeller, en som bara innehåller { Author_ID, Author} och en annan som innehåller {Author_Nationality}. De nya borden kommer att se ut så här,
Författartabell
Author_ID | Författare |
---|---|
A1 | De små tingens gud |
A2 | Förlustens arv |
A3 | Man Eater av Malgudy |
Författarens nationalitetstabell
Författare | Författare_Nationalitet |
---|---|
Arundhati Roy | Indien |
Kiran Desai | Indien |
R.K. Narayan | Indien |
Nu innehåller den nya tabellen för författare och nationalitet för författare inget transitivt beroende och relationen är nu i 3NF.