1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (2|8)

7
Relationentheorie AIFB SS2001 1 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (2| 8) (2)Synthese Ausgangspunkt: Menge U von Attributen Menge F von fA‘s Prinzipielle Vorgehensweise: Schrittweises Zusammenfassen von Attributen und fA‘s zu Relationsschemata unter Berücksichtigung der 3NF-Eigenschaft.

description

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (2|8). Synthese Ausgangspunkt: Menge U von Attributen Menge F von fA‘s. Prinzipielle Vorgehensweise : Schrittweises Zusammenfassen von Attributen und fA‘s zu Relationsschemata unter Berücksichtigung der 3NF-Eigenschaft. - PowerPoint PPT Presentation

Transcript of 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (2|8)

Page 1: 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata   (2|8)

Rel

atio

nent

heor

ie

A

IFB

S

S20

01

1

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (2|8)

(2) Synthese

Ausgangspunkt: Menge U von Attributen Menge F von fA‘s

Prinzipielle Vorgehensweise:

Schrittweises Zusammenfassen von Attributen und fA‘s zu Relationsschemata unter Berücksichtigung der 3NF-Eigenschaft.

Page 2: 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata   (2|8)

Rel

atio

nent

heor

ie

A

IFB

S

S20

01

2

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (3|8)

• Dieser erzeugt 3NF-Relationen (sogar BCNF).

• Bei großem F aufwendig, da redundante fA‘s entfernt werden müssen:

• „Membership-Problem“Geg.: G ( F+), g GFrage: g (G \ {g})+ ?

Hierzu mehrfach Berechnung von F+ bzw. andererMengen von fA’s notwendig.

Zur Synthese gibt es einen Algorithmus

„Synthese-Algorithmus“nach Bernstein 1976,

Biskup, Dayal, Bernstein 1979

Page 3: 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata   (2|8)

Rel

atio

nent

heor

ie

A

IFB

S

S20

01

3

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (4|8)

Synthesealgorithmus (grob)Gegeben: U, F (U); Relation r:(U | F); K (bel.) Schlüssel

[A] Wandle F um zu H mitH ~ F und H „möglichst einfach“:

H: L1 R1; L2 R2; ...; Lk Rk

o.B.d.A.: ij Li Lj; Li Ri = Ø (i, j = 1, ..., k)

[B] Mache aus jedem Li Ri eine Relation

ri :(LiRi | Li Ri) (i = 1, ..., k)

Ist (r1, r2, ..., rk ) eine Zerlegung von r? (vgl. 1.6.2, Def. S.2/7)

(Z1) Attribute: Es gilt i (LiRi) = U‘ U, aber ist möglich!

(1)(Z2) fA‘s: i {Li Ri} = H ~ F und somit F+, sogar H+ = F+. (2)

[C] falls i: Li U F+: (r1, r2, ..., rk ) (3)

falls nein: (r0, r1, r2, ..., rk ) mit r0:(K | Ø) (4)

ist verlustfreie fA-erhaltende Zerlegung von rin BCNF-Relationen

Page 4: 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata   (2|8)

Rel

atio

nent

heor

ie

A

IFB

S

S20

01

4

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (5|8)

(1) Sei S:= U \ U‘; dann gilt:

a S: a ist Attribut jedes Schlüssels in r!

(2) Falls „Zerlegung“ (s. (Z1)), dann fA-erhaltend!

(3) In diesem Fall kann es keine “isolierten“ Attribute a geben –

d.h. S = Ø! – somit „Zerlegung“.

(4) In diesem Fall sind alle isolierten Attribute in K –

d.h. S K! (wg. (1)) – somit wieder „Zerlegung“.

(3&4) In beiden Fällen:

Zerlegung enthält Schlüssel, somit verlustfrei!

Anmerkungen zu „Synthesealgorithmus (grob)“:

zurück

Page 5: 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata   (2|8)

Rel

atio

nent

heor

ie

A

IFB

S

S20

01

5

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (6|8)

[A] „Wandle F um zu H mit H ~ F und H ‚möglichst einfach‘ “:

1. Schritt: Mache alle f F einfach Ergebnis: F‘; F‘ ~ F

2. Schritt: Entferne überflüssige Attributeder linken Seiten der fA‘sErgebnis: G; G ~ F; alle f G sind elementar

3. Schritt: Finde nicht redundante Überdeckung in G,Ergebnis: H; H ~ G

Synthesalgorithmus (ausführlich):

Gegeben: U, F F(U); Relation r:(U | F); K (bel.) Schlüssel o.B.d.A.: F enthält keine trivialen fA‘s

Page 6: 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata   (2|8)

Rel

atio

nent

heor

ie

A

IFB

S

S20

01

6

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (7|8)

[B] Mache aus jedem Li Ri eine Relation ri :(LiRi | Li Ri)

4. Schritt: Fasse funktionale Abhängigkeiten mit gleicher linker Seite Li

zu einer Klasse zusammen. Ergebnis: Hi = {Li b | Li b H} (i =1, …, m)

Setze: Ri = {b | Li b Hi} (i =1, …, m)

5. Schritt: Konstruiere Relationsschemata: - := {ri: (Li Ri | Hi) | i =1, …, m}

(es gilt dabei natürlich auch: - := {ri: (Li Ri | Li Ri) | i =1, …, m} )

Page 7: 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata   (2|8)

Rel

atio

nent

heor

ie

A

IFB

S

S20

01

7

1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata 1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (8|8)

[C] 6. Schritt: Prüfe, ob irgendeine Attributmenge Li Ri

bereits einen Schlüssel von r enthält.

Falls Li U F+ für ein i, dann

:= -

sonst := - {r0 : (K | Ø)}

Ergebnis: ist

- Zerlegung von r

- verlustfrei

- fA-erhaltend

- in 3NF (sogar in BCNF).