Erinevus 3NF ja BCNF vahel

Erinevus 3NF ja BCNF vahel
Erinevus 3NF ja BCNF vahel

Video: Erinevus 3NF ja BCNF vahel

Video: Erinevus 3NF ja BCNF vahel
Video: Rational Unified Process (RUP). О способе и методе ведем беседу мы. 2024, Juuli
Anonim

3NF vs BCNF

Normaliseerimine on protsess, mis viiakse läbi relatsiooniandmebaaside andmetes esinevate liiasuste minimeerimiseks. See protsess jagab peamiselt suured tabelid väiksemateks tabeliteks, kus on vähem koondamisi. Need väiksemad tabelid on omavahel seotud hästi määratletud suhete kaudu. Hästi normaliseeritud andmebaasis nõuab igasugune andmete muutmine või muutmine ainult ühe tabeli muutmist. Kolmanda normaalvormi (3NF) võttis 1971. aastal kasutusele Edgar F. Codd, 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 normaalvorm, mida kasutatakse relatsioonilise andmebaasi normaliseerimisel. Vastav alt Coddi definitsioonile öeldakse, et tabel on 3NF-s, siis ja ainult siis, kui see tabel on teisel normaalkujul (2NF) ja iga tabeli atribuut, mis ei kuulu kandidaatvõtmesse, peaks otseselt sõltuma iga selle tabeli kandidaadivõti. 1982. aastal koostas Carlo Zaniolo 3NF-i jaoks erinev alt väljendatud määratluse. 3NF-ile vastavad tabelid ei sisalda üldjuhul kõrvalekaldeid, mis tekivad tabelisse kirjete sisestamisel, kustutamisel või värskendamisel.

Mis on BCNF?

BCNF (tuntud ka kui 3.5NF) on teine tavaline vorm, mida kasutatakse relatsioonilise andmebaasi normaliseerimiseks. See võeti kasutusele, et tabada mõningaid kõrvalekaldeid, mida 3NF ei käsitle. Väidetav alt on tabel BCNF-is siis ja ainult siis, kui iga mittetriviaalse vormi A → B sõltuvuse puhul on A ülivõti. Tabeli, mis ei ole BCNF-i tavavormis, lammutamine ei garanteeri tabelite koostamist BCNF-vormil (säilitades samal ajal algses tabelis esinenud sõltuvused).

Mis vahe on 3NF ja BCNF vahel?

Nii 3NF kui ka BCNF on tavalised vormid, mida kasutatakse relatsiooniandmebaasides, et minimeerida tabelite liiasust. Tabelis, mis on BCNF-i normaalkujul, on iga vormi A → B mittetriviaalse funktsionaalse sõltuvuse korral A supervõti, samas kui 3NF-i järgiv tabel peaks olema 2NF-is ja iga mittealgav. atribuut peaks sõltuma otseselt selle tabeli igast kandidaatvõtmest. BCNF-i peetakse tugevamaks normaalvormiks kui 3NF ja see töötati välja mõningate kõrvalekallete tabamiseks, mida 3NF ei suutnud tabada. BCNF-vormile vastava tabeli hankimine nõuab 3NF-is oleva tabeli lammutamist. See dekomponeerimine toob päringute täitmisel kaasa täiendavad liitumisoperatsioonid (või Descartes'i produktid). See suurendab arvutusaega. Teisest küljest oleks BCNF-ile vastavates tabelites vähem koondamisi kui tabelites, mis vastavad ainult 3NF-ile. Lisaks on enamasti võimalik saada tabel, mis vastab 3NF-ile, ilma et see takistaks sõltuvuse säilimist ja kadudeta liitumist. Kuid BCNF-iga pole see alati võimalik.

Soovitan: