Databases Reference
In-Depth Information
hätten. Weil T aus nur endlich vielen Attributen besteht, ist dieses Ziel irgend-
wann erreicht. Überschüssige funktionale Abhängigkeiten haben wir nicht elimi-
niert, sondern in neue Relationentypen ausgelagert.
Hinweis
Jeder Relationentyp kann ohne Verluste in die 2. Normalform über-
führt werden.
Wir betrachten ein weiteres Beispiel. Ein Online-Kaufhaus verwaltet seine Bestel-
lungen mit Hilfe von Tabellen, die dem folgenden Relationentyp entsprechen:
bestellungen( id , position , artikel, menge, bestellt, bezahlt, preis)
Jede Bestellung enthält einen Identifikator sowie für jeden Artikel der Bestellung
eine Positionsnummer. Dabei werden der Name des Artikels und die Bestellmen-
ge für diesen Artikel festgehalten. Mit den übrigen Attributen wird beschrieben,
was die Bestellung kostet, wann sie aufgegeben und wann sie bezahlt wurde. Eine
Relation mit Beispieldaten finden Sie in Tabelle 8.9.
Tabelle 8.9: Beispiel zum Relationentyp bestellungen
id
pos
artikel
menge
bestellt
bezahlt
preis
4711
1
USB-Grill
1
11.11.
12.11.
42.23
4711
2
Goldbarren Türstopper
1
11.11.
12.11.
42.23
4711
3
Bluetooth Feuerzeug
2
11.11.
12.11.
42.23
4712
1
Fliegender Wecker
3
24.12.
31.12.
23.42
Wir sehen, dass hier die volle Abhängigkeit ( id )!( preis ) gilt. Schließlich wird
eine Bestellung insgesamt und nicht artikelweise bezahlt. Der Typ bestellungen ge-
nügt also nicht der 2. Normalform.
Im Folgenden normalisieren wir bestellungen: Weil ( id )!( preis ) bereits eine volle
Abhängigkeit ist, müssen wir die Determinante nicht reduzieren. Die rechte Seite
können wir noch um die Attribute bestellt und bezahlt erweitern, da diese beiden
Attribute sich auch auf die Gesamtbestellung und nicht auf einzelne Artikel be-
ziehen. Es ergibt sich id !(bestellt, bezahlt, preis)und somit die Zerlegung
bestellungen_detail( id , position , artikel, menge)
bestellungen_neu( id bestellt, bezahlt, preis)
Der Typ bestellungen_detail ist der „Rest“, der von bestellungen nach der Auslage-
rung einzelner Attribute in bestellungen_neu übrig geblieben ist. Die Primärschlüs-
sel sind markiert; das Attribut id ist in bestellungen_detail Fremdschlüssel für bestel-
lungen_neu. Eine kurze Prüfung zeigt, dass beide Relationentypen der 2. Normal-
form genügen.
 
Search WWH ::




Custom Search