La oss vurdere en relasjon R(A B C). Her er A, B og C kjent som attributten til relasjonen R. Når følgende tilstand oppstår; da oppstår den transitive avhengigheten i DBMS. Betingelsene er A → B, B → C. Derfor blir tilstanden A → C. Med andre ord kan vi si at når avhengigheter lages av to funksjonelle avhengigheter, så blir de funksjonelle avhengighetene transitive avhengigheter.
Hva er transitiv avhengighet?
Tenk på en relasjon R(A B C). Her er A, B og C kjent som attributten til relasjonen R. Når følgende tilstand oppstår; da oppstår den transitive avhengigheten i DBMS. Betingelsene er A → B, B → C. Derfor blir tilstanden A → C. i transitive funksjonelle avhengigheter er en avhengig direkte avhengig av determinanten.
La oss forstå de transitive avhengighetene ved hjelp av følgende eksempel.
Author_ID | Forfatter | Bok | Forfatter_nasjonalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tingenes gud | India |
A1 | Kiran Desai | Tapets arv | India |
A2 | R.K. Narayan | The Man Eater of Malgudy | India |
I forfattertabellen ovenfor får vi det.
Hvis vi ser nøye på de funksjonelle avhengighetene diskutert ovenfor, finner vi følgende mønster.
- A → B og B → C B→C; derfor A → CA → C.
- A → Bok, B → Forfatter B → Forfatter og C → Author_Nationality C→Author_Nationality
Anta at vi bruker Third Normal Form (3NF) i forfattertabellen ovenfor. I så fall må den transitive avhengigheten til forfattertabellen fjernes, og prosessen med å fjerne de transitive avhengighetene til databasen er kjent som normaliseringsprosessen.
Hvordan unngå transitive avhengigheter?
La oss vurdere forfattertabellen ovenfor igjen og se hvilken type problem som oppstår under opprettelsen av tabellen.
Forfattertabell:
Author_ID | Forfatter | Bok | Forfatter_nasjonalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tingenes gud | India |
A1 | Kiran Desai | Tapets arv | India |
A2 | R.K. Narayan | The Man Eater of Malgudy | India |
Dataavvikene (som oppdaterings-, innsettings- og slettingsavvik) og inkonsekvens kan bidra med forfattertabellen. Når det er for mye redundans i databasen, forårsakes dataavvik i dataene. Dataavvik oppstår også når det er et problem med å oppdatere, slette og sette inn nye data. For eksempel, i forfattertabellen-
- Vi kan ikke legge til en ny forfatter før vi ikke kan legge til en bok på bordet.
- Vi kan ikke slette forfatteren før vi sletter boken fullstendig fra databasen.
- Hvis vi ønsker å slette boken 'Små tings gud', blir også forfatterens id, forfatter og nasjonalitet slettet.
Problemene ovenfor oppstår i ethvert forhold som inneholder transitive avhengigheter.
Tredje normalform ved å fjerne transitiv avhengighet
La oss vurdere Forfattertabell med tre attributter (Author_ID, Author, Author_Nationality) og prøv å finne og eliminere den transitive avhengigheten fra denne tabellen,
Forfattertabell:
Author_ID | Forfatter | Bok | Forfatter_nasjonalitet |
---|---|---|---|
A1 | Arundhati Roy | De små tingenes gud | India |
A1 | Kiran Desai | Tapets arv | India |
A2 | R.K. Narayan | The Man Eater of Malgudy | India |
Forfatterens tabell ovenfor er ikke i 3NF fordi den har en transitiv avhengighet. La oss se hvordan
java len av array
- Forfatter → Author_Nationality Author → Author_Nationality
- Author_ID → Forfatter
Derfor eksisterer også følgende funksjonelle avhengighet,
- Authir_ID → Author_Nationality danner et mønster som ligner på det vi diskuterte ovenfor.
Nå for å eliminere den transitive avhengigheten, er alt vi trenger å gjøre å dele opp forfatterens tabell på en slik måte at Author_ID ikke lenger funksjonelt vil avhenge av Author_Nationality.
La oss lage to tabeller, en inneholder bare { Author_ID, Author} og en annen inneholder {Author_Nationality}. De nye bordene vil se slik ut,
Forfattertabell
Author_ID | Forfatter |
---|---|
A1 | De små tingenes gud |
A2 | Tapets arv |
A3 | The Man Eater of Malgudy |
Forfatter nasjonalitetstabell
Forfatter | Forfatter_nasjonalitet |
---|---|
Arundhati Roy | India |
Kiran Desai | India |
R.K. Narayan | India |
Nå inneholder den nye forfattertabellen og forfatternasjonalitetstabellen ingen transitiv avhengighet, og relasjonen er nå i 3NF.