logo

Boyce-Codd-Normalform (BCNF)

Voraussetzung: Erste Normalform , Zweite Normalform , Dritte Normalform

Die Anwendung der allgemeinen Definitionen von 2NF und 3NF kann zusätzliche Redundanz identifizieren, die durch Abhängigkeiten verursacht wird, die einen oder mehrere Kandidatenschlüssel verletzen. Trotz dieser zusätzlichen Einschränkungen können jedoch immer noch Abhängigkeiten bestehen, die zu Redundanz in 3NF-Beziehungen führen. Diese Schwäche in 3NF führte zur Darstellung einer stärkeren Normalform namens Die Boyce-Codd-Normalform (Codd, 1974) .



Obwohl 3NF eine adäquate Normalform für relationale Datenbanken ist, entfernt diese (3NF-)Normalform aufgrund der funktionalen X−>Y-Abhängigkeit möglicherweise nicht die 100-prozentige Redundanz, wenn X kein Kandidatenschlüssel der gegebenen Beziehung ist. Dies kann durch die Boyce-Codd-Normalform (BCNF) gelöst werden.

Boyce-Codd-Normalform (BCNF)

Die Boyce-Codd-Normalform (BCNF) basiert auf funktionalen Abhängigkeiten, die alle Kandidatenschlüssel in einer Beziehung berücksichtigen. Allerdings weist BCNF im Vergleich zur allgemeinen Definition von 3NF auch zusätzliche Einschränkungen auf.

Regeln für BCNF

Regel 1: Die Tabelle sollte in der 3. Normalform vorliegen.



Regel 2: X sollte ein Superschlüssel für jede funktionale Abhängigkeit (FD) X−>Y in einer gegebenen Beziehung sein.

Notiz: Um zu testen, ob eine Beziehung in BCNF vorliegt, identifizieren wir alle Determinanten und stellen sicher, dass es sich um Kandidatenschlüssel handelt.

BCNF im DBMS



Sie sind auf eine ähnliche Hierarchie gestoßen, die als bekannt ist Chomsky-Normalform in der Berechnungstheorie. Studieren Sie nun sorgfältig die obige Hierarchie. Daraus lässt sich schließen jede Relation in BCNF ist auch in 3NF . Anders ausgedrückt: Eine Relation in 3NF muss nicht in BCNF sein. Denken Sie eine Weile über diese Aussage nach.

Um die höchste Normalform einer gegebenen Relation R mit funktionalen Abhängigkeiten zu bestimmen, muss zunächst geprüft werden, ob die BCNF-Bedingung erfüllt ist. Wenn festgestellt wird, dass R in BCNF enthalten ist, kann mit Sicherheit abgeleitet werden, dass die Beziehung auch in vorliegt 3NF , 2NF, Und 1NF wie die Hierarchie zeigt. Die 1NF hat die am wenigsten restriktive Einschränkung – sie erfordert nur eine Beziehung R, um atomare Werte in jedem Tupel zu haben. Für die 2NF gelten etwas restriktivere Einschränkungen.

Die 3NF hat eine restriktivere Einschränkung als die ersten beiden Normalformen, ist jedoch weniger restriktiv als die BCNF. Auf diese Weise nimmt die Einschränkung zu, wenn wir die Hierarchie nach unten durchlaufen.

Beispiele

Hier werden wir einige grundlegende Beispiele besprechen, die Ihnen das Verständnis der Eigenschaften von BCNF erleichtern. Wir werden hier mehrere Beispiele diskutieren.

Beispiel 1

Betrachten wir die Studentendatenbank, in der Daten des Studenten aufgeführt sind.

Diese_ID This_Branch Stu_Kurs Zweig-Nummer Stu_Kurs_Nr
101 Informatik und Ingenieurwesen DBMS B_001 201
101 Informatik und Ingenieurwesen Computernetzwerke B_001 202
102 Elektronik und Kommunikationstechnik VLSI-Technologie B_003 401
102 Elektronik und Kommunikationstechnik Mobile Kommunikation B_003 402

Die funktionale Abhängigkeit des Obigen ist wie erwähnt:

Stu_ID −>Stu_Branch Stu_Course −> {Branch_Number, Stu_Course_No}>

Kandidatenschlüssel der obigen Tabelle sind: {This_ID, This_Course}

Warum ist diese Tabelle nicht in BCNF?

Die oben dargestellte Tabelle ist nicht in BCNF enthalten, da wir sehen können, dass weder Stu_ID noch Stu_Course ein Superschlüssel sind. Da die oben genannten Regeln eindeutig besagen, dass eine Tabelle, damit sie in BCNF enthalten ist, der Eigenschaft folgen muss, dass für die funktionale Abhängigkeit X−>Y .

Wie erfüllt man BCNF?

Um diese Tabelle in BCNF zu erfüllen, müssen wir sie in weitere Tabellen zerlegen. Hier ist das vollständige Verfahren, mit dem wir diese Tabelle in BCNF umwandeln. Teilen wir diese Haupttabelle zunächst in zwei Tabellen auf This_Branch Und Stu_Kurs Tisch.

