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_ID_NameTitelliste
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

Lösung 1NF

_CD_ID_AlbumInterpretTitelliste
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
4712Tattou YouRolling StonesStart Me Up
4712Tattou YouRolling StonesHang Fire
4712Tattou YouRolling StonesSlave

2. Normalform (2NF)

Ein Attribut heißt Prim in einer Relation, wenn es mindestens in einem Schlüssel von R enthalten ist bzw. nicht prim, wenn es in keinem Schlüssel enthalten ist.
Ein Relationenschema R ist in zweiter Normalform, wenn es in 1NF und jedes nicht prime Attribut voll funktional von jedem Schlüssel von R abhängig ist, d.h. nur vom ganzen Schlüssel und nicht nur von einem Teil abhängig ist.

Beispiel

Gegeben ist folgende Tabelle:

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

Problem

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

_CD_ID_AlbumInterpret_Track_Titel
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
4712Tattou YouRolling Stones2Hang Fire

Lösung 2NF

_CD_ID_AlbumInterpret
4711All That You Can Leave BehindU2
4712Tattou YouRolling Stones
_CD_ID__Track_Titel
47111All That You Can Leave Behind
47112Walk On
47113Kite
47121Start Me Up
47122Hang Fire

3. Normalform (3NF)

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

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

Beispiel

Gegeben sei eine Tabelle mit folgenden Feldern:

_CD_ID_AlbumInterpretGrü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 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_AlbumInterpretGrü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_Gründungsjahr
U21976
Rolling Stones1962