Definition der 3. Normalform:
Eine Tabelle ist in 3. NF wenn sie
in der 2. NF vorliegt und
kein Nichtschlüssel-Attribut von einem anderen Nichtschlüssel-Attribut abhängig ist.
Anders formuliert: Man kann nicht von einer Spalte auf den Wert einer anderen Spalte schließen.
Dies geht nur vom PK aus.
Aufgabe 1
Eine Tabelle beinhaltet die Artikel in einer Produktdatenbank. Sie sollen diese in die 3. NF überführen.
ArtikelNr
Bezeichnung
HerstellerNr
Hersteller
4692
Putzeimer
5410
Blech-AG
0567
Waschbecken
5647
Keramik GmbH
5671
Gummi
6740
Baustoff KG
0579
Teller
5647
Keramik GmbH
8971
Tasse
5647
Keramik GmbH
5324
Badewanne
5647
Keramik GmbH
s. Video
Aufgabe 2
Überführen Sie folgende Tabelle in eine Datenbank in der 3. NF.
ISBN
Autor
Autor-Wohnort
Titel
3-446-16583-5
Hughes
New York?
Objektorientierten Datenbanken
3-446-15782-4
Schwinn
Da oder dort
Relationale Datenbanken
Die Tabelle ist nicht in der 3. NF, da man vom Autor auf den Wohnort schließen kann. Daher muss Autor und
Wohnort in eine eigene Tabelle: Autor( id, Name, Wohnort ) Buch( ISBN, Titel, autor)
Aufgabe 3
Jemand Intelligentes behauptet, dass folgende Tabelle nicht in der 3. Normalform vorliegt:
ID
Band
Gründungsjahr
0
Beatles
1960
Gehen wir von der Annahme aus, dass jede Band einen eindeutigen und unterschiedlichen Namen besitzt. Liegt
dann
eine Verletzung der 3. NF vor?
Nehmen wir nun an, dass es Bands gibt die den gleichen Bandnamen besitzen (z.B. irgendwelche Hinterwäldler
oder
Lehrerbands). Liegt dann eine Verletzung der 3. NF vor?
In einer anderen Tabelle wird u.a. ID, Name, PLZ und Wohnort gespeichert. Die Frage ist nun die Abhängigkeit
zwischen PLZ und Wohnort. Was muss für PLZ und Wohnort gelten, dass die 3. NF nicht verletzt ist?
Wenn jeder Bandname eindeutig ist, kann man von der Band auf das Gründungsjahr schließen.
Hier müsste der Bandname dann Primärschlüssel sein und man verzichtet auf die Spalte ID. Im ABI wäre diese Tabelle aber ok, da man es da nicht so kleinlich sieht. Außerdem sind Integer
(wie ID) effizietere PS als Strings (wie Band).
Jetzt ist die Tabelle in der 3.NF, da der Rückschluss von Band auf Gründungsjahr nicht mehr geht.
Wenn zwei Bands gleich heißen gibt es ja unterschiedliche Gründungsjahre die möglich wären.
Man darf nicht von PLZ auf den Ort und nicht von dem Ort auf die PLZ schließen dürfen.
Beides ist gegeben, da die PLZ 89198 für Westerstetten und Vorderdenkental steht.
Und andersherum ist 89077 und 89075 beides Ulm.