Synthesealgorithmus-Normalform
aus Wikipedia, der freien Enzyklopädie
Die Synthesealgorithmus-Normalform beschreibt, wie aus einem Datenbankentwurf ein Relationenschema der 3. Normalform wird. Ein alternativer Algorithmus ist der Zerlegungsalgorithmus, welcher in die BCNF transferiert. Dabei können allerdings Abhängigkeiten verloren gehen.
Inhaltsverzeichnis |
[Bearbeiten] Voraussetzung
Es müssen alle funktionalen Abhängigkeiten unter den Attributen bekannt sein.
Beispiel:
- Relation(A,B,C,D,E)
- A -> B,C
- A,D -> B
- B,D -> E
- A,D -> E
[Bearbeiten] Reduktion
Dies wird auch die Berechnung der kanonischen Überdeckung genannt.
[Bearbeiten] 1.Schritt: Linksreduktion
Für alle ersetze
durch
, falls Γ schon durch
determiniert ist.
[Bearbeiten] 2.Schritt: Rechtsreduktion
Für alle ersetze
durch
, falls γ schon transitiv durch Ψ bestimmt ist.
[Bearbeiten] 3.Schritt: Leere Klauseln
Eliminiere Klauseln der Form
[Bearbeiten] 4.Schritt: Zusammenfassen
Fasse Formeln zu
zusammen.
[Bearbeiten] Beispiel
Erster und zweiter Schritt:
- Relation(A,B,C,D,E)
- {A} -> {B,C} # bleibt
- {A} -> {B} # D fällt weg (Linksreduktion) (1)
- {B,D} -> {E} # bleibt
- {A,D} -> {} # E fällt weg (Rechtsreduktion)
Dritter und vierter Schritt:
- Relation(A,B,C,D,E)
- {A} -> {B,C} # (1) ist hier enthalten
- {B,D} -> {E}
[Bearbeiten] Neues Relationenschema
Aus allen Ψ -> Γ wird R(Ψ, Γ).
Zusätzlich muss ein neuer Schlüssel gefunden werden. Gegebenenfalls muss eine neue Relation erzeugt werden. Überflüssige Relationen können gestrichen werden.
Beispiel:
- Relation(A,B,C) # A ist Primärschlüssel
- Relation(B,D,E) # B ist Primärschlüssel
- Relation(A,B) # A,B sind Primärschlüssel
[Bearbeiten] Formaler Algorithmus
Eingabe: universelles Schema R=(U,F) Ausgabe: 3. Normalform D von R
B:=Reduktion(F) R:={} i:=0 for each YU mit
i:=i+1Ri: = (Xi,πXi1(B))
![]()
if
i:=i+1![]()
D:=(R,{})
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit ihn zu verbessern und entferne anschließend diese Markierung. |