Diferența dintre BCNF și 3NF

BCNF vs. 3NF

Forma normală Boyce Codd (cunoscută și sub numele de BCNF) este o formă normală - care este o formă care oferă criterii pentru determinarea gradului de vulnerabilitate a tabelului la inconsecvențe și anomalii logice. Această formă normală este folosită în normalizarea bazei de date. Este un pic mai puternic decât predecesorul său, a treia formă normală (cunoscută și sub numele de 3NF). Se consideră că o tabelă se află în BCNF dacă și numai dacă pentru fiecare, dacă dependențele sale funcționale non-triviali - care este o limită stabilită între două seturi de atribute într-o relație luată dintr-o bază de date - este un superkey (un set de atribute ale unei variabile relaționale care postulează faptul că în toate relațiile atribuite acelei variabile specifice nu există două rânduri distincte care conțin aceeași valoare pentru atributele din setul respectiv). BCNF susține că orice tabel care nu îndeplinește criteriile care trebuie atribuite ca BNCF este vulnerabil la inconsecvențele logice.

3NF este o formă normală care este utilizată și în normalizarea bazei de date. Se consideră că un tabel este în 3NF dacă și numai dacă 1) tabelul se află în a doua formă normală (sau 2NF, care este un prim cod normal sau 1NF care a îndeplinit criteriile pentru a deveni 2NF) și 2) fiecare atribut non-prime al tabelului este dependent de toate tastele tabelului (ceea ce înseamnă că nu depinde în mod direct de fiecare cheie). Există o altă postul de 3NF care este, de asemenea, utilizat pentru a defini diferențele dintre 3NF și BCNF.

Această teoremă a fost concepută de Carlo Zaniolo în 1982. Se precizează că o masă este în 3NF dacă și numai dacă pentru fiecare dependență funcțională în care X ∈ A, trebuie să aibă cel puțin una din cele trei condiții: fie X, este o cheie superplă sau A este un atribut prim (ceea ce înseamnă că A este conținut într-o cheie candidată - sau un superkey minimal pentru acea relație). Această definiție nouă diferă de teorema unui BCNF în sensul că acest ultim model ar elimina pur și simplu ultima condiție. Chiar și atunci când acționează ca o versiune mai nouă a teoremei 3NF, există o derivare a teoremei Zaniolo. Afirmă că X - A este non-trivială. Dacă acest lucru este adevărat, să fie A atributul cheie de la prânz și, de asemenea, lăsați Y să fie o cheie a lui R. Dacă acest lucru deține atunci Y "X. Aceasta înseamnă că A nu este dependentă tranzitoriu de Y dacă și numai dacă X â † "Y (sau dacă X este o cheie superplă.

Rezumat:

1. BCNF este o formă normală în care, pentru fiecare dintre dependențele funcționale non-trivială ale unui tabel, este o cheie superplă; 3NF este forma normală în care tabelul este în 2NF și fiecare atribut non-prime este dependent de fiecare tastă din tabel.