Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundsätzliche Resultate Theorem: Für jeden Relationstyp R(A 1,...,A n ) und jede Menge von FDs über {A 1,...,A n } gibt es: –eine verlustlose (aber nicht.

Ähnliche Präsentationen


Präsentation zum Thema: "Grundsätzliche Resultate Theorem: Für jeden Relationstyp R(A 1,...,A n ) und jede Menge von FDs über {A 1,...,A n } gibt es: –eine verlustlose (aber nicht."—  Präsentation transkript:

1 Grundsätzliche Resultate Theorem: Für jeden Relationstyp R(A 1,...,A n ) und jede Menge von FDs über {A 1,...,A n } gibt es: –eine verlustlose (aber nicht notwendig abhängigkeitsbewahrende) Zerlegung in eine Menge von Relationstypen in BCNF, –eine verlustlose und abhängigkeitsbewahrende Zerlegung in eine Menge von Relationstypen in 3. Normalform, –polynomiale Algorithmen, die diese Zerlegungen finden. Wenn auch MVDs enthält, lässt sich eine verlustlose Zerlegung in Relationstypen in 4. Normalform finden.

2 Algorithmus zur Zerlegung in 3NF (1) In der Praxis zerlegt man normalerweise in 3. Normalform. Man kann zeigen, dass Bedingung r = Attribute(R 1 ) (r)... Attribute(R k ) (r) gilt für alle Instanzen r von R, die Abhängigkeiten in erfüllen, genau dann erfüllt ist, wenn die für die Verbindung maßgeblichen (d.h. abzugleichenden) Attribute jeder Teilrelation R i einen Schlüssel von R i gemäß i darstellen.

3 Algorithmus zur Zerlegung in 3NF (2) // Eingabe: Relationstyp R und Menge von FDs // c sei kanonische Überdeckung von, // in der FDs absteigend nach Anzahl der Attribute sortiert sind (wichtig) // Idee: bilde separaten Relationstyp R i (X,Y) für jede FD X Y in c, // sofern X Y nicht bereits durch anderen Relationstyp R j abgedeckt ist i := 0 for each (X Y) c do if j: 1 j i (X Y) Attribute(R j ) then begin j := j {X Y} end else begin i := i +1; R i := (X Y); i := {X Y} end end if end for // Relationstyp für Schlüssel von R bilden, falls noch nicht abgedeckt if 1 j i: Attribute(R j ) sind nicht Superschlüssel von R then begin i := i +1; R i := irgendein Schlüssel von R; i := end end if

4 Algorithmus zur Zerlegung in 3NF (3) Gewonnene Zerlegung ist i.A. nicht eindeutig, da Wahlfreiheit bzgl. Bildung und Sortierung der kanonischen Überdeckung und Auswahl des Schlüssels im Abschlussschritt besteht.

5 4NF-Zerlegung Vorgestellter Zerlegungsalgorithmus berücksichtigt nur FDs, da bei MVDs i.A. keine abhängigkeitsbewahrende Zerlegung in 4. Normalform möglich ist. Verlustlose Zerlegung eines Relationstyps R, der nicht in 4. Normalform ist, ist jedoch leicht möglich: –Sei X Y nichtreflexive MVD, in der X nicht Superschlüssel ist. –Setze Z := {A 1,...,A n } \ (X Y). Dann gilt XZ {A 1,...,A n } XY. –Zerlege R in Relationstypen R 1 (X,Y) und R 2 (X,Z). –MVD X Y besagt gerade, dass jede Instanz von R sich durch natürliche Verbindung ihrer Projektionen auf XY bzw. XZ rekonstruieren lässt, Zerlegung also verlustlos ist. Anschließend ggf. weitere Zerlegung der Teilrelationen.

6 Inklusionsabhängigkeiten Zerlegung gibt i.A. Anlass zu Fremdschlüsselbedingungen, z.B. Fremdschlüssel {flugNr} und {ticketNr} in BUCHUNG. Allgemeine Form solcher Bedingungen sind sogenannte Inklusionsabhängigkeiten (kurz: IDs): –Sind R 1, R 2 Relationstypen und X Attribute(R 1 ), Y Attribute(R 2 ) Listen von Attributen mit kompatiblen Domänen, so ist ID Ausdruck der Form R 1.X R 2.Y. –Instanzen r 1, r 2 von R 1, R 2 erfüllen R 1.X R 2.Y, wenn X (r 1 ) Y (r 2 ).


Herunterladen ppt "Grundsätzliche Resultate Theorem: Für jeden Relationstyp R(A 1,...,A n ) und jede Menge von FDs über {A 1,...,A n } gibt es: –eine verlustlose (aber nicht."

Ähnliche Präsentationen


Google-Anzeigen