Să considerăm o relație R(A B C). Aici A, B și C sunt cunoscute ca atributul relației R. Când apare următoarea condiție; atunci dependența tranzitivă apare în SGBD. Condițiile sunt A → B, B → C. Prin urmare, condiția devine A → C. Cu alte cuvinte, putem spune că atunci când dependențele sunt făcute de două dependențe funcționale, atunci dependențele funcționale devin dependențe tranzitive.
Ce este dependența tranzitivă?
Se consideră o relație R(A B C). Aici A, B și C sunt cunoscute ca atributul relației R. Când apare următoarea condiție; atunci dependența tranzitivă apare în SGBD. Condițiile sunt A → B, B → C. Prin urmare, condiția devine A → C. în dependențe funcționale tranzitive, o dependentă este direct dependentă de determinant.
Să înțelegem dependențele tranzitive cu ajutorul exemplului următor.
ID_autor | Autor | Carte | Autor_Naționalitate |
---|---|---|---|
A1 | Arundhati Roy | Zeul lucrurilor mici | India |
A1 | Kiran Desai | Moștenirea pierderii | India |
A2 | R. K. Narayan | Devoratorul de oameni din Malgudy | India |
În tabelul autorului de mai sus, obținem asta.
Dacă ne uităm îndeaproape la dependențele funcționale discutate mai sus, găsim următorul model.
- A → B și B → C B→C; prin urmare, A → CA → C.
- A → Carte, B → Autor B → Autor și C → Naționalitate_autor C→Naționalitate_autor
Să presupunem că aplicăm a treia formă normală (3NF) în tabelul autorului de mai sus. În acest caz, dependența tranzitivă a tabelului de autor trebuie eliminată, iar procesul de eliminare a dependențelor tranzitive ale bazei de date este cunoscut sub numele de proces de normalizare.
Cum să evitați dependențele tranzitive?
Să luăm din nou în considerare tabelul de autori de mai sus și să vedem ce tip de problemă apare în timpul creării tabelului.
Tabelul autorilor:
ID_autor | Autor | Carte | Autor_Naționalitate |
---|---|---|---|
A1 | Arundhati Roy | Zeul lucrurilor mici | India |
A1 | Kiran Desai | Moștenirea pierderii | India |
A2 | R. K. Narayan | Devoratorul de oameni din Malgudy | India |
Anomaliile datelor (cum ar fi anomaliile de actualizare, inserare și ștergere) și inconsecvența pot fi contribuite de tabelul de autor. Când există prea multă redundanță în baza de date, atunci sunt cauzate anomalii de date în date. Anomaliile datelor sunt cauzate și atunci când există o problemă cu actualizarea, ștergerea și inserarea de date noi. De exemplu, în tabelul autorului-
- Nu putem adăuga un nou autor până când nu putem adăuga o carte la tabel.
- Nu putem șterge autorul până când nu ștergem complet cartea din baza de date.
- Dacă vrem să ștergem cartea „Zeul lucrurilor mici”, id-ul autorului, autorul și naționalitatea au fost, de asemenea, șterse.
Problemele de mai sus apar în orice relație care conține dependențe tranzitive.
A treia formă normală prin eliminarea dependenței tranzitive
Să luăm în considerare Tabel de autori cu trei atribute (Author_ID, Author, Author_Nationality) și încercați să găsiți și să eliminați dependența tranzitivă din acest tabel,
Tabelul autorilor:
ID_autor | Autor | Carte | Autor_Naționalitate |
---|---|---|---|
A1 | Arundhati Roy | Zeul lucrurilor mici | India |
A1 | Kiran Desai | Moștenirea pierderii | India |
A2 | R. K. Narayan | Devoratorul de oameni din Malgudy | India |
Tabelul autorului de mai sus nu este în 3NF deoarece are o dependență tranzitivă. Să vedem cum
algoritmi de căutare
- Autor → Naționalitate_autor Autor → Naționalitate_autor
- Author_ID → Autor
Prin urmare, există și următoarea dependență funcțională,
- Authir_ID → Author_Nationality formează un model similar cu ceea ce am discutat mai sus.
Acum, pentru a elimina dependența tranzitivă, tot ce trebuie să facem este să împărțim tabelul Autorului în așa fel încât Author_ID să nu mai depindă funcțional de Author_Nationality.
Să creăm două tabele, unul care conține doar { Author_ID, Author} și altul care conține {Author_Nationality}. Noile tabele vor arăta astfel,
Tabelul autorilor
ID_autor | Autor |
---|---|
A1 | Zeul lucrurilor mici |
A2 | Moștenirea pierderii |
A3 | Devoratorul de oameni din Malgudy |
Tabelul naționalității autorului
Autor | Autor_Naționalitate |
---|---|
Arundhati Roy | India |
Kiran Desai | India |
R. K. Narayan | India |
Acum, noul tabel Autor și tabelul Naționalitate autor nu conține nicio dependență tranzitivă, iar relația este acum în 3NF.