2NF-Zerlegung + Datenbanknormalisierung

7

Wenn jemand etwas über 2NF weiß, würde ich mich sehr freuen, wenn Sie mir sagen könnten, ob mein Verständnis davon korrekt ist. Mein Buch erwähnt es nicht einmal (außer zu sagen, dass es von "historischer Bedeutung" ist) und ich konnte kein wirklich finden gutes Beispiel online. Ich lerne für einen Test und möchte wissen, ob meine Überlegungen zur Durchführung einer 2NF-Zerlegung richtig sind

R = {a, b, c, d, e, f, g} F = {AB -> C, A -> DE, B -> F, F -> GH, D -> IJ}

Das erste, was ich tat, war, den Superschlüssel zu finden, der leicht zu erkennen war (AB) + = R. Ich bin mir jedoch nicht sicher, ob dies die Definition von 2NF bedeutet, wenn der Begriff "Schlüssel" verwendet wird.

2. Ich habe AA verwendet und einige Begriffe in F kombiniert (nur um es übersichtlicher zu machen).

F = {AB -> C, A -> DEIJ, B -> FGH}

3. Ich entferne und teilweise funktionale Abhängigkeiten Ich bin mir nicht sicher (ich habe es ohne Auswertung nachgeschlagen), was eine PFD ist. Ich denke, es ist, wenn Sie eine FD haben, bei der die LHS in diesem Fall eine richtige Teilmenge des Superkeys ist

A -> DEIJ und B -> FGH

4. Ich zerlege es in Beziehungen, die die Verstöße aus Schritt 3 entfernen

R1 = AB -> C.

R2 = A -> DEIJ

R3 = B -> FGH

Ich bin wirklich auf der Suche nach jemandem, der mir Feedback gibt, wenn ich das Konzept richtig verstehe. Jede Hilfe wäre sehr dankbar

Vielen Dank

cpowel2
quelle

Antworten:

13

Es gibt einen kleinen Aphorismus, der geht:

  • Der Schlüssel (1NF)
  • Der ganze Schlüssel (2NF)
  • Und nichts als der Schlüssel (3NF)

. . . Also hilf mir Codd

In Ihrem Beispiel können wir zunächst von 1NF ausgehen, da die relationale Struktur keine sich wiederholenden Gruppen innerhalb der Zeile impliziert (dh keine D 1 , D 2 , D 3 usw.).

R = {a, b, c, d, e, f, g} F = {AB -> C, A -> DE, B -> F, F -> GH, D -> IJ}

2NF befasst sich mit 'dem ganzen Schlüssel' - Wenn Sie einen zusammengesetzten Schlüssel haben und einige Mitglieder der Beziehung von einem Teil dieses Schlüssels abhängig sind, sollten sie in ihre eigenen Beziehungen aufgeteilt werden. In Ihrem Fall:

  • R1 = AB -> C ist in 2NF, da 'AB' 'der ganze Schlüssel' ist.

  • R2 = A -> DEIJ ist 2NF, aber nicht 3NF als A -> DE, aber A -> IJ ist nicht 3NF, da die reale Abhängigkeit von I und J D -> IJ ist. D ist kein Schlüssel dieser Beziehung (A -> DEIJ), daher verstößt A -> IJ gegen das Prinzip 'nichts als der Schlüssel' von 3NF.

  • R3 = B -> FGH ist in 2NF, aber nicht 3NF, da B -> F eine korrekte Beziehung ist und F von der Gesamtheit des Schlüssels 'B' abhängt. B -> GH ist jedoch nicht in 3NF, da die korrekte Beziehung F -> GH ist. B -> GH verstößt gegen das Prinzip "nichts als der Schlüssel", da G ahd H korrekt vom Nichtschlüsselattribut F abhängig sind.

Ihre Zerlegung in 2NF ist korrekt. Für die Zerlegung in 3NF müssen die Nichtschlüsselattribute, die ihre eigenen Abhängigkeiten haben, in separate Beziehungen aufgenommen werden.

Die Beziehung in 3NF würde folgendermaßen aussehen:

  • R1 = AB -> C.

  • R2 = A -> DE (I und J sind abhängig vom Nichtschlüsselattribut D)

  • R3 = B -> F (G und H sind abhängig vom Nichtschlüsselattribut F)

  • R4 = D -> IJ

  • R5 = F -> GH

ConcernedOfTunbridgeWells
quelle
Vielen Dank für das Feedback und die Hinzufügung der 3NF-Zerlegung. Ihre klare, prägnante Erklärung wurde sehr geschätzt
cpowel2