2.6) Normalformen

Die Kriterien eines guten Datenbankentwurfs sind einerseits möglichst geringe Redundanz und andererseits von Einfügen, Lösch- und Änderungsanomalien abhängig. Um Redundanzen und Anomalien zu vermeiden, führen wir den Begriff Normalform ein, der uns hilft unerwünschte Eigenschaften der Datenbank zu vermeiden.

1. Normalform (1NF)

Ein Relationenschema R ist in 1NF wenn der Wertebereich aller Attribute von R atomar sind. D.h. wenn keine mehrwertigen Attribute vorkommen.

Beispiel - CD Lieder

CD_IDNameTitelliste
4711All That You Can Leave Behind (U2)Beautiful Day, Walk On, Kite, Wild Honey
4712Tattou You (Rolling Stones)Start Me Up, Hang Fire, Slave

Fehler/Problem

→ Das Relationenschema ist nicht in 1. Normalform!

Lösung 1NF

CD_IDAlbumInterpretTitelliste
4711All That You Can Leave BehindU2Beautiful Day
4711All That You Can Leave BehindU2Walk On
4711All That You Can Leave BehindU2Kite
4711All That You Can Leave BehindU2Wild Honey
4712Tattoo YouRolling StonesStart Me Up
4712Tattoo YouRolling StonesHang Fire
4712Tattoo YouRolling StonesSlave

2. Normalform (2NF)

Ein Relationenschema R ist in zweiter Normalform, wenn es in 1NF ist, und jedes Nicht-Schlüsselfeld vom ganzen Primärschlüssel (der auch aus mehreren Feldern bestehen kann) abhängig ist.
Wichtig ist, dass Datenfelder nicht nur von einem Teilschlüsselfeld, sondern vom gesamten Schlüssel funktional abhängig sind.

Jedes Tupel muss immer vom gesamten Schlüssel abhängen, sonst ist es nicht in 2. Normalform!

Beispiel 1

Gegeben ist folgende Tabelle:

CD_IDAlbumInterpretTrackTitel
4711All That You Can Leave BehindU21Beautiful Day
4711All That You Can Leave BehindU22Walk On
4711All That You Can Leave BehindU23Kite
4712Tattoo YouRolling Stones1Start Me Up
4712Tattoo YouRolling Stones2Hang Fire

Problem

z.B.: Durch ein Update des Albums kommt es zu einer Dateninkonsistenz

CD_IDAlbumInterpretTrackTitel
4711All That You Can Leave BehindU21Beautiful Day
4711All That You Can Leave BehindU22Walk On
4711All That You Can Leave BehindU23Kite
4712Sticky FingersRolling Stones1Start Me Up
4712Tattoo YouRolling Stones2Hang Fire

Lösung 2NF

CD_IDAlbumInterpret
4711All That You Can Leave BehindU2
4712Tattoo YouRolling Stones
CD_IDTrackTitel
47111Beautiful Day
47112Walk On
47113Kite
47121Start Me Up
47122Hang Fire

Beispiel 2

PLZNachnameOrtGeburtsdatum
3300MusterAmstetten03.05.2003
3300MaierAmstetten05.06.2002
3304WimmerSt. Georgen03.05.2003

Problem: Der Ort hängt nicht vom gesamten Schlüssel (PLZ,Nachname) ab, sondern nur von einem Teil des Primärschlüssels (PLZ)!

3. Normalform (3NF)

Ein Relationenschema R ist genau dann in 3NF, wenn es die 1NF und die 2NF erfüllt, und wenn kein nicht primes Attribut von einem Schlüssel in R transitiv abhängt.

Transitivitätsregel K→X, X→A : K→A

Beispiel 1

Gegeben sei eine Tabelle mit folgenden Feldern:

_CD_ID_AlbumInterpretBand-Gründungsjahr
4711All That You Can Leave BehindU21976
4712Sticky FingersRolling Stones1962
4713Tattou YouRolling Stones1962

Offensichtlich lässt sich der Interpret einer CD aus der CD_ID bestimmen. Das Band-Gründungsjahr der Band hängt dagegen vom Interpret und damit nur !!transitiv!! von der CD_ID ab.

Problem

Auch hier besteht eine Datenredundanz, wodurch Inkonsistenzen beim Ändern auftreten können.

_CD_ID_AlbumInterpretBand-Gründungsjahr
4711All That You Can Leave BehindU21976
4712Sticky FingersRolling Stones1972
4713Tattou YouRolling Stones1962

Lösung

_CD_ID_AlbumInterpret
4711All That You Can Leave BehindU2
4712Sticky FingersRolling Stones
4713Tattou YouRolling Stones
_Interpret_Band-Gründungsjahr
U21976
Rolling Stones1962

Beispiel 2

_ID_PLZNachnameOrtGeburtsdatum
13300MusterAmstetten03.05.2003
23300MaierAmstetten05.06.2002
33304WimmerSt. Georgen03.05.2003

Problem: Der Ort ist eigentlich von der PLZ abhängig

Lösung

Zwei Tabellen:

PLZOrt
3300Amstetten
3304St. Georgen
_ID_PLZNachnameGeburtsdatum
13300Muster03.05.2003
23300Maier05.06.2002
33304Wimmer03.05.2003