Skript Datenbanken I - Praktische Informatik Universität Kassel
Skript Datenbanken I - Praktische Informatik Universität Kassel
Skript Datenbanken I - Praktische Informatik Universität Kassel
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Kapitel 5 – Entwurf relationaler <strong>Datenbanken</strong> 117<br />
Übung 5–12<br />
Zeigen Sie, daß sich F + im Beispiel oben mit den hier genannten Axiomen<br />
und Regeln herleiten läßt!<br />
Der wesentliche Nutzen von F + ist, daß damit die Äquivalenz von<br />
Abhängigkeitsmengen F und G definiert werden kann:<br />
F und G sind äquivalent gdw. F + = G + .<br />
Damit lassen sich wiederum für ein Relationenschema R gewisse kanonische<br />
Abhängigkeitsmengen angeben, speziell die minimale Hülle, die z.B.<br />
die Eigenschaft hat, daß auf den rechten Seiten der Abhängigkeiten nur<br />
einzelne Attribute auftreten, links keine überflüssigen Attribute genannt<br />
werden und daß sie für jedes F existiert, allerdings nicht notwendigerweise<br />
eindeutig.<br />
5.4 Verlustfreie und abhängigkeitserhaltende<br />
Aufteilungen<br />
Die Aufteilung eines Relationenschemas R in Teilschemata R 1 , R 2 , ..., R n<br />
mit R = R 1 � R 2 � ... � R n entspricht einer Projektion r i = � Ri (r). Das Wiederzusammensetzen<br />
damit einem natürlichen Join über alle r i . Dabei enthält<br />
der Join über alle Teilrelationen immer mindestens alle Tupel aus der<br />
ursprünglichen Relation r, d.h. der „Verlust an Information“ besteht darin,<br />
daß zu viele Tupel aufgeführt werden (vgl. den Join von FN und NT<br />
oben).<br />
Für gegebene Menge F von Abhängigkeiten nennen wir eine Aufteilung<br />
{R 1 , R 2 , ..., R n } eines Schemas R verlustfrei (lossless-join partition)<br />
wenn für alle unter F legalen Relationen r(R) gilt<br />
r = � Ri (r) für i = 1, ..., n<br />
Eine solche Aufteilung ist immer möglich, auch bei BCNF Teilschemata.<br />
Ob die Aufteilung einen verlustfreien Join ermöglicht, läßt sich auch<br />
leicht prüfen, sofern man F + bereits hat (aufwendig!): eine Aufteilung von<br />
R in R 1 und R 2 erlaubt einen verlustfreien Join wenn wenigstens eine der<br />
beiden Abhängigkeiten