3NF vs BCNF

Jöfnun er ferli sem er unnið til að lágmarka uppsagnirnar sem eru til staðar í gögnum í gagnabönkum. Þetta ferli mun aðallega skipta stórum töflum niður í smærri töflur með færri uppsögnum. Þessar smærri töflur tengjast hver annarri í gegnum vel skilgreind sambönd. Í vel normaliseruðum gagnagrunni, allar breytingar eða breytingar á gögnum þurfa aðeins að breyta einni töflu. Þriðja eðlilegt form (3NF) var kynnt árið 1971 af Edgar F. Codd, sem er einnig uppfinningamaður af venslunarlíkaninu og hugtakinu eðlileg. Boyce-Codd Normal Form (BCNF) var kynnt árið 1974 af Codd og Raymond F. Boyce.

Hvað er 3NF?

3NF er þriðja venjulega formið sem notað er við samhæfingu gagnagrunns. Samkvæmt skilgreiningunni á Codd er tafla sögð vera í 3NF, ef og aðeins ef, þessi tafla er í öðru venjulegu formi (2NF), og sérhver eiginleiki í töflunni sem ekki tilheyrir frambjóðandarlykli ætti að vera beint háð sérhver frambjóðandi lykill þess töflu. Árið 1982 framleiddi Carlo Zaniolo aðra skilgreinda skilgreiningu fyrir 3NF. Töflur sem eru í samræmi við 3NF innihalda yfirleitt ekki frávik sem eiga sér stað þegar sett er inn, eytt eða uppfært skrár í töflunni.

Hvað er BCNF?

BCNF (einnig þekkt sem 3.5NF) er annað venjulegt form sem notað er við samhæfingu gagnagrunns. Það var kynnt til að fanga nokkur frávik sem 3NF tekur ekki við. Sagt er að tafla sé í BCNF, ef og aðeins ef, fyrir hvert ósjálfstæði á forminu A → B sem eru ekki léttvæg, er A ofurlykill. Að brjóta niður töflu sem er ekki í venjulegu formi BCNF tryggir ekki framleiðslu töflna á BCNF forminu (meðan varðveitt er ósjálfstæði sem var til staðar í upprunalegu töflunni).

Hver er munurinn á 3NF og BCNF?

Bæði 3NF og BCNF eru venjuleg form sem notuð eru í gagnagrunnum á vensla til að lágmarka uppsagnir í töflum. Í töflu sem er í BCNF eðlilegu formi, fyrir hvert ekki léttvægt starfshæfni formsins A → B, er A ofur lykill en tafla sem er í samræmi við 3NF ætti að vera í 2NF og hvert ekki prímat eiginleiki ætti að ráðast beint á hvern einasta framboðslykil þess töflu. BCNF er talið sterkara eðlilegt form en 3NF og það var þróað til að fanga nokkur frávik sem 3NF gat ekki náð. Að fá töflu sem er í samræmi við BCNF formið mun þurfa að sundra töflu sem er í 3NF. Þessi niðurbrot mun leiða til viðbótaraðgerða (eða vörur frá Cartesian) þegar framkvæmdar eru fyrirspurnir. Þetta mun auka reikningstímann. Aftur á móti hefðu töflurnar sem eru í samræmi við BCNF færri uppsagnir en töflur sem aðeins samræmast 3NF. Ennfremur er oftast hægt að fá töflu sem er í samræmi við 3NF án þess að hindra varðveislu ósjálfstæði og taplausa tengingu. En þetta er ekki alltaf mögulegt með BCNF.