Verskil tussen 3NF en BCNF

Verskil tussen 3NF en BCNF
Verskil tussen 3NF en BCNF

Video: Verskil tussen 3NF en BCNF

Video: Verskil tussen 3NF en BCNF
Video: RUP vs. Waterfall Comparison based on an analogy with Construction 2024, November
Anonim

3NF vs BCNF

Normalisering is 'n proses wat uitgevoer word om die oortolligheid wat in data in relasionele databasisse voorkom, te verminder. Hierdie proses sal hoofsaaklik groot tafels verdeel in kleiner tafels met minder oortolligheid. Hierdie kleiner tabelle sal deur goed gedefinieerde verwantskappe met mekaar verband hou. In 'n goed genormaliseerde databasis sal enige verandering of wysiging in data die wysiging van slegs 'n enkele tabel vereis. Third Normal Form (3NF) is in 1971 bekendgestel deur Edgar F. Codd, wat ook die uitvinder van die relasionele model en die konsep van normalisering is. Boyce-Codd Normal Form (BCNF) is in 1974 deur Codd en Raymond F. Boyce.

Wat is 3NF?

3NF is die Derde normale vorm wat in relasionele databasisnormalisering gebruik word. Volgens die Codd se definisie word gesê dat 'n tabel in 3NF is, as en slegs as daardie tabel in die tweede normale vorm (2NF) is, en elke eienskap in die tabel wat nie aan 'n kandidaatsleutel behoort nie, moet direk afhang van elke kandidaatsleutel van daardie tabel. In 1982 het Carlo Zaniolo 'n anders uitgedrukte definisie vir 3NF gemaak. Tabelle wat aan die 3NF voldoen, bevat oor die algemeen nie onreëlmatighede wat voorkom wanneer rekords in die tabel ingevoeg, uitgevee of opgedateer word nie.

Wat is BCNF?

BCNF (ook bekend as 3.5NF) is 'n ander normale vorm wat in relasionele databasisnormalisering gebruik word. Dit is ingestel om sommige van die afwykings vas te lê wat nie deur die 3NF aangespreek word nie. Daar word gesê dat 'n tabel in BCNF is, as en slegs as, vir elk van die afhanklikhede van die vorm A → B wat nie-triviaal is, A 'n supersleutel is. Die ontbinding van 'n tabel wat nie in die BCNF-normale vorm is nie, waarborg nie die produksie van tabelle in die BCNF-vorm nie (terwyl die afhanklikhede wat in die oorspronklike tabel teenwoordig was, bewaar word).

Wat is die verskil tussen 3NF en BCNF?

Beide 3NF en BCNF is normale vorms wat in relasionele databasisse gebruik word om oortolligheid in tabelle te minimaliseer. In 'n tabel wat in die BCNF normale vorm is, vir elke nie-triviale funksionele afhanklikheid van die vorm A → B, is A 'n supersleutel, terwyl 'n tabel wat aan 3NF voldoen in die 2NF moet wees, en elke nie-prima kenmerk moet direk afhang van elke kandidaatsleutel van daardie tabel. BCNF word beskou as 'n sterker normale vorm as die 3NF en dit is ontwikkel om sommige van die anomalieë vas te vang wat nie deur 3NF vasgelê kon word nie. Om 'n tabel te verkry wat aan die BCNF-vorm voldoen, sal vereis dat 'n tabel wat in die 3NF is, ontbind word. Hierdie ontbinding sal bykomende aansluitingsbewerkings (of Cartesiese produkte) tot gevolg hê wanneer navrae uitgevoer word. Dit sal die berekeningstyd verhoog. Aan die ander kant sal die tabelle wat aan BCNF voldoen, minder ontslag hê as tabelle wat slegs aan 3NF voldoen. Verder is dit die meeste van die tyd moontlik om 'n tabel te verkry wat aan 3NF voldoen sonder om afhanklikheidsbewaring en verlieslose aansluiting te belemmer. Maar dit is nie altyd moontlik met BCNF nie.

Aanbeveel: