2. Am Anfang ist Chaos
CD_ID Album Jahr der Gründung Titelliste
4711 The Beatles – Help! 1960
{1. Help!, 2. The Night Before,
3. You've Got to Hide Your
Love Away}
4712
Pink Floyd – Wish You Were
Here
1964
{1. Shine On You Crazy
Diamond}
4713
The Beatles – Yellow
Submarine
1960 {1. Only a Northern Song}
4. 1. Normalform
Jede Spalte der Tabelle muss einen atomaren Wertebereich haben
zusammengesetzte, mengenwertige oder geschachtelte Wertebereiche (relationenwertige
Attributwertebereiche) sind nicht erlaubt
Die Tabelle muss frei von Wiederholungsgruppen sein
Kein Spaltenwertebereich einer Tabelle in 1NF kann in weitere (sinnvolle)
Teilbereiche aufgespaltet werden
5. 1. Normalform
Beispiele:
Die Adresse darf nicht als Attribut verwendet werden, sondern muss – sofern es der
zugrunde liegende Prozess erfordert – in PLZ, Ort, Straße und Hausnummer aufgeteilt
werden
eine Spalte { Telefon }, die mehrere Telefonnummern enthält oder auch eine
Spaltengruppe { Telefon1, Telefon2, Telefon3 }
Praktischer Nutzen
Abfragen der Datenbank werden erleichtert bzw. überhaupt erst ermöglicht
6. 1. Normalform
CD_ID Albumtitel Interpret
Jahr der
Gründung
Track Titel
4711 Help! The Beatles 1960 1 Help!
4711 Help! The Beatles 1960 2 The Night Before
4711 Help! The Beatles 1960 3
You've Got to Hide
Your Love Away
4712
Wish You Were
Here
Pink Floyd 1964 1
Shine On You
Crazy Diamond
4713 Yellow Submarine The Beatles 1960 1
Only a Northern
Song
7. 2. Normalform
die erste Normalform liegt vor
kein Nichtschlüsselfeld ist funktional abhängig von einer echten Teilmenge
eines Schlüsselkandidaten
Jedes nicht-primäre Feld (nicht Teil eines Schlüssels) ist jeweils von
allen ganzen Schlüsseln abhängig, nicht nur von einem Teil eines Schlüssels.
Wichtig ist hierbei, dass die Nichtschlüsselfelder wirklich von allen Schlüsseln
vollständig abhängen.
8. 2. Normalform
Praktischer Nutzen:
Die 2NF erzwingt wesentlich „monothematische“ Tabellen in der Datenbank: jede Tabelle
modelliert nur einen Sachverhalt.
Dadurch werden Redundanz und die damit einhergehende Gefahr von Inkonsistenzen
reduziert.
Nur noch logisch/sachlich zusammengehörige Informationen finden sich in einer Tabelle.
Dadurch fällt das Verständnis der Datenstrukturen leichter.
9. 1. Normalform
CD_ID Albumtitel Interpret
Jahr der
Gründung
Track Titel
4711 Hilfe! The Beatles 1960 1 Help!
4711 Help! The Beatles 1960 2 The Night Before
4711 Help! The Beatles 1960 3
You've Got to Hide
Your Love Away
4712
Wish You Were
Here
Pink Floyd 1964 1
Shine On You
Crazy Diamond
4713 Yellow Submarine The Beatles 1960 1
Only a Northern
Song
10. 2. Normalform
CD
CD_ID Albumtitel Interpret
Jahr der
Gründung
4711 Help! The Beatles 1960
4712 Wish You Were Here Pink Floyd 1964
4713 Yellow Submarine The Beatles 1960
Lied
CD_ID Track Titel
4711 1 Help!
4711 2 The Night Before
4711 3 You've Got to Hide Your Love Away
4712 1 Shine On You Crazy Diamond
4713 1 Only a Northern Song
11. 3. Normalform
die zweite Normalform liegt vor
kein Nichtschlüsselattribut hängt von einem Schlüsselkandidaten transitiv ab
Ein Nichtschlüsselattribut darf also nur direkt von einem Primärschlüssel (bzw.
einem Schlüsselkandidaten) abhängig sein.
12. 2. Normalform
CD_ID Albumtitel Interpret Jahr der Gründung
4711 Help! The Beatles 1960
4712 Wish You Were Here Pink Floyd 1964
4713 Yellow Submarine The Beatles 1960
13. 3. Normalform
CD
CD_ID Albumtitel Int_ID
4711 Help! 55
4712 Wish You Were Here 56
4713 Yellow Submarine 55
Interpret
Int_ID Interpret Jahr der Gründung
55 The Beatles 1960
56 Pink Floyd 1964
14. Boyce-Codd-Normalform (BCNF)
die dritte Normalform liegt vor
jede Determinante (Feldmenge, von der andere Felder funktional abhängen)
ist in der Tabelle eindeutig (ist ein „Superschlüssel“)
oder die Abhängigkeit ist trivial
15. 3. Normalform
jeder Lehrer unterrichtet nur ein
Fach
ein Schüler kann bei verschiedenen
Lehrern lernen, aber nur, wenn diese
Lehrer unterschiedliche Fächer
unterrichten.
Schüler Fach Lehrer
Anna Englisch Glaser
Benno Englisch Glaser
Benno Latein Sibrawa
Das Feld Fach ist funktional abhängig
vom Feld Lehrer, d.h. Lehrer ist eine
Determinante.
Jedoch ist Lehrer kein Schlüsselkandidat.
Mögliche Schlüsselkandidaten sind
{Schüler, Lehrer} und {Schüler, Fach}.
Jedes Feld kommt in einem
Schlüsselkandidaten vor die Relation
ist in 3NF, allerdings nicht in BCNF.
17. BNCF
Die BCNF-Normalform ist strenger hinsichtlich der erlaubten funktionalen
Abhängigkeiten:
in Relationsschemata in 3NF können einige Informationen doppelt
vorkommen, in der BCNF jedoch nicht.
18. Merksatz 1., 2., 3. NF, BCNF
“The key, the whole key, and nothing but the key. So help me Codd!”
alle (impliziert: atomaren) Werte beziehen sich auf den Schlüssel – 1. NF
bei zusammengesetzten Schlüsseln beziehen sie sich jeweils auf den gesamten Schlüssel
– 2. NF
die Werte hängen nur vom Schlüssel ab, und nicht von weiteren Werten – 3. NF
19. 4. Normalform
PNR Haustier Fahrzeug
1 Katze Fiat Multipla
1 Katze Mini
1 Schildkröte Fiat Multipla
1 Schildkröte Mini
2 Hund Aston Martin
PNR Haustier
1 Katze
1 Schildkröte
2 Hund
PNR Fahrzeug
1 Fiat Multipla
1 Mini
2 Aston Martin
20. 5. Normalform
Eine Tabelle ist in 5NF, wenn sie
in der 4NF ist und
sich nicht aus einfacheren Tabellen
(solche, die weniger Felder
enthalten) durch
Verbundoperationen rekonstruieren
lässt
Lieferant Teil Projekt
Müller Schraube Projekt 1
Müller Nagel Projekt 2
Maier Nagel Projekt 1
21. 5. Normalform
Lieferant Teil
Müller Schraube
Müller Nagel
Maier Nagel
Teil Projekt
Schraube Projekt 1
Nagel Projekt 2
Nagel Projekt 1
Lieferant Projekt
Müller Projekt 1
Müller Projekt 2
Maier Projekt 1
22. 5. Normalform
Anders als bei der Umformung
zwischen den bisherigen
Normalformen wird durch diese
Umwandlung etwas anderes durch
die neuen Relationen ausgedrückt
als zuvor in der 4. Normalform.
Die Überführung in 5NF ist also nur
dann möglich, wenn man die
Möglichkeiten der Verbindungen aus
drei Beziehungen ausdrücken
möchte und nicht eine konkrete
Verbindung zwischen den dreien
haben möchte.
Lieferant Teil Projekt
Müller Schraube Projekt 1
Müller Nagel Projekt 2
Müller Nagel Projekt 1
Maier Nagel Projekt 1
23. Darstellungsformen
Die Erstellung eines normalisierten Schemas wird durch automatische
Ableitung aus einem konzeptuellen Datenmodell gestützt
Entity-Relationship-Modell (ERM)
Klassendiagramm der Unified Modeling Language (UML)
Eine Information, die an mehreren Stellen benötigt wird, soll nur einmal gespeichert werden. Dadurch müssen auch sämtliche Änderungen, die solche Informationen betreffen, nur an einer Stelle erledigt werden.
Im Beispiel waren das u. a. die Angaben zum Fahrzeughalter und zum Sachbearbeiter (mit seinen Telefonnummern), die bei jedem Vertrag angegeben werden.
Die Zusammenfassung gleichartiger Informationen ist nicht sehr übersichtlich. Im vorigen Kapitel waren zunächst Festnetz- und Mobil-Rufnummer in einer Spalte untergebracht. Das ist praktisch, wenn man sich keine Gedanken darüber machen will, welche und wie viele Kontaktnummern es gibt. Es ist ziemlich unpraktisch, wenn man gezielt einzelne Nummern suchen will oder von einer Nummer auf den Sachbearbeiter schließen will. Sinnvoller ist es, Festnetz- und Mobilnummer in getrennten Spalten zu speichern.
Jeder Datensatz muss eindeutig identifiziert werden, damit die Informationen verwendet werden können.
In der ungenügenden Tabelle wurde wegen der Zeilennummern darauf verzichtet. Aber selbst wenn man die Suche in zigtausend Zeilen für machbar hielte, spätestens bei der Aufteilung in mehrere Tabellen braucht man Werte, um die Zusammenhänge eindeutig darzustellen.