====== 4. Normalform ======
In der 4. Normalform geht es um "Mehrwertige Abhängigkeiten" (engl. multivalued dependencies).
Bis jetzt kannten wir nur einfache Abhängigkeiten wie "B ist funktional abhängig von A". Dies bedeutet A -> B und, dass aus einem A genau ein B folgt.
Bei mehrwertigen Abhängigkeiten ist dies nicht der Fall. Wenn B mehrwertig abhängig von A ist (A ->-> B) heißt das, dass aus einem A mehrere B folgen.
Ein Beispiel sähe wie folgt aus:
{{:dbs:sql:4nf_nicht.png?direct&|}}
===== Definition =====
Eine Tabelle ist in 4. Normalform wenn sie die BCNF erfüllt und für jede mehrwertige Abhängigkeit von einer Attributmenge Y von einer Attributmenge X gilt:
* die mehrwertige Abhängigkeit trivial ist
* X ein Teil eines Schlüsselkandidaten ist
Trivial bedeutet:
* das in einer Tabelle R, X und Y die einzigen Attribute sind -> R(X,Y)
* Y ein Teil von X ist
===== Möglichkeiten der Auflösung =====
Wir gehen von folgender Tabelle aus:
Person (PNr, Haustier, Fahrzeug)
PNr ->-> Haustier, PNr ->-> Fahrzeug
Nun gibt es 3 Möglichkeiten, diese Tabelle darzustellen:
{{:dbs:sql:loesung_4nf_neu.png?direct&|}}
Ein weiterer Lösungsansatz wäre, alle mehrwertigen Abhängigkeiten in eigene Tabellen zu packen, sie damit trivial machen und sich somit den ganzen Aufwand zu ersparen ;)