====== 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 ;)