Razmotrimo relaciju R(A B C). Ovdje su A, B i C poznati kao atribut relacije R. Kada se pojavi sljedeći uvjet; tada se tranzitivna ovisnost javlja u DBMS-u. Uvjeti su A → B, B → C. Dakle, uvjet postaje A → C. Drugim riječima, možemo reći da kada ovisnosti čine dvije funkcionalne ovisnosti, tada funkcionalne ovisnosti postaju tranzitivne ovisnosti.
Što je tranzitivna ovisnost?
Promotrimo relaciju R(A B C). Ovdje su A, B i C poznati kao atribut relacije R. Kada se pojavi sljedeći uvjet; tada se tranzitivna ovisnost javlja u DBMS-u. Uvjeti su A → B, B → C. Prema tome, uvjet postaje A → C. u tranzitivnim funkcionalnim ovisnostima ovisna je izravno ovisna o determinanti.
Razumimo tranzitivne ovisnosti uz pomoć sljedećeg primjera.
Autor_ID | Autor | Knjiga | Nacionalnost_autora |
---|---|---|---|
A1 | Arundhati Roy | Bog malih stvari | Indija |
A1 | Kiran Desai | Nasljedstvo gubitka | Indija |
A2 | R. K. Narayan | Ljudožder iz Malgudyja | Indija |
U gornjoj tablici autora to dobivamo.
Ako pomno pogledamo gore razmotrene funkcionalne ovisnosti, nalazimo sljedeći obrazac.
- A → B i B → C B → C; dakle, A → CA → C.
- A → Knjiga, B → Autor B → Autor i C → Nacionalnost_autora C→Nacionalnost_autora
Pretpostavimo da primijenimo treći normalni oblik (3NF) u gornjoj tablici autora. U tom slučaju, tranzitivna ovisnost autorske tablice mora biti uklonjena, a proces uklanjanja tranzitivnih ovisnosti baze podataka poznat je kao proces normalizacije.
Kako izbjeći tranzitivne ovisnosti?
Razmotrimo ponovno gornju tablicu autora i vidimo koja vrsta problema nastaje tijekom izrade tablice.
Tablica autora:
Autor_ID | Autor | Knjiga | Nacionalnost_autora |
---|---|---|---|
A1 | Arundhati Roy | Bog malih stvari | Indija |
A1 | Kiran Desai | Nasljedstvo gubitka | Indija |
A2 | R. K. Narayan | Ljudožder iz Malgudyja | Indija |
Anomalije podataka (kao što su anomalije ažuriranja, umetanja i brisanja) i nedosljednosti mogu biti uzrokovane autorskom tablicom. Kada postoji previše redundantnosti u bazi podataka, tada dolazi do anomalija podataka u podacima. Anomalije podataka također nastaju kada postoji problem s ažuriranjem, brisanjem i umetanjem novih podataka. Na primjer, u tablici autora-
- Ne možemo dodati novog autora dok ne možemo dodati knjigu u tablicu.
- Ne možemo izbrisati autora dok u potpunosti ne izbrišemo knjigu iz baze podataka.
- Ako želimo izbrisati knjigu 'Bog malih stvari', izbrisat će se i ID autora, autor i nacionalnost.
Gore navedeni problemi pojavljuju se u bilo kojem odnosu koji sadrži tranzitivne ovisnosti.
Treći normalni oblik uklanjanjem tranzitivne ovisnosti
Razmotrimo Tablica autora s tri atributa (Author_ID, Author, Author_Nationality) i pokušajte pronaći i eliminirati Transitivnu ovisnost iz ove tablice,
Tablica autora:
Autor_ID | Autor | Knjiga | Nacionalnost_autora |
---|---|---|---|
A1 | Arundhati Roy | Bog malih stvari | Indija |
A1 | Kiran Desai | Nasljedstvo gubitka | Indija |
A2 | R. K. Narayan | Ljudožder iz Malgudyja | Indija |
Gornja autorova tablica nije u 3NF jer ima tranzitivnu ovisnost. Da vidimo kako
kmp algoritam
- Autor → Nacionalnost_autora Autor → Nacionalnost_autora
- Autor_ID → Autor
Stoga postoji i sljedeća funkcionalna ovisnost,
- Authir_ID → Author_Nationality formira obrazac sličan onome o čemu smo raspravljali gore.
Sada da eliminiramo tranzitivnu ovisnost, sve što trebamo učiniti je podijeliti tablicu autora na takav način da ID autora više funkcionalno ne ovisi o nacionalnosti autora.
Kreirajmo dvije tablice, jednu koja sadrži samo { Author_ID, Author}, a drugu {Author_Nationality}. Nove tablice će izgledati ovako,
Tablica autora
Autor_ID | Autor |
---|---|
A1 | Bog malih stvari |
A2 | Nasljedstvo gubitka |
A3 | Ljudožder iz Malgudyja |
Tablica nacionalnosti autora
Autor | Nacionalnost_autora |
---|---|
Arundhati Roy | Indija |
Kiran Desai | Indija |
R. K. Narayan | Indija |
Sada nova tablica autora i tablica nacionalnosti autora ne sadrži tranzitivnu ovisnost i relacija je sada u 3NF.