BCNF vs 3NF
Boyce Codd normal form (även känd som BCNF) är en vanlig form - det är en form som ger kriterier för att bestämma ett bords grad av sårbarhet mot logiska inkonsekvenser och anomalier. Denna normala form används i databas normalisering. Det är lite starkare än föregångaren, den tredje normala formen (även känd som 3NF). En tabell anses vara i BCNF om och endast om för alla om dess icke-triviala funktionella beroenden, det är en gräns som ställs in mellan två uppsättningar attribut i ett förhållande från en databas, är en supernyckel (en uppsättning av attribut av en relationell variabel som postulerar att i alla relationer som tilldelats den specifika variabeln finns det inga två distinkta rader som innehåller samma värde för attributen i den specifika uppsättningen). BCNF postulerar att varje tabell som inte uppfyller kriterierna som ska tillskrivas som BNCF är sårbar för logiska inkonsekvenser.
3NF är en normal form som också används i databas normalisering. Det anses att ett bord är i 3NF om och endast om 1) tabellen är i andra normala form (eller 2NF, som är en första normal kod eller 1NF, som har uppfyllt kriterierna för att bli en 2NF) och 2) varje icke-prime-attribut i tabellen är icke-transitivt beroende av varje nyckel i tabellen (vilket betyder att det inte är direkt beroende av varje nyckel). Det finns en annan postulation av 3NF som också används för att definiera skillnaderna mellan 3NF och BCNF.
Denna ståndpunkt uppfattades av Carlo Zaniolo 1982. Det anges att ett bord är i 3NF om och endast om för varje funktionellt beroende där X â † 'A, minst en av tre villkor måste hålla: antingen X â †' A, X är en supernyckel, eller A är ett huvudattribut (vilket betyder att A finns i en kandidatnyckel - eller en minimal supernyckel för det förhållandet). Denna nyare definition skiljer sig från teorem av en BCNF genom att den senare modellen helt enkelt skulle eliminera det sista tillståndet. Trots att det fungerar som en nyare version av 3NF-steget, är det en avledning av Zaniolo-teoremetoden. Det står att X â † 'A är icke-trivial. Om det är sant, låt A vara en noonnyckelattribut och låt Y också vara en nyckel till R. Om den innehar Y-X så betyder det att A inte är transitivt beroende av Y om och endast om X â † 'Y (eller om X är en supernyckel.
Sammanfattning:
1. BCNF är en vanlig form där för varje av ett bords icke-triviala funktionella beroenden är en supernyckel; 3NF är en normal form där tabellen är i 2NF och varje icke-prime-attribut är inte transitivt beroende av varje nyckel i tabellen.