Diferența dintre 3NF și BCNF

Diferența dintre 3NF și BCNF
Diferența dintre 3NF și BCNF

Video: Diferența dintre 3NF și BCNF

Video: Diferența dintre 3NF și BCNF
Video: Agile vs Waterfall Methodology | Difference between Agile and Waterfall | What to choose? 2024, Iulie
Anonim

3NF vs BCNF

Normalizarea este un proces care se realizează pentru a minimiza redundanțele care sunt prezente în datele din bazele de date relaționale. Acest proces va împărți în principal mesele mari în mese mai mici, cu mai puține redundanțe. Aceste tabele mai mici vor fi legate între ele prin relații bine definite. Într-o bază de date bine normalizată, orice modificare sau modificare a datelor va necesita modificarea unui singur tabel. A treia formă normală (3NF) a fost introdusă în 1971 de către Edgar F. Codd, care este și inventatorul modelului relațional și al conceptului de normalizare. Boyce-Codd Normal Form (BCNF) a fost introdus în 1974 de Codd și Raymond F. Boyce.

Ce este 3NF?

3NF este a treia formă normală folosită în normalizarea bazelor de date relaționale. Conform definiției lui Codd, se spune că un tabel este în 3NF, dacă și numai dacă, acel tabel este în a doua formă normală (2NF), și fiecare atribut din tabel care nu aparține unei chei candidate ar trebui să depindă direct de fiecare cheie candidată din acel tabel. În 1982, Carlo Zaniolo a produs o definiție exprimată diferit pentru 3NF. Tabelele care respectă 3NF, în general, nu conțin anomalii care apar la inserarea, ștergerea sau actualizarea înregistrărilor în tabel.

Ce este BCNF?

BCNF (cunoscut și ca 3.5NF) este o altă formă normală folosită în normalizarea bazelor de date relaționale. A fost introdus pentru a surprinde unele anomalii care nu sunt abordate de 3NF. Se spune că un tabel este în BCNF, dacă și numai dacă, pentru fiecare dintre dependențele formei A → B care sunt netriviale, A este o super-cheie. Descompunerea unui tabel care nu este în forma normală BCNF nu garantează producerea tabelelor în forma BCNF (în timp ce se păstrează dependențele care erau prezente în tabelul original).

Care este diferența dintre 3NF și BCNF?

Atât 3NF, cât și BCNF sunt forme normale care sunt utilizate în bazele de date relaționale pentru a minimiza redundanțele în tabele. Într-un tabel care este în forma normală BCNF, pentru fiecare dependență funcțională netrivială a formei A → B, A este o super-cheie, în timp ce un tabel care respectă 3NF ar trebui să fie în 2NF și fiecare non-prim atributul ar trebui să depindă direct de fiecare cheie candidată din acel tabel. BCNF este considerată o formă normală mai puternică decât 3NF și a fost dezvoltat pentru a captura unele dintre anomaliile care nu au putut fi capturate de 3NF. Obținerea unui tabel care respectă formularul BCNF va necesita descompunerea unui tabel care se află în 3NF. Această descompunere va avea ca rezultat operațiuni suplimentare de îmbinare (sau produse carteziene) la executarea interogărilor. Acest lucru va crește timpul de calcul. Pe de altă parte, tabelele care respectă BCNF ar avea mai puține redundanțe decât tabelele care respectă doar 3NF. În plus, de cele mai multe ori, este posibil să obțineți un tabel care respectă 3NF fără a împiedica păstrarea dependenței și îmbinarea fără pierderi. Dar acest lucru nu este întotdeauna posibil cu BCNF.

Recomandat: