Verschil tussen BCNF en 3NF Verschil tussen

Anonim

BCNF vs. 3NF

Boyce Codd normale vorm (ook bekend als BCNF) is een normale vorm -dat is een formulier dat criteria biedt voor het bepalen van de mate van kwetsbaarheid van een tabel voor logische inconsistenties en anomalieën. Deze normale vorm wordt gebruikt in database-normalisatie. Het is een beetje sterker dan zijn voorganger, de derde normale vorm (ook bekend als 3NF). Een tabel wordt geacht in BCNF te zijn als en alleen als voor iedereen als de niet-triviale functionele afhankelijkheden - dat is een grens die is ingesteld tussen twee sets attributen in een relatie uit een database - een superkey is (een set van attributen van een relationele variabele die postuleert dat in alle relaties die aan die specifieke variabele zijn toegewezen, er geen twee afzonderlijke rijen zijn met dezelfde waarde voor de attributen in die specifieke reeks). BCNF postuleert dat elke tabel die niet voldoet aan de criteria die moeten worden toegeschreven als een BNCF kwetsbaar is voor logische inconsistenties.

3NF is een normale vorm die ook wordt gebruikt bij normalisatie van databases. Er wordt gedacht dat een tabel zich in 3NF bevindt als en slechts als 1) de tabel een tweede normale vorm heeft (of 2NF, wat een eerste normale code is, of 1NF, die aan de criteria voldoet om een ​​2NF te worden), en 2) elk niet-primair kenmerk van de tabel is niet-transitief afhankelijk van elke toets van de tabel (dit betekent dat het niet direct afhankelijk is van elke sleutel). Er is nog een postulatie van 3NF die ook wordt gebruikt om de verschillen tussen 3NF en de BCNF te definiëren.

Deze stelling werd bedacht door Carlo Zaniolo in 1982. Het stelt dat een tabel zich in 3NF bevindt als en alleen als voor elke functionele afhankelijkheid waar X â † 'A, ten minste één van de drie voorwaarden moet bestaan: ofwel X â † 'A, X is een superkey, of A is een prime -kenmerk (wat betekent dat A is vervat in een kandidaatsleutel of een minimale superkey voor die relatie). Deze nieuwere definitie verschilt van de stelling van een BCNF doordat het laatste model eenvoudig de laatste voorwaarde zou elimineren. Zelfs als het werkt als een nieuwere versie van de 3NF-stelling, is er een afleiding van de Zaniolo-stelling. Het stelt dat X â † 'A niet-triviaal is. Als dat waar is, laat A dan een middag-sleutelkenmerk zijn en laat Y ook een sleutel van R zijn. Als dat geldt dan Y â † 'X. Dit betekent dat A niet transitief afhankelijk is van Y als en alleen als X â † 'Y (of als X een superkey is.

Samenvatting:

1. BCNF is een normale vorm waarin voor elk van de niet-triviale functionele afhankelijkheden van een tabel, is een superkey; 3NF is de normale vorm waarin de tabel zich in 2NF bevindt en elk niet-primair kenmerk niet-transitief afhankelijk is van elke sleutel in de tabel.