Erinevus 3NF ja BCNF vahel

3NF vs BCNF

Normaliseerimine on protsess, mis viiakse läbi selleks, et minimeerida koondamisi, mis esinevad relatsiooniandmebaasides sisalduvates andmetes. Selle protsessi käigus jagatakse suured tabelid peamiselt väiksemateks koondamistega väiksemateks tabeliteks. Need väiksemad tabelid on omavahel täpselt määratletud suhete kaudu seotud. Hästi normaliseeritud andmebaasis nõuab andmete muutmine või muutmine ainult ühte tabelit. Kolmas normaalvorm (3NF) võeti kasutusele 1971. aastal Edgar F. Codd poolt, kes on ka relatsioonimudeli ja normaliseerimise kontseptsiooni leiutaja. Boyce-Coddi normaalvormi (BCNF) tutvustasid 1974. aastal Codd ja Raymond F. Boyce.

Mis on 3NF?

3NF on kolmas normaalne vorm, mida kasutatakse relatsioonandmebaasi normaliseerimisel. Coddi definitsiooni kohaselt öeldakse, et tabel on 3NF-s ainult siis ja ainult siis, kui see tabel on teisel tavalisel kujul (2NF) ja iga tabeli atribuut, mis ei kuulu kandidaatvõtmesse, peaks otseselt sõltuma selle tabeli iga kandidaadi võti. 1982. aastal koostas Carlo Zaniolo 3NF-i teistsuguse määratluse. 3NF-ile vastavad tabelid ei sisalda reeglina kõrvalekaldeid, mis ilmnevad tabelisse kirjete lisamisel, kustutamisel või värskendamisel.

Mis on BCNF?

BCNF (tuntud ka kui 3.5NF) on veel üks normaalne vorm, mida kasutatakse relatsioonandmebaasi normaliseerimisel. See võeti kasutusele, et lüüa mõned kõrvalekalded, mida 3NF ei käsitle. Öeldakse, et tabel on BCNF-is, ainult siis, kui vormi A → B kõigi sõltuvuste jaoks, mis pole triviaalsed, on A ülivõti. Tabeli lagundamine, mis pole BCNF-i tavapärases vormis, ei taga BCNF-i kujul olevate tabelite tootmist (säilitades samas algses tabelis olnud sõltuvused).

Mis vahe on 3NF ja BCNF vahel??

Nii 3NF kui ka BCNF on tavalised vormid, mida kasutatakse relatsioonandmebaasides tabelites koondamise minimeerimiseks. Tabelis, mis on BCNF-i normaalses vormis, on vormi A → B iga mittetriviaalse funktsionaalse sõltuvuse korral supernurk, A-le aga 3NF-le vastav tabel peaks olema 2NF-is ja iga mittesuguline atribuut peaks otseselt sõltuma igast tabelist. BCNF-i peetakse tugevamaks normaalseks vormiks kui 3NF-i ja see töötati välja selliste anomaaliate jäädvustamiseks, mida 3NF-i ei suutnud tabada. BCNF vormile vastava tabeli saamiseks tuleb lagundada 3NF-is olev tabel. Selle lagunemise tulemuseks on päringute täitmisel täiendavad liitumisoperatsioonid (või Cartesiuse tooted). See suurendab arvutusaega. Teisest küljest oleks BCNF-ile vastavates tabelites vähem koondatud kui ainult 3NF-ile vastavates tabelites. Lisaks on enamasti võimalik saada 3NF-le vastavat lauda, ​​takistamata seejuures sõltuvuse säilimist ja kadudeta liitumist. Kuid BCNF-i puhul pole see alati võimalik.