Stu_Branch-Tabelle

Diese_ID This_Branch
101 Informatik und Ingenieurwesen
102 Elektronik und Kommunikationstechnik

Kandidatenschlüssel für diese Tabelle: Diese_ID .

Datum und Uhrzeit des Typoskripts

Stu_Course-Tabelle

Stu_Kurs Zweig-Nummer Stu_Kurs_Nr
DBMS B_001 201
Computernetzwerke B_001 202
VLSI-Technologie B_003 401
Mobile Kommunikation B_003 402

Kandidatenschlüssel für diese Tabelle: Stu_Kurs .

Stu_ID zur Stu_Course_No-Tabelle

Diese_ID Stu_Kurs_Nr
101 201
101 202
102 401
102 402

Kandidatenschlüssel für diese Tabelle: {Stu_ID, Stu_Course_No}.

Nach der Zerlegung in weitere Tabellen gilt nun in BCNF, dass X in der funktionalen Abhängigkeit X−>Y a ist, da es die Bedingung von Super Key übergibt Superschlüssel.

Beispiel 2

Finden Sie die höchste Normalform einer Beziehung R(A, B, C, D, E) mit FD wie folgt:

{ BC->D, AC->BE, B->E }>

Erläuterung:

  • Schritt 1: Wie wir sehen können, gilt (AC)+ ={A, C, B, E, D}, aber keine seiner Teilmengen kann alle Attribute der Beziehung bestimmen, sodass AC der Kandidatenschlüssel sein wird. A oder C können von keinem anderen Attribut der Beziehung abgeleitet werden, daher gibt es nur einen Kandidatenschlüssel {AC}.
  • Schritt 2: Primärattribute sind die Attribute, die in diesem Beispiel Teil des Kandidatenschlüssels {A, C} sind, während andere in diesem Beispiel Nicht-Primärattribute {B, D, E} sind.
  • Schritt 3: Die Relation R liegt in der 1. Normalform vor, da ein relationales DBMS keine mehrwertigen oder zusammengesetzten Attribute zulässt.

Die Beziehung liegt in der 2. Normalform vor, da BC->D in der 2. Normalform vorliegt (BC ist keine echte Teilmenge des Kandidatenschlüssels AC) und AC->BE in der 2. Normalform vorliegt (AC ist der Kandidatenschlüssel) und B->E liegt in der 2. Normalform vor (B ist keine echte Teilmenge des Kandidatenschlüssels AC).

Die Beziehung ist nicht in der 3. Normalform, weil in BC->D (weder BC ein Superschlüssel noch D ein Primattribut ist) und in B->E (weder B ein Superschlüssel noch E ein Primattribut ist), aber um die 3. Normalform zu erfüllen , sollte entweder die linke Seite eines FD ein Superschlüssel oder die rechte Seite ein Hauptattribut sein. Die höchste Normalform der Beziehung wird also die 2. Normalform sein.

Notiz: Ein Primattribut kann nicht transitiv von einem Schlüssel in der BCNF-Beziehung abhängig sein.

Betrachten Sie diese funktionalen Abhängigkeiten einer Beziehung R

AB ->C C ->B AB ->B>

Angenommen, es ist bekannt, dass der einzige Kandidatenschlüssel von R AB ist. Eine sorgfältige Beobachtung ist erforderlich, um zu dem Schluss zu kommen, dass es sich bei der obigen Abhängigkeit um eine transitive Abhängigkeit handelt, da das Primattribut B transitiv vom Schlüssel AB bis C abhängt. Nun befinden sich das erste und das dritte FD in BCNF, da sie beide den Kandidatenschlüssel enthalten (oder einfach). SCHLÜSSEL) auf der linken Seite. Die zweite Abhängigkeit befindet sich jedoch nicht in BCNF, sondern aufgrund des Vorhandenseins des Primzahlattributs auf der rechten Seite definitiv in 3NF. Die höchste Normalform von R ist also 3NF, da alle drei FDs die notwendigen Bedingungen erfüllen, um in 3NF zu sein.

Beispiel 3

Betrachten Sie zum Beispiel die Beziehung R(A, B, C)

A ->BC, B -> A>

A und B sind beide Superschlüssel, daher gilt die obige Beziehung in BCNF.

Notiz: Eine BCNF-Zerlegung ist mit der verlustfreien Verknüpfungsbedingung möglicherweise nicht immer möglich. Zum Beispiel die Beziehung R (V, W, X, Y, Z) mit funktionalen Abhängigkeiten:

V, W ->X Y, Z -> X W -> Y>

Es würde die abhängigkeitserhaltende BCNF-Zerlegung nicht erfüllen.

Notiz: Manchmal sind in einer BCNF-Beziehung immer noch Redundanzen vorhanden, da es nicht immer möglich ist, sie vollständig zu beseitigen.

Es gibt auch einige Normalformen höherer Ordnung, wie die 4. Normalform und die 5. Normalform.

Weitere Informationen finden Sie in der 4. und 5. Normalform.