Zum Inhalt springen

Synthesealgorithmus

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 4. Februar 2005 um 16:08 Uhr durch 84.154.118.47 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Dieser Synthesealgorithmus beschreibt, wie aus einem Datenbankentwurf ein Relationenschema der 3.Normalform wird.

Vorraussetzung: 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


1. Reduktion
1.1
Für alle ψ ∈ Ψ ersetze Ψ -> Γ durch ( Ψ - ψ ) -> Γ, falls B schon durch ( Ψ - ψ ) -> Γ determinieert ist.
Für alle γ ∈ Γ ersetze Ψ -> Γ durch Ψ -> ( Γ - γ ), falls γ schon transitiv durch Ψ bestimmt ist.

Beispiel

    Relation(A,B,C,D,E)
    A    -> B,C
    A,{} -> B  # D fällt weg (Linksreduktion)
    B,D  -> E
    A,D  -> {} # E fällt weg (Rechtsreduktion)

1.2 Zusammenfassung
Alle rechtsleeren Abhängigkeiten können entfernt werden. Alle funktionalen Abhängigkeiten mit gleicher linker Seite können zusammengefasst werden.

Beispiel

    Relation(A,B,C,D,E)
    A    -> B,C
    B,D  -> E

2.Neues Relationenschema
Aus allen Ψ -> Γ wird R(Ψ, Γ).
Zusätzlich muss ein neuer Schlüssel gefunden werden, der 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