MALO 2.0
| Back to OverviewEntwurfstheorie
Abhängigkeiten
Sei die Attributenmenge einer Relation . Eine Abhängigkeit ist eine Relation . Also ist funktional abhängig von . also gdw. für alle .
Hier kommt dann die Notation auf
- bzw.
Hiermit können wir nun Schlüssel gut definieren:
-
Eindeutigkeit heißt Superschlüssel, falls gilt.
-
Minimalität heißt voll funktional abhängig von falls:
- gilt
- für alle also ist minimal.
Ein Schlüsselkandidat ist dann mit voll funktional abhängig von . Und der Primärschlüssel ist dann ein Schlüsselkandidat, der minimal ist.
Armstrong-Kalkül
Bestimmung funktionaler Abhängigkeiten: Seien .
- Reflexivität:
- Verstärkung:
- Transitivität:
Eine Abhängigkeit ist ableitbar, falls es eine Folge gibt von Abhängigkeiten, die mit den obigen Regeln hergeleitet werden kann.
Erweiteruingen:
- Vereinigung:
- Dekomposition:
- Pseudotransitivität:
Hieraus bildet man dann die Attributhülle.
Beispiel:
- AttrHülle(F, {B})
Anfang: Erster Durchlauf: | | Zweiter Durchlauf: Keine Änderung
Die Kanonische Überdeckung hat die gleiche Menge von Ableitungen. Also beim Beispiel
Normalformen erklärt
Alle Normalformen setzten die vorherige vorraus. Also 2NF setzt 1NF vorraus. 3NF setzt 2NF vorraus. BCNF setzt 3NF vorraus.
- 0NF: Nicht normalisiert. Alles steht in einer einzigen Tabelle und ist nicht aufgeteilt.
- 1NF: Alle Attribute haben atomare Werte (String, Integer, etc.). z.B. Name => Vorname, Nachname | Adresse => Straße, Hausnummer, PLZ, Ort
- 2NF: Alle Attribute sind voll funktional abhängig vom Primärschlüssel. z.B. Menge ist voll funktional abhängig vom Bestellungs Nr. & Artikel Nr.
- 3NF: Kein Nichtschlüsselattribut hängt transitiv von einem Schlüsselkandidaten ab. Bsp: Ort => PLZ => Kunden Nr. Ort ist transitiv abhängig von Kunden Nr. Somit neue Relation mit PLZ und Ort. (Synthesealgorithmus)
- BCNF: Jede Information wird genau einmal gespeichert (Dekompositionsalgorithmus)
Im Endeeffekt das hier: