Forskel mellem BCNF og 3NF

BCNF vs. 3NF

Boyce Codd normal form (også kendt som BCNF) er en normal form - det er en form, der giver kriterier til bestemmelse af en tabells grad af sårbarhed over for logiske uoverensstemmelser og afvigelser. Denne normale form bruges i databasens normalisering. Den er lidt stærkere end dens forgænger, den tredje normale form (også kendt som 3NF). En tabel antages at være i BCNF, hvis og kun hvis det er en grænse, der er sat mellem to sæt attributter i en relation hentet fra en database, er en superkey (et sæt af attributter for en relationel variabel, der postulerer, at der i alle relationer, der er tildelt den specifikke variabel, ikke er to forskellige rækker, der indeholder den samme værdi for attributterne i det bestemte sæt). BCNF postulerer, at enhver tabel, der ikke opfylder kriterierne, der skal tilskrives som en BNCF, er sårbar over for logiske uoverensstemmelser.

3NF er en normal form, der også bruges i databasens normalisering. Det menes, at en tabel er i 3NF, 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 en 2NF), og 2) hver ikke-prime attribut i tabellen er ikke-transitivt afhængig af hver nøgle i tabellen (hvilket betyder, at den ikke er direkte afhængig af hver nøgle). Der er en anden postulation af 3NF, der også bruges til at definere forskellene mellem 3NF og BCNF.

Denne sætning blev udtænkt af Carlo Zaniolo i 1982. Den siger, at en tabel findes i 3NF, hvis og kun hvis for hver funktionel afhængighed, hvor X â '' A, mindst en af ​​tre betingelser skal have: enten X â † 'A, X er en superkey, eller A er en primær attribut (hvilket betyder, at A er indeholdt i en kandidatnøgle - eller en minimal superkey for det forhold). Denne nyere definition adskiller sig fra sætningen for en BCNF, idet sidstnævnte model simpelthen ville eliminere den sidste betingelse. Selv når det fungerer som en nyere version af 3NF-sætningen, er der en afledning af Zaniolo-sætningen. Det hedder, at X â † 'A er ikke-trivielt. Hvis det er sandt, så lad A være en middagstastattribut og lad også Y være en nøgle af R. Hvis det gælder så er Y â † 'X. Dette betyder, at A ikke er midlertidigt afhængig af Y, og kun hvis X â † 'Y (eller hvis X er en superkey.

Resumé:

1. BCNF er en normal form, hvor der for enhver af tabellets ikke-trivielle funktionelle afhængigheder er en superkey; 3NF er normal form, hvor tabellen er i 2NF, og enhver ikke-prime attribut er ikke-transitivt afhængig af hver tast i tabellen.