Ce este dependența tranzițională într-o bază de date

Evitați dependențele tranzitorii pentru a ajuta la asigurarea normalizării

O dependență tranzitorie într-o bază de date este o relație indirectă între valorile din aceeași tabelă care determină o dependență funcțională . Pentru a atinge standardul de normalizare a Formei 3 Normale (3NF), trebuie să eliminați orice dependență tranzitantă.

Prin natura sa, dependența tranzitiva necesită trei sau mai multe atribute (sau coloane de bază de date) care au o dependență funcțională între ele, ceea ce înseamnă că coloana A într-un tabel se bazează pe Coloana B printr-o coloană intermediară C.

Să vedem cum ar putea funcționa acest lucru.

Exemplu de dependență tranzitorie

AUTORI

Author_ID Autor Carte Author_Nationality
Auth_001 Cardul Orson Scott Jocul lui Ender Statele Unite
Auth_001 Cardul Orson Scott Jocul lui Ender Statele Unite
Auth_002 Margaret Atwood Povestea roabei Canada

În exemplul AUTORI de mai sus:

Dar acest tabel introduce o dependență tranzitivă:

Evitarea dependențelor tranzitorii

Pentru a asigura a treia formă normală, să eliminăm dependența tranzitantă.

Putem începe prin eliminarea coloanei Cărți din tabelul Autori și crearea unui tabel separat Cărți:

CĂRȚI

Book_ID Carte Author_ID
Book_001 Jocul lui Ender Auth_001
Book_001 Copiii minții Auth_001
Book_002 Povestea roabei Auth_002

AUTORI

Author_ID Autor Author_Nationality
Auth_001 Cardul Orson Scott Statele Unite
Auth_002 Margaret Atwood Canada

A rezolvat asta? Să examinăm acum dependențele noastre:

Tabelul CĂRȚI :

Tabelul AUTORI :

Trebuie să adăugăm un al treilea tabel pentru a normaliza aceste date:

ȚĂRI

country_id Țară
Coun_001 Statele Unite
Coun_002 Canada

AUTORI

Author_ID Autor country_id
Auth_001 Cardul Orson Scott Coun_001
Auth_002 Margaret Atwood Coun_002

Acum avem trei mese, folosind cheile străine pentru a face legătura între mese:

De ce dependențele tranzitorii sunt baze de date greșite

Care este valoarea evitării dependențelor tranzitorii pentru a ajuta la asigurarea 3NF? Să luăm în considerare primul nostru tabel și să vedem problemele pe care le creează:

AUTORI

Author_ID Autor Carte Author_Nationality
Auth_001 Cardul Orson Scott Jocul lui Ender Statele Unite
Auth_001 Cardul Orson Scott Copiii minții Statele Unite
Auth_002 Margaret Atwood Povestea roabei Canada

Acest tip de design poate contribui la anomalii și inconsecvențe de date, de exemplu:

Acestea sunt doar câteva motive pentru care normalizarea și evitarea dependențelor tranzitorii protejează datele și asigură coerența.