Home - Datenbank Theorie - Datenbank Design www.sqldocu.com
zurück vor



Normalform





Beschreibung
top
Wird eine Tabelle "normalisiert", so ändert man ihre "Form". Eventuell wird der Inhalt auf mehrere Tabellen verteilt, ein Attribut wird in eine andere Tabelle verschoben... Durch das überführen von Tabellen in eine Normalform kommt man den Zielen des Datenbank Designs näher (Vermeidung von Redundanz, einfache Wartbarkeit..) Man unterscheidet 1. Normalform, 2. Normalform, 3. Normalform, 4. Normalform 5. Normalform. Wir gehen auf die erste, zweite und dritte Normalform ein, da die vierte und fünfte Normalform keine grosse Bedeutung im praktischen Umgang mit DBS besitzen (was für Theoretiker und Akademiker).
Die Normalform leitet sich vom Relationenmodell ab, auf dem SQL aufbaut.




1. Normalform
top
Definition: Ein Relation ist in der 1. Normalform, wenn alle Attribute maximal einen Wert besitzen. Das Nichtvorhandensein von Daten ist zulässig.

Ein Beispiel - Name der Relation: DienstNummer (nicht in 1.Normalform)
Dienstnummer Name Auszeichnung DatumAusz
1 Captain Kirk Auszeichnung A 26.03.2056
Auszeichnung B 22.07.2057
Auszeichnung C 05.02.2058
4 Mr.Spock Auszeichnung M1 09.08.2052
Auszeichnung M2 14.02.2054

Hier besitzen die Attribute "Auszeichung" und "DatumAusz" mehrere Werte. Es kommt zu sogenannten Wiederholungsgruppen, die in der 1. Normalform nicht zulässig sind.
Um diese Relation in die 1. Normalform zu bringen, müssen die Attribute "Auszeichung" und "DatumAusz" in eine neue Relation verschoben werden.

Ergebnis: Relationen befinden sich bereits in 1. Normalform
Name der Relation: DienstNummer
DienstNummer Name
1 Captain Kirk
4 Mr.Spock
Name der Relation: Auszeichnung
Auszeichnung DatumAusz
Auszeichnung A 26.03.2056
Auszeichnung B 22.07.2057
Auszeichnung C 05.02.2058
Auszeichnung M1 09.08.2052
Auszeichnung M2 14.02.2054

Jedoch ist die Zuordnung verloren gegangen, wem welche Auszeichnung gehört. Um dies Problem zu lösen wählen man als Primär Schlüssel das Attribut DienstNummer und fügen es der Relation Auszeichnung hinzu.
Ergebnis nach Normalisierung. Relationen befinden sich in 1. Normalform
Name der Relation: DienstNummer
DienstNummer Name
1 Captain Kirk
4 Mr.Spock
Name der Relation: Auszeichnung
DienstNummer Auszeichnung DatumAusz
1 Auszeichnung A 26.03.2056
1 Auszeichnung B 22.07.2057
1 Auszeichnung C 05.02.2058
4 Auszeichnung M1 09.08.2052
4 Auszeichnung M2 14.02.2054


Die 1. Normalform schliesst Redundanz nicht aus!




2. Normalform
top
Definition: Ein Relation ist in der 2. Normalform, wenn sie in der 1. Normalform ist und jedes Attribut vom gesamten Primärschlüssel abhängt.

Besitzt eine Relation in der 1. Normalform einen einfachen Primärschlüssel ist sie automatisch in der 2. Normalform.
Betrachten wir die Tabelle shuttle in der gespeichert wird, wer sich ein Shuttle ausgeliehen hat.
Zeit Datum ShuttleNr Farbe Person
18.56 05.03.2058 4 Grün Captain Kirk
19.08 06.03.2058 4 Grün Mr. Spock
18.56 05.03.2058 5 Silber Mr. Spock

Der Primär Schlüssel besteht aus den Attributen Zeit, Datum, ShuttleNr (da es mehrere Shuttles gibt, können sich zur gleichen Zeit mehrer Personen Shuttles ausleihen, wir brauchen somit Zeit, Datum und ShuttleNummer um festzustellen, wer das Shuttle geflogen hat).
Das Attribut Farbe hängt offensichtlich nur vom Attribut ShuttleNr ab. Somit befindet sich die Relation shuttle nicht in der 2. Normalform. Um die Relation in die 2. Normalform zu bringen, wird sie auf 2 Relationen aufgeteilt. Der Teilschlüssel von dem Attribut Farbe abhängt, wird Primärschlüssel der neu angelegten Relation.

Ergebnis: Relationen befinden sich in 2. Normalform
Name der Relation: shuttle
Zeit Datum ShuttleNr Person
18.56 05.03.2058 4 Captain Kirk
19.08 06.03.2058 4 Mr. Spock
18.56 05.03.2058 4 Mr. Spock
Name der Relation: farbe
ShuttleNr Farbe
4 Grün
5 Silber





3. Normalform
top
Definition: Ein Relation ist in der 3. Normalform, wenn alle Attribut, die nicht zum Primärschlüssel gehören, funktional unabhängig sind.

Attribut B ist von Attribute A funktional abhängig, wenn für den gleichen Wert von A immer der gleich Wert für B auftritt.

Relation einsatz hat einen einfachen Primärschlüssel (EinsatzNr) und ist somit in der 2. Normalform.
Name der Relation: einsatz
EinsatzNr RaumschiffNr RaumschiffName
1 NCC-1701 U.S.S. Enterprise
2 NCC-1974 U.S.S. Constellation
3 NCC-1701 U.S.S. Enterprise
4 NCC-2893 U.S.S. Stargazer

Es besteht offensichtlich eine funktionale Abhängigkeit zwischen den Attributen RaumschiffNr und RaumschiffName. Nach NCC-1701 folgt im Attribut RaumschiffName immer der Wert U.S.S. Enterprise. Um die 3. Normalform zu erreichen wird Tabelle einsatz auf 2 Tabellen verteilt. Ergebnis: Relationen befinden sich in 3. Normalform
Name der Relation: einsatz
EinsatzNr RaumschiffNr
1 NCC-1701
2 NCC-1974
3 NCC-1701
4 NCC-2893
Name der Relation: raumschiff
RaumschiffNr RaumschiffName
NCC-1701 U.S.S. Enterprise
NCC-1974 U.S.S. Constellation
NCC-2893 U.S.S. Stargazer




top