Databases Reference
In-Depth Information
verkauf_01 , verkauf_02 , ... , verkauf_12 oder in Kenntnis, dass eine Buslinie höchs-
tens 25 Stationen haben kann, stop_01 , ..., stop_25 ). Dieses ist zwar prinzipiell
möglich - Programmierer, die gewohnt sind, solche Sachverhalte über Arrays
auszudrücken, halten sicher solche Darstellungen auch für »natürlich«. Dennoch
ist zu sagen, dass so eine Darstellung in der konkreten Anwendung zu großen
Problemen führt. Eine Abfrage der Form » Welche Buslinien halten am Hauptbahn-
hof? « wäre zu formulieren als: » Für welche Buslinie ist stop_01 = 'Hauptbahnhof' oder
stop_02 = 'Hauptbahnhof' oder ... stop_25 = 'Hauptbahnhof '? « (alle 25 stop_nn
ausschreiben!). Die Abfrage » Gibt es eine Umsteigemöglichkeit von Linie 1 zu Linie
2? « führt sogar zu einer Abfrage mit 25 * 25 = 625 Termen: » Linie_1.stop_01
= Linie_2.stop_01 oder Linie_1.stop_01 = Linie_2.stop_02 ... Linie_1.stop_25
= Linie_2.stop_24 oder Linie_1.stop_25 = Linie_2.stop_25 «.
Eine Normalisierung führt hier etwa zu folgendem Relationenschema:
Linie (linien_nr, gesellschaft, ...)
Station (linien_nr, stop, km_von_start, ...)
Die Abfrage nach den Umsteigemöglichkeiten von Linie 1 auf Linie 2 ist in der
Relationenalgebra (vgl. Kapitel 2.4) durch » Suche alle Paare von Tupeln [t1,t2] von
Stationen mit t1.Linien_nr = 1 und t2.Linien_nr = 2 und t1.stop = t2.stop « lösbar -
wenn diese Abfrage mindestens ein Ergebnis enthält, gibt es eine Umsteigemög-
lichkeit.
Hinweis
Die weiteren Normalformen setzen grundsätzlich die erste Normalform voraus, ohne
dass das im Folgenden jeweils explizit gesagt wird.
Einige Eigenschaften von funktionalen Abhängigkeiten
Wie wir oben gesehen haben, müssen wir bei der Festlegung von funktionalen
Abhängigkeiten auf der linken Seite grundsätzlich auch Mengen mit mehr als
einem Attribut zulassen. Auf der rechten Seite dagegen können wir uns grund-
sätzlich auf einelementige Mengen beschränken, denn aus der Definition der funk-
tionalen Abhängigkeit folgt unmittelbar folgende Aussage:
Eine funktionale Abhängigkeit A
B gilt genau dann,
wenn für alle Attribute b
B A
{b} gilt .
Im Zusammenhang mit Schlüsseln müssen wir folgende Aussagen beachten
(wobei die erste Aussage ein Spezialfall der zweiten Aussage ist):
Wenn S ein Schlüssel ist,
dann gilt S
B für jede beliebige Attributmenge B
Wenn S' eine Obermenge eines Schlüssels ist,
dann gilt S'
B für jede beliebige Attributmenge B
 
Search WWH ::




Custom Search