Forskel mellem BCNF og 3NF Forskellen mellem

Anonim

BCNF vs. 3NF

Boyce Codd normal form (også kendt som BCNF) er en normal form -det er en formular, der giver kriterier for at bestemme en bords grad af sårbarhed overfor logiske inkonsekvenser og uregelmæssigheder. Denne normale form bruges i database normalisering. Det er lidt stærkere end dets forgænger, den tredje normale form (også kendt som 3NF). En tabel menes at være i BCNF, hvis og kun hvis for hver enkelt, hvis dens ikke-trivielle funktionelle afhængigheder - det er en grænse der er indstillet mellem to sæt attributter i en relation taget fra en database - er en superkey (et sæt af attributter af en relationel variabel, der postulerer, at i alle relationer, der er tildelt den specifikke variabel, er der ikke to forskellige rækker, der indeholder samme værdi for attributterne i det pågældende sæt). BCNF postulaterer, at ethvert bord, der ikke opfylder kriterierne, der skal tilskrives som BNCF, er sårbart for logiske inkonsekvenser.

3NF er en normal form, der også bruges i database normalisering. Det antages, at et bord er i 3NF hvis og kun hvis 1) tabellen er i anden normal form (eller 2NF, som er en første normal kode eller 1NF, der har opfyldt kriterierne for at blive 2NF) og 2) Hver non-prime-attribut på bordet er uafbrudt afhængig af hver tast i tabellen (hvilket betyder, at den ikke er direkte afhængig af hver nøgle). Der er en anden postulation af 3NF, som også bruges til at definere forskellene mellem 3NF og BCNF.

Denne sætning blev opfattet af Carlo Zaniolo i 1982. Det hedder, at en tabel er i 3NF hvis og kun hvis for hver funktionel afhængighed hvor X â † 'A, skal mindst en af ​​tre betingelser holde: enten X â † 'A, X er en supernøgle, eller A er en primærattribut (som betyder, at A er indeholdt i en kandidatnøgle - eller en minimal supernøgle til det pågældende forhold). Denne nyere definition adskiller sig fra et BCNFs sætning, idet sidstnævnte model simpelthen eliminerer den sidste betingelse. Selv som det virker som en nyere version af 3NF sætningen, er der en afledning af Zaniolo sætningen. Det hedder, at X â † 'A ikke er trivielt. Hvis det er sandt, lad A være en noon-nøgleattribut og lad Y også være en nøgle til R. Hvis det holder så Y â † 'X. Det betyder at A ikke er transitivt afhængig af Y hvis og kun hvis X â † 'Y (eller hvis X er en supernøgle.

Sammendrag:

1. BCNF er en normal form, hvor for hver enkelt af et bords ikke-trivielle funktionelle afhængigheder, er en supernøgle; 3NF er en normal form, hvor tabellen er i 2NF, og hver non-prime-attribut er ikke-transitivt afhængig af hver nøgle i tabellen.