logo

Transitiv avhengighet i DBMS

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.

    Bok → Forfatter:Her bestemmes forfatterattributtet av bokattributtet. Hvis noen kjenner bokens navn, kan de også lære forfatterens navn.Forfatter → Forfatter_nasjonalitet:Hvis noen kjenner forfatterens navn, kan de også få vite forfatterens nasjonalitet.Bok → Forfatter_nasjonalitet: Hvis noen kjenner bokens navn, kan de også lære forfatterens nasjonalitet.

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.