246
Vorlesung Datenbanken Wintersemester 2013/14 3 Datenbankentwurf im Relationenmodell Entwicklung formaler Kriterien, warum eine Gruppierung von Attributen in Relationen besser oder schlechter ist als eine andere. Gesichtspunkte: logische Ebene: wie gut interpretiert der Benutzer die Relationenschemata und ihre Attribute, Zugriffs–/Speicherungs–Ebene: wie gut sind die Tupel der Basisrelationen abgespeichert/zugreifbar/änderbar. Zur Beurteilung einzelner Schemata werden funktionale Abhängigkeiten und Normalformen verwendet. Zur Beurteilung einer ganzen Menge von Relationenschemata, d.h. von Datenbankschemata, verwendet man die verlustfreie Verbund –Eigenschaft und die Abhängigkeits–Erhaltungs–Eigenschaft. Prof. Dr. Dietmar Seipel 194

3 Datenbankentwurf im Relationenmodell

  • Upload
    ledung

  • View
    219

  • Download
    1

Embed Size (px)

Citation preview

Vorlesung Datenbanken Wintersemester 2013/14

3 Datenbankentwurf im Relationenmodell

Entwicklung formaler Kriterien, warum eineGruppierung von Attributen in

Relationenbesser oder schlechter ist als eine andere. Gesichtspunkte:

• logische Ebene: wie gut interpretiert der Benutzer die

Relationenschemata und ihre Attribute,

• Zugriffs–/Speicherungs–Ebene: wie gut sind die Tupel der

Basisrelationen abgespeichert/zugreifbar/änderbar.

Zur Beurteilung einzelner Schemata werdenfunktionale Abhängigkeitenund

Normalformenverwendet.

Zur Beurteilung einer ganzen Menge von Relationenschemata, d.h. von

Datenbankschemata, verwendet man dieverlustfreie Verbund–Eigenschaft

und dieAbhängigkeits–Erhaltungs–Eigenschaft.

Prof. Dr. Dietmar Seipel 194

Vorlesung Datenbanken Wintersemester 2013/14

3.1 Informelle Design–Richtlinien und Update–Anomalien

Richtlinie 1: Semantik der Attribute eines Relationenschemas

Entwerfe ein Relationenschema so, daß seine Bedeutung leicht zu

erklären ist. Es soll einen einfachen Bezug zwischen den Attributen

geben: mische nicht Attribute von unterschiedlichen Entity– oder

Relationship–Typen in einem einzelnen Schema.

Richtlinie 2: Vermeidung von Redundanz und von Update–Anomalien

Entwerfe die Basisrelationenschemata so, daß keine Einfüge–,

Lösch– oder Modifikationsanomalien auftreten. Unvermeidbare

Anomalien sollen gut dokumentiert werden.

Die Vermeidung von Redundanz führt auch zur Minimierung des

Speicherplatzbedarfs für die Basisrelationen.

Prof. Dr. Dietmar Seipel 195

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Lieferant)L: Lieferant, T: Teil, A: Anzahl, O: Ort, K: Entfernung

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 200 London 600

L1 T5 100 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 400 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

L1

L2

L3

L4

T1

T2

T3

T4

T5

T6

Prof. Dr. Dietmar Seipel 196

Vorlesung Datenbanken Wintersemester 2013/14

Die Tabelle repräsentiert drei Beziehungen:

LTA: zu einem Lieferanten/Teile–Paar wird die gelieferte Teileanzahl

angegeben,

LO : zu jedem Lieferanten wird sein Standort angegeben,

OK : zu jedem Ort wird die Entfernung (in km) angegeben.

Die LO– und dieOK–Beziehung sind hochgradigredundantgespeichert.

Hier tretenUpdate–Anomalienauf:

1. beim Einfügen partieller Tupel zuLTA entstehen Nullwerte,

2. beim Löschen des letzten Eintrages eines Lieferanten geht die

LO–Beziehung verloren,

3. beim Ändern des Ortes zu einem Lieferanten (Umzug) müssenmehrere

Tupel geändert werden.

Prof. Dr. Dietmar Seipel 197

Vorlesung Datenbanken Wintersemester 2013/14

Performance:

Manchmal muß man aus Performance–Gründen gegen einzelne Richtlinien

verstoßen, um gewisse Anfragen effizient beantworten zu können. Im

allgemeinen sollte man Anomalien aber vermeiden.

Views:

Man sollte Views verwenden, welche mit Hilfe von Joins die gewünschten

Attributkombinationen aus verschiedenen Basisrelationen erstellen; diese

können dann auch als Module für komplexe Anfragen verwendetwerden.

Dies bringt Übersichtlichkeit und oft auch einen Performance–Gewinn.

Prof. Dr. Dietmar Seipel 198

Vorlesung Datenbanken Wintersemester 2013/14

Richtlinie 3: Nullwerte

Vermeide weitestgehend Attribute in Relationen, falls die

zugehörigen Attributwerte NULL sein könnten.

Falls eine große Anzahl der Attribute eines Relationenschemas auf viele

Tupel der zugehörigen Relation nicht anwendbar sind, so treten viele

Nullwertein der Relation auf. Konsequenzen:

• Verschwendung von Speicherplatz

• Joins und Aggregatsfunktionen über Nullwerten sind problematisch

• unterschiedliche Interpretationen für Nullwerte:

– das Attribut ist auf das Tupelnicht anwendbar

– der Attributwert ist für das Tupelunbekannt, oder

er ist zwarbekannt, aber nicht eingegeben

Prof. Dr. Dietmar Seipel 199

Vorlesung Datenbanken Wintersemester 2013/14

Richtlinie 4: Überflüssige Tupel

Entwerfe die Relationenschemata so, daß sie mit Hilfe von Joins

(über gleiche Attributwerte) korrekte Sichten auf die Daten liefern.

Dies ist z.B. gewährleistet, falls die Join–Attribute Schlüssel

(Fremdschlüssel) sind.

Falls eine Relationr als ihreProjektionenπU1(r), . . . , πUk

(r) auf mehrere

Attributmengen repräsentiert wird, so gilt für deren Natural Join generell

r ⊆ πU1(r) ⊲⊳ . . . ⊲⊳ πUk

(r).

Es können im Natural Joinüberflüssige Tupelauftreten, welche nicht inr

enthalten waren. Gewünscht wäre aber die Gleichheit der beiden Ausdrücke.

Natural Join: def (ri) = Ui

r1 ⊲⊳ r2 = { t | def (t) = U1 ∪ U2 ∧ t[U1] ∈ r1 ∧ t[U2] ∈ r2 }.

Prof. Dr. Dietmar Seipel 200

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Überflüssige Tupel)

1. Für die folgende Relationr und die Projektionenr1 = πAB(r) und

r2 = πBC(r) gilt r ( πAB(r) ⊲⊳ πBC(r).

r

A B C

1 3 2

2 3 1

r1

A B

1 3

2 3

r2

B C

3 2

3 1

r1 ⊲⊳ r2

A B C

1 3 1

1 3 2

2 3 1

2 3 2

Hier istU1 = {A,B} undU2 = {B,C}.

Prof. Dr. Dietmar Seipel 201

Vorlesung Datenbanken Wintersemester 2013/14

2. Für dieselbe Relationr und die Projektionenr1 = πAB(r) und

r2 = πBC(r) gilt dagegenr = πAB(r) ⊲⊳ πAC(r).

r = r1 ⊲⊳ r2

A B C

1 3 2

2 3 1

r1

A B

1 3

2 3

r2

A C

1 2

2 1

Hier istU1 = {A,B} undU2 = {A,C}.

Prof. Dr. Dietmar Seipel 202

Vorlesung Datenbanken Wintersemester 2013/14

3. Für die Lieferantenrelation gilt ebenfalls

r = πLTA(r) ⊲⊳ πLO(r) ⊲⊳ πOK(r).

r = r1 ⊲⊳ r2 ⊲⊳ r3

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 200 London 600

L1 T5 100 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 400 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

r1 = ΠLTA(r)

L T A

L1 T1 300

L1 T2 200

L1 T3 400

L1 T4 200

L1 T5 100

L1 T6 100

L2 T1 300

L2 T2 400

L3 T2 200

L4 T2 200

L4 T4 300

L4 T5 400

r2 = ΠLO(r)

L O

L1 London

L2 Paris

L3 Paris

L4 Brüssel

r3 = ΠOK (r)

O K

London 600

Paris 450

Brüssel 150

Prof. Dr. Dietmar Seipel 203

Vorlesung Datenbanken Wintersemester 2013/14

3.2 Funktionale Abhängigkeiten

Funktionale Abhängigkeiten sind intra–relationale Bedingungen für

Relationenr über einer AttributmengeU . Sie verallgemeinern den

klassischen Schlüsselbegriff.

1. Einefunktionale Abhängigkeit(engl.: functional dependency, fd)

ist gegeben durchX → Y mit X, Y ⊆ U . Sie gilt inr, falls

∀ t1, t2 ∈ r : t1[X ] = t2[X ] ⇒ t1[Y ] = t2[Y ].

Y (rechte Seite) heißt dann funktional abhängig vonX (linke Seite),

und man sagtX geht nachY .

2. Eine fdX → Y heißttrivial , fallsY ⊆ X ; sie gilt in allen Relationen.

FallsX → Y gilt, so definiert die ProjektionΠXY (r) von r eine (partielle)

Funktion, nach der dieY –Werte von denX–Werten abhängen.

Prof. Dr. Dietmar Seipel 204

Vorlesung Datenbanken Wintersemester 2013/14

Die fd X → Y besagt:

∀ t1, t2 ∈ r : t1[X ] = t2[X ] ⇒ t1[Y ] = t2[Y ];

wenn zwei Tupelt1, t2 ∈ r aufX übereinstimmen, dann müssen sie auch auf

Y übereinstimmen.

t1

t2

. . . X . . . Y . . .

. . . . . .

. . . t1[X] . . . t1[Y ] . . .

. . . . . .

. . . t2[X] . . . t2[Y ] . . .

. . . . . .

FallsY = U ist, so bedeutet das, daß die beiden Tupel gleich sind.

Dann gibt es keine unterschiedlichen Tupel, die aufX übereinstimmen.

Prof. Dr. Dietmar Seipel 205

Vorlesung Datenbanken Wintersemester 2013/14

1. EinRelationenschemaR = (U, F ) ist gegeben durch

• eine AttributmengeU und

• eine MengeF von Integritätsbedingungen.

2. Eine Relationr überU , welche alle Integritätsbedingungen ausF

erfüllt, heißt erlaubteInstanzvonR.

Man kann die bekannteSchlüsseleigenschafteiner AttributmengeK als

funktionale AbhängigkeitK → U ausdrücken:

t1[K] = t2[K] ⇒ t1 = t2 ⇒ t1[U ] = t2[U ].

Also wird die bisherige Definition eines Relationenschemasals

R = (U,K,NOTNULL)

mit Ausnahme derNOTNULL–Attribute – die uns in diesem

Zusammenhang nicht interessieren – von der neuen Definitionsubsumiert.

Prof. Dr. Dietmar Seipel 206

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Lieferant)

Wir betrachten das RelationenschemaR = (U, F ) mit

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K }.

L: Lieferant, T: Teil, A: Anzahl,

O: Ort, K: Entfernung

• Die bereits bekannte Relationr

ist eine erlaubte Instanz vonR.

• In r gilt – neben den funktionalen

Abhängigkeiten ausF – auchL → K.

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 200 London 600

L1 T5 100 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 400 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

Die Redundanz und die daraus folgenden Update–Anomalien liegen offenbar

an den funktionalen AbhängigkeitenL → O undO → K.

Prof. Dr. Dietmar Seipel 207

Vorlesung Datenbanken Wintersemester 2013/14

Die fd LT → A stellt dagegen kein Problem dar, denn die Beziehung

zwischenLT–Paaren und dem geliefertenA ist nicht redundant gespeichert.

In r gilt sogarLT → U , dennLT ist ein Schlüssel: es gibt keine zwei

unterschiedlichen Tupel, die aufLT übereinstimmen.

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 200 London 600

L1 T5 100 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 400 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

Prof. Dr. Dietmar Seipel 208

Vorlesung Datenbanken Wintersemester 2013/14

In r gilt auch die fdL → K:

t1

t2

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 200 London 600

L1 T5 100 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 400 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

L → K folgt ausL → O undO → K (Transitivität):

Wenn zwei Tupelt1 undt2 aufL übereinstimmen, dann müssen sie wegen

L → O auch aufO übereinstimmen und somit wegenO → K aufK.

Prof. Dr. Dietmar Seipel 209

Vorlesung Datenbanken Wintersemester 2013/14

• Die partielle Funktion fürO → K ist gegeben durch die Projektion

ΠOK(r) von r (Funktionsgraph):

O K

London 600

Paris 450

Brüssel 150

y = x2:

x y

1 1

2 4

3 9

6

-

Die Funktion ist partiell, da sie z.B. für die Stadt “Berlin”nicht definiert

ist.

• Die fd T → A gilt in r nicht, da es Teile (z.B. T2) gibt, die in

unterschiedlichen Anzahlen (200, 400) geliefert werden.

• Jeder Lieferant liefert jedes Teil allerdings in genau einer Anzahl.

Deswegen gilt die fdLT → A in r. In der erweiterten Relationr ∪ {t},

mit t = (L1,T1,400,London,600), gilt LT → A hingegen nicht.

Prof. Dr. Dietmar Seipel 210

Vorlesung Datenbanken Wintersemester 2013/14

• Man kann die fdL → O z.B. mittels des folgenden SQL–Statements

überprüfen:

SELECT t1.L

FROM Lieferant t1, Lieferant t2

WHERE t1.L = t2.L

AND t1.O != t2.O

Falls die Antwort auf diese Anfrage nicht–leer ist, so ist die fd in der

Relation Lieferant verletzt.

Falls eine fdX → Y in einer Relationr gilt, so giltX → Y auch in allen

Teilmengenr′ ⊆ r. Das Umgekehrte gilt aber – wie bereits gezeigt – nicht.

Prof. Dr. Dietmar Seipel 211

Vorlesung Datenbanken Wintersemester 2013/14

Konventionen:

1. Einzelne Großbuchstaben am Anfang des Alphabets bezeichnen in der

Regel Attribute, einzelne Großbuchstaben am Ende des Alphabets

bezeichnen in der Regel Attributmengen.

2. Wir können eine Attributmenge{A1, . . . , An } auch kurz als

ZeichenketteA1 . . . An schreiben, falls alleAi nur aus einem Zeichen

bestehen.

3. Die VereinigungX ∪ Y zweier AttributmengenX undY kann alsXY

abgekürzt werden.

Prof. Dr. Dietmar Seipel 212

Vorlesung Datenbanken Wintersemester 2013/14

Logische Folgerungen aus funktionalen Abhängigkeiten

SeiF eine Menge von fds überU .

1. Eine fdX → Y überU folgt ausF , fallsX → Y in allenerlaubten

Instanzen von(U, F ) gilt. Dann schreiben wirF |= X → Y .

2. Zwei fd–MengenF undG überU heißenäquivalent, falls (U, F ) und

(U,G) dieselben erlaubten Instanzen haben. Dann schreiben wirF ≡ G.

Offenbar giltF ≡ G, wenn alle fds inG ausF folgen, und umgekehrt.

Die logische Folgerung ist auf der Basis der obigen Definition nur schwierig

zu berechnen, da alle erlaubten Instanzen von(U, F ) zu betrachten wären.

Für einfache Beispiele kann man aber die logischen Folgerungen leicht

ermitteln.

Prof. Dr. Dietmar Seipel 213

Vorlesung Datenbanken Wintersemester 2013/14

Es gibt erlaubte Instanzenr′ des Lieferantenschemas, in denen neben den fds

ausF = {LT → A,L → O,O → K } auch die fdT → A gilt, da jedes Teil

in maximal einer Anzahl geliefert wird:

r′

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 300 London 600

L1 T5 400 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 200 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

T → A ist aber keine logische Folgerung, da es z.B. in der vorherigen

erlaubten Instanzr nicht gilt. L → K ist dagegen eine logische Folgerung.

Prof. Dr. Dietmar Seipel 214

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Logische Folgerung, Äquivalenz)

AusF = {LT → A,L → O,O → K } folgen u.a. die fds

LT → AOK, L → K, L → OK undK → K.

Für zwei Tupelt1, t2 ∈ r einer beliebigen erlaubten Instanzr gilt:

1. Aust1[L] = t2[L] folgt wegenL → O aucht1[O] = t2[O] und wegen

O → K aucht1[K] = t2[K]. Dies zeigtL → K undL → OK.

2. Aust1[LT ] = t2[LT ] folgt natürlicht1[L] = t2[L].

• AusLT → A folgt t1[A] = t2[A].

• AusL → OK folgt t1[OK] = t2[OK].

Damit gilt insgesamtt1[AOK] = t2[AOK]. Dies zeigtLT → AOK.

Die fd L → A folgt offensichtlich nicht, da sie in der obigen erlaubten

Instanzr schon nicht gilt.

Prof. Dr. Dietmar Seipel 215

Vorlesung Datenbanken Wintersemester 2013/14

Also sind die folgenden fd–Mengen äquivalent:F ≡ G1 ≡ G2 ≡ G3.

F = {LT → A,L → O,O → K },

G1 = F ∪ {LT → O,LT → K,L → K },

G2 = {LT → AOK,L → OK,O → K },

G3 = {LT → A,L → OK,O → K }.

G1 nimmt die logischen FolgerungenLT → O, LT → K undL → K zuF

hinzu.

G2 faßt die fds mit den gleichen linken Seiten zusammen und bildet fds ausder Vereinigung der entsprechenden rechten Seiten, denn esgilt

{L → O,L → K } ≡ {L → OK },

{LT → A,LT → O,LT → K } ≡ {LT → AOK }.

G3 verkürztLT → AOK zuLT → A, dennLT → OK folgt bereits ausL → OK.

Prof. Dr. Dietmar Seipel 216

Vorlesung Datenbanken Wintersemester 2013/14

Ableitungsregeln von Armstrong für funktionale Abhängigkeiten

Die folgendenInferenzregeln(Axiome) stammen vonArmstrong(1974).

(F1) Reflexivität (triviale fds):

∅ ⊢ X → Y , fallsY ⊆ X

(F2) Augmentierung:

{X → Y } ⊢ XZ → Y Z

(F3) Transitivität:

{X → Y, Y → Z } ⊢ X → Z

FallsX → Y mittels des Kalküls von Armstrong ausF abgeleitet werden

kann, so schreiben wirF ⊢ X → Y .

Prof. Dr. Dietmar Seipel 217

Vorlesung Datenbanken Wintersemester 2013/14

|= ≡ ⊢

Logische Folgerung und Ableitung sind äquivalent:

die Inferenzregeln (F1), (F2), (F3) von Armstrong bilden einenvollständigen

undkorrektenKalkül für |=.

Vollständigkeit:F |= X → Y ⇒ F ⊢ X → Y

(alle Folgerungen können mittels des Kalküls abgeleitet werden)

Korrektheit:F ⊢ X → Y ⇒ F |= X → Y

(alle mittels des Kalküls abgeleiteten fds folgen)

Durch Anwendung der Inferenzregeln lassen sich also genau alle logischen

Folgerungen aus einer fd–Menge systematisch berechnen.

Prof. Dr. Dietmar Seipel 218

Vorlesung Datenbanken Wintersemester 2013/14

Die Korrektheitder Inferenzregeln von Armstrong ist einfach zu beweisen.

Für zwei Tupelt1, t2 ∈ r einer beliebigen erlaubten Instanzr gilt:

(F1) Reflexivität:X → Y , fallsY ⊆ X .

Aus t1[X ] = t2[X ] undY ⊆ X folgt t1[Y ] = t2[Y ].

(F2) Augmentierung:{X → Y } ⊢ XZ → Y Z.

Aus t1[XZ] = t2[XZ] folgt t1[X ] = t2[X ] undt1[Z] = t2[Z].

WegenX → Y gilt dann aucht1[Y ] = t2[Y ].

Insgesamt gilt alsot1[Y Z] = t2[Y Z].

(F3) Transitivität:{X → Y, Y → Z } ⊢ X → Z.

Aus t1[X ] = t2[X ] undX → Y folgt t1[Y ] = t2[Y ].

WegenY → Z gilt dann aucht1[Z] = t2[Z].

Der Vollständigkeits–Beweis, der auf sogenannten Armstrong–Relationen

basiert, ist kompliziert und kann hier nicht gezeigt werden.

Prof. Dr. Dietmar Seipel 219

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Inferenzregeln)

Aus der Menge

F = {BC → D, D → E, CE → B }

kann man die funktionale AbhängigkeitCD → B ableiten:

D → E Augmentierung

CD → CE CE → B Transitivität

CD → B

R

s ? +

Prof. Dr. Dietmar Seipel 220

Vorlesung Datenbanken Wintersemester 2013/14

Alternative Ableitung aufgrund eines generischen Schemas:

Reflexivität

�CD → CD D → E Augmentierung

Augmentierung

Reflexivität

CD → CDE

CD → CDE CE → B

CDE → BCDE

Transitivität

Transitivität

Transitivität

CD → BCDE

BCDE → B

CD → B

?

?

?

?

?

j

j

j

Prof. Dr. Dietmar Seipel 221

Vorlesung Datenbanken Wintersemester 2013/14

Weitere Ableitungsregeln für funktionale Abhängigkeiten

Aus (F1)–(F3) können die folgenden weiteren Regeln abgeleitet werden:

(F4) Zerlegung oder Projektion:

{X → YZ } ⊢ X → Y , X → Z

(F5) Vereinigung:

{X → Y, X → Z } ⊢ X → YZ

(F6) Pseudo–Transitivität:

{X → Y, WY → Z } ⊢ WX → Z

(F7) Akkumulation:

{X → WY, Y → Z } ⊢ X → WYZ

Bei Verwendung dieser zusätzlichen Regeln kann man einfachere

Ableitungsbäume erhalten.

Prof. Dr. Dietmar Seipel 222

Vorlesung Datenbanken Wintersemester 2013/14

(F4) Die Projektion ergibt sich durch Verknüpfung von Reflexivität und

Transitivität:{X → YZ } ⊢ X → Y

Reflexivität

Transitivität

X → YZ

YZ → Y

X → Y?

�j

(F5) Die Vereinigung ergibt sich durch Verknüpfung von Augmentierung

(zweimal) und Transitivität:{X → Y, X → Z } ⊢ X → YZ

X → Y X → ZAugmentierung

XY → YZX → XY

X → YZ

Transitivität??

?

�j

Prof. Dr. Dietmar Seipel 223

Vorlesung Datenbanken Wintersemester 2013/14

(F6) Die Pseudo–Transitivität ergibt sich durch Verknüpfung vonAugmentierung und Transitivität:{X → Y, WY → Z } ⊢ WX → Z

X → Y Augmentierung

WX → WY WY → Z Transitivität

WX → Z

R

s ?+

(F7) Die Akkumulation ergibt sich durch Verknüpfung von Augmentierungund Transitivität:{X → WY, Y → Z } ⊢ X → WYZ

X → WY Y → Z Augmentierung

WY → WYZ

X → WYZ

Transitivität?

?

�j

Prof. Dr. Dietmar Seipel 224

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Inferenzregeln)

Aus der Menge

F = {BC → D, D → E, CE → B }

kann man die funktionale AbhängigkeitCD → B nun einfacher ableiten:

D → E CE → B Pseudo–Transitivität

CD → Bs ? +

Anstelle von Augmentierung und Transitivität (2 Schritte,siehe weiter oben)

verwenden wir nun einfach die Pseudo–Transitivität.

Prof. Dr. Dietmar Seipel 225

Vorlesung Datenbanken Wintersemester 2013/14

Auch die alternative Ableitung aufgrund des generischen Schemas können

wir vereinfachen:

Reflexivität

�CD → CD

D → E

CD → CDE

CE → B

Akkumulation

Akkumulation

Projektion

CD → BCDE

CD → B

?

?

?

j

j

j

Prof. Dr. Dietmar Seipel 226

Vorlesung Datenbanken Wintersemester 2013/14

Einfachere Formulierung der Inferenzregeln

1. Augmentierung:

{X → Y } ⊢ X ′ → Y , fallsX ⊆ X ′ (links vergrößern).

2. Zerlegung oder Projektion:

{X → Y } ⊢ X → Y ′, fallsY ′ ⊆ Y (rechts verkleinern).

3. Vereinigung:{X → Y, X → Y ′ } ⊢ X → Y ∪ Y ′.

4. Reflexivität: ∅ ⊢ X → Y , fallsY ⊆ X (triviale fds).

5. Akkumulation: {X → Y, Y ′ → Z } ⊢ X → Y ∪ Z, fallsY ′ ⊆ Y .

Als Spezialfall der Akkumulation erhält man fürY = Y ′ mittels der

Projektion die Transitivität:{X → Y, Y → Z } ⊢ X → Z.

Für die Relation< über den reellen Zahlen gilt die Transitivität z.B. auch:

für alleX, Y, Z ∈ IR mit X < Y ∧ Y < Z gilt X < Z.

Prof. Dr. Dietmar Seipel 227

Vorlesung Datenbanken Wintersemester 2013/14

Generisches Ableitungsschema: RA∗P–Ableitung

Um eine fdX → Y aus einer fd–MengeF herzuleiten, konstruieren wir

induktiv eine fd–FolgeX → Xi, für 1 ≤ i ≤ n:

(R) Wir setzenX1 = X : X → X gilt wegen der Reflexivität.

(A∗) i → i+ 1: Falls wirYi → Zi ∈ F finden, mitYi ⊆ Xi, so kann

X → Xi ∪ Zi ausX → Xi mittels Akkumulation gewonnen werden,

und wir setzenXi+1 = Xi ∪ Zi.

(P) FallsY ⊆ Xn gilt, dann erhält man ausX → Xn mittels Projektion die

gewünschte fdX → Y .

Damit gilt {Yi → Zi | 1 ≤ i ≤ n } ⊢ X → Y. Am Ende gilt offensichtlich

Xn = X ∪ Z1 ∪ . . . ∪ Zn.

Prof. Dr. Dietmar Seipel 228

Vorlesung Datenbanken Wintersemester 2013/14

Reflexivität

�X → X

︸︷︷︸

=X1

X → Xi

Yi → Zi, mit Yi ⊆ Xi

. . .

Y ⊆ Xn

X → Xi ∪ Zi︸ ︷︷ ︸

=Xi+1

Akkumulation

Akkumulation

Projektion

X → Xn

X → Y

?

?

?

?

j

j

j

Prof. Dr. Dietmar Seipel 229

Vorlesung Datenbanken Wintersemester 2013/14

FD–Hülle, Attributhülle

SeiR = (U, F ) ein Relationenschema undX ⊆ U .

1. DieFD–HülleF+ vonF besteht aus allen fds überU , die ausF folgen:

F+ = {X → Y | F |= X → Y }.

2. DieAttributhülleX+F vonX besteht aus allen AttributenA ∈ U , welche

bezüglichF funktional vonX abhängig sind:

X+F = {A ∈ U | F |= X → A }.

Prof. Dr. Dietmar Seipel 230

Vorlesung Datenbanken Wintersemester 2013/14

Eigenschaften:

• Die FD–HülleF+ besteht aus allen logischen Folgerungen.

Sie ist immer sehr groß, denn sie enthält z.B. auch alle trivialen fds

X → Y , mit Y ⊆ X , und sie enthält damit exponentiell viele fds.

• Man kann den Implikationstest auf die AttributhülleX+F stützen ohne

die sehr große FD–HülleF+ zu berechnen:

X → Y ∈ F+ ⇐⇒ F |= X → Y ⇐⇒ Y ⊆ X+F .

• Die AttributhülleX+F kann mit einem einfachen Algorithmus berechnet

werden. Sie enthält immer auchX , d.h.

X ⊆ X+F .

Wegen der Reflexivität gilt nämlich für alleA ∈ X auchF |= X → A.

Prof. Dr. Dietmar Seipel 231

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Hülle)

SeiU = {L, T,A,O,K } und

F = {LT → A,L → O,O → K }.

Dann gilt

{L, T }+ = U,

{L }+ = {L,O,K } ( U,

{T }+ = {T } ( U.

Also istX = {L, T } eine minimale Menge von Attributen mitX+ = U .

Für die beiden um ein Attribut kleineren MengenX gilt X+ ( U .

Weiter gilt

{O }+ = {O,K } ( U.

Prof. Dr. Dietmar Seipel 232

Vorlesung Datenbanken Wintersemester 2013/14

Die AttributhülleX+F kann entsprechend der RA∗P–Ableitung effizient

berechnet werden, indem man lediglich die rechten Seiten der berechnetenfd–Folge betrachtet.

Algorithmus zur Berechnung der Attributhülle

Input: Eine fd–MengeF und eine AttributmengeXOutput:X+ = X+

F

X+ := X ;REPEAT

X∗ := X+;FOR EACH (Y → Z ∈ F ) DO

IF Y ⊆ X+ THEN X+ := X+ ∪ Z;UNTIL X∗ = X+;

Komplexität: O(|F | · |U |2 · log |U |)

X → X+

Y → Z

X → X+ ∪ Z

Akkumulation

? �j

Prof. Dr. Dietmar Seipel 233

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Berechnung der Attributhülle)

FürF = {LT → A,L → O,O → K } undX = {L, T } ist folgendeBerechnungsfolge möglich:

X+1 = {L, T },

X+2 = {L, T,A }, mittelsY → Z = LT → A,

X+3 = {L, T,A,O }, mittelsY → Z = L → O,

X+4 = {L, T,A,O,K } = U, mittelsY → Z = O → K.

• Die Berechnung erfordert in diesem Falle nur eine Iteration.

• Für die ReihenfolgeLT → A, O → K, L → O, gibt es zweiIterationen, daO → K erst in Iteration 2 angewendet werden kann,nachdemL → O in Iteration 1 angewendet wurde.

• Unabhängig von der Reihenfolge der fds erhält man immer dasselbeEndergebnis, in diesem Falle{L, T }+F = U.

Prof. Dr. Dietmar Seipel 234

Vorlesung Datenbanken Wintersemester 2013/14

L T A O K

• Aufgrund der fdLT → A kann manX+1 = {L, T } zu

X+2 = {L, T,A } erweitern.

• Dieses wird mittelsL → O zuX+3 = {L, T,A,O }.

• Abschließend kann man mittelsO → K zu

X+4 = {L, T,A,O,K } = U erweitern.

• Also gilt {L, T }+F = U.

Prof. Dr. Dietmar Seipel 235

Vorlesung Datenbanken Wintersemester 2013/14

Wir betrachten nunX = {L }.

L O K T A

• Aufgrund der fdL → O kann manX+1 = {L } zuX+

2 = {L,O }

erweitern.

• Dieses kann man mittelsO → K zuX+3 = {L,O,K } erweitern.

• Also gilt {L }+F = {L,O,K }.

Prof. Dr. Dietmar Seipel 236

Vorlesung Datenbanken Wintersemester 2013/14

Eine fdX → Y folgt ausF , genau dann wennY ⊆ X+F gilt.

• Wegen{L, T }+F = {L, T,A,O,K } folgen ausF u.a. die fds

LT → A, LT → O, LT → K, LT → OK, LT → L.

• Die fd LT → L ist trivial, da die rechte Seite eine Teilmenge der linken

ist. Diese fd gilt in allen Relationen über der AttributmengeU .

• Wegen{L }+F = {L,O,K } folgen ausF u.a. die fds

L → K, L → OK.

• Die fdsL → A undT → A folgen nicht ausF . UmA zu erhalten

braucht manL undT zusammen.

Insbesondere folgen ausF natürlich auch alle fds, die bereits inF enthalten

sind.

Prof. Dr. Dietmar Seipel 237

Vorlesung Datenbanken Wintersemester 2013/14

Ableitung aufgrund des generischen Schemas:

Reflexivität

�LT → LT

LT → A

LT → LTA

L → O

O → K

Akkumulation

Akkumulation

Akkumulation

LT → LTAO

LT → LTAOK

?

?

?

j

j

j

Prof. Dr. Dietmar Seipel 238

Vorlesung Datenbanken Wintersemester 2013/14

Schlüssel, Oberschlüssel

SeiR = (U, F ) ein Relationenschema undX ⊆ U .

1. X heißtOberschlüsselvonR, fallsX+F = U ,

2. Ein minimaler OberschlüsselX heißtSchlüsselvonR(d.h., es gibt keinen kleineren OberschlüsselX ′ ( X).

Ein Schlüssel ist also eine minimale AttributmengeX mit X → U .

Beispiel (Schlüssel, Oberschlüssel)

Sei wiederF = {LT → A,L → O,O → K }.

• L undT müssen in jedem Schlüssel vorkommen, da sie in keiner fd aufder rechten Seite vorkommen.

• X = {L, T } ist wegenX+F = U bereits ein Oberschlüssel, und somit

dereindeutige SchlüsselvonR.

Prof. Dr. Dietmar Seipel 239

Vorlesung Datenbanken Wintersemester 2013/14

Algorithmus K EY

Input: Ein RelationenschemaR = (U, F ) mit U = {A1, . . . , Am }.

Output: Ein SchlüsselK ⊆ U für R

K := U ;

FOR (i := 1 tom) DO

K′ := K \ {Ai};

IF (K′ ist Oberschlüssel vonR)

THEN K := K′;

Unterschiedliche ReihenfolgenA1, . . . , Am der Attribute können

verschiedene Schlüssel liefern.

Jedes Attribut, das nicht in der rechten Seite einer fd auftritt,

ist in jedem Schlüssel enthalten.

Prof. Dr. Dietmar Seipel 240

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Algorithmus KEY)

SeiR = (U, F ) mit

U = {A,B,C },

F = {AB → C,C → B }.

Es gibt zwei Schlüssel:K1 = {A,C }, K2 = {A,B }. Offensichtlich kannmanA nicht weglassen, da es nicht auf der rechten Seite einer fd auftritt.

• Für die ReihenfolgeA1 = A, A2 = B, A3 = C, wird der SchlüsselK1

berechnet, daA1 nicht weggelassen werden kann,A2 dann aber schon,undA3 dann wieder nicht.

• Für die ReihenfolgeA1 = A, A2 = C, A3 = B, wird der SchlüsselK2

durch Weglassen vonC berechnet.

Ebenso hatR = (U, F ) mit U = {A,B } undF = {A → B,B → A } zweiSchlüssel:K1 = {A }, K2 = {B }.

Prof. Dr. Dietmar Seipel 241

Vorlesung Datenbanken Wintersemester 2013/14

A B D E C G

+?

SeiR = (U, F ) mit

U = {A,B,C,D,E,G },

F = {AB → C,ACD → EG,ACE → DG }.

Offensichtlich sindA undB in jedem Schlüssel enthalten, da sie nicht auf

der rechten Seite einer fd auftreten. WegenC ∈ {A,B }+F ist C in keinem

Schlüssel enthalten. AuchG ist in keinem Schlüssel enthalten, da es auf der

rechten Seite von fds und nur da auftritt.

Also kann manA undB nicht weglassen,C undG muß man dagegen

weglassen. Wir setzen also immerA1 = A, A2 = B, A3 = C, A4 = G.

• FürA5 = D, A6 = E wird der SchlüsselK1 = {A,B,E } berechnet.

• FürA5 = E, A6 = D wird der SchlüsselK2 = {A,B,D } berechnet.

In beiden Fällen kannA5 weggelassen werden, und danachA6 nicht.

Prof. Dr. Dietmar Seipel 242

Vorlesung Datenbanken Wintersemester 2013/14

Vereinfachung von fd–Mengen

Manchmal können fd–MengenF durch Verkleinerung der rechten bzw.

linken Seiten vereinfacht werden.

Definition (Rechts– und links–minimale fds)

Eine fdX → Y ∈ F heißt

1. rechts–minimal, fallsY = {A} einelementig ist.

2. links–minimal, falls es keinX ′ ( X mit X ′ → Y ∈ F+ gibt.

Beispiel (Minimalität)

Alle fds inF = {LT → A,L → O,O → K } sind rechts– und

links–minimal.

Prof. Dr. Dietmar Seipel 243

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Zerlegung und Vereinigung)

1. Aufgrund der Zerlegungs– und der Vereinigungsregel ist die MengeF

äquivalent zur MengeG von rechts–minimalen fds:

F = {X → A1 . . . Am },

G = {X → A1, . . . , X → Am }.

2. Man darf also die rechte Seite einer fd aufsplitten:

X → AB ist äquivalent zu zwei rechts–minimalen fds

X → A undX → B.

3. Die linke Seite einer fd darf man aber nicht aufsplitten:

AB → Y ist schwächer alsA → Y undB → Y .

Sowohl ausA → Y als auch ausB → Y folgt AB → Y ,

aber nicht umgekehrt.

Prof. Dr. Dietmar Seipel 244

Vorlesung Datenbanken Wintersemester 2013/14

4. Manchmal kann man die linke Seite einer fd im Kontext einerfd–Menge

verkleinern:

Die fd AB → C ist nicht links–minimal in

F = {AB → C, A → B }.

Sie kann zuA → C verkleinert werden, daA → B gilt.

Die Menge

G = {A → C, A → B }

von links–minimalen fds ist äquivalent zuF .

Alle fds inF undG sind rechts–minimal.

Zu jeder fd–MengeF gibt es (mindestens) eine äquivalente MengeG von

rechts– und links–minimalen fds.

Prof. Dr. Dietmar Seipel 245

Vorlesung Datenbanken Wintersemester 2013/14

Links–Minimalität

Analog zur Schlüsselberechnung kann man eine fdX → Y ∈ F mit

X = {A1, . . . , Am }

wie folgt links–minimal machen:

X ′ := X ;

FOR (i := 1 tom) DO

X ′′ := X ′ \ {Ai};

IF F |= X ′′ → Y

THEN X ′ := X ′′;

Am Ende istX ′ → Y ∈ F+ links–minimal undX ′ ⊆ X .

Genau wie bei der Schlüsselberechnung können wir – je nach der

Reihenfolge derAi – unterschiedliche Ergebnisse erhalten.

Prof. Dr. Dietmar Seipel 246

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Links–Minimalität)

SeiR = (U, F ) mit

U = {A,B,C },

F = {AB → C,A → B, B → A }.

Die fd AB → C ist nicht links–minimal.

• Für die ReihenfolgeA1 = A, A2 = B wird die links–minimale fd

B → C berechnet, daA1 weggelassen werden kann, undA2 dann aber

nicht.

• Für die ReihenfolgeA1 = B, A2 = A wird die links–minimale fd

A → C berechnet, daA1 weggelassen werden kann, undA2 dann aber

nicht.

Prof. Dr. Dietmar Seipel 247

Vorlesung Datenbanken Wintersemester 2013/14

Projektion von Relationenschemas

Definition (Projektion)

Die ProjektionΠV (R) = (V,ΠV (F )) eines RelationenschemasR = (U, F )

auf eine AttributmengeV ⊆ U ist gegeben durch

ΠV (F ) = {X → Y ∈ F+ | XY ⊆ V }.

Eigenschaften (Projektion)

1. FallsF in einer Relationr überU gilt, so giltΠV (F ) in ΠV (r).X → Y gilt in R, fallsX ein Oberschlüssel vonΠXY (R) ist.

2. Im schlechtesten Fall ist die Berechnung vonΠV (F ) sehr aufwendig – genau so

komplex wie die vonF+. In der Praxis ist sie aber meist nicht so schwierig.

Es genügt z.B., zu jedemX ⊆ V , das Obermenge der linken Seite einer fd ausF

ist, die fdX → Y , mit Y = (X+

F \X) ∩ V , zu berechnen, um eine zuΠV (F )

äquivalente Menge zu erhalten.

Prof. Dr. Dietmar Seipel 248

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Projektionen von Lieferant)

In der ProjektionΠLK(r) der Lieferantenrelationr gilt die fdL → K. Man

erhält sie durch transitive Verknüpfung vonL → O undO → K.

ΠLK (r) :

L K

L1 600

L2 450

L3 450

L4 150

L ist ein Oberschlüssel vonΠLK (R) = (LK,ΠLK(F )). In R ist L kein

Oberschlüssel, da ein Lieferant in der Regel mehrere Teile liefert.

Es giltΠLK (F ) ≡ {L → K }.

Prof. Dr. Dietmar Seipel 249

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Projektionen von Lieferant)

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K }.

3 Projektionen

ΠLTA(F ) ≡ {LT → A },

ΠLO(F ) ≡ {L → O },

ΠLK (F ) ≡ {L → K }.

Hier wurden triviale fds weggelassen, da sie redundant sind.

• FürV = LTA undX = L gilt X+F = LOK und(X+

F \X) ∩ V = ∅.

• FürV = LK erhalten wir die fdL → K ausL → O undO → K.

Die fd O → K ist in keiner der drei Projektionen erhalten. Man könnte sie

aber im Join der beiden Projektionen aufLO bzw.LK überprüfen.

Prof. Dr. Dietmar Seipel 250

Vorlesung Datenbanken Wintersemester 2013/14

V

E

B

CA

D

-N

Beispiel (Projektion einer fd–Menge)

U = {A,B,C,D,E, I },

F = {A → E,BE → C }.

FürV = {A,B,C,D } erhält man die Projektion

ΠV (F ) ≡ {AB → C }.

Es genügt die MengeX = {A,B} ⊆ V zu betrachten:

• Zur Ableitung einer fd ausΠV (F ) muß man mit einer fd starten,

deren linke Seite inV liegt. Die einzige solche fd istA → E.

• Wenn man{A}+F = {A,E} umB erweitert, so kann man die zweite fd

BE → C anwenden.

• Man erhält{A,B}+F = {A,B,C,E}, d.h.AB → C ∈ ΠV (F ).

Um AB → C abzuleiten muß man zwischenzeitlichV verlassen.

Prof. Dr. Dietmar Seipel 251

Vorlesung Datenbanken Wintersemester 2013/14

3.3 Normalformen

Definition (1NF)

Ein RelationenschemaR = (U, F ) ist in erster Normalform(1NF),fallsU nur atomare Attribute enthält, d.h. keine mehrwertigen oderzusammengesetzten Attribute.

Ein Relationenschema, das nicht in 1NF ist, und eine Ausprägung davon:

DMGRSSNDNAME DLOCATIONSDNUMBER

DEPARTMENT

DEPARTMENT

DNAME DNUMBER DMGRSSN DLOCATIONS

Headquarters 1 111111111 {Houston}

Administration 4 333333333 {Stafford}

Research 5 222222222 {Bellaire, Sugarland, Houston}

Prof. Dr. Dietmar Seipel 252

Vorlesung Datenbanken Wintersemester 2013/14

Normalisierung auf 1NF

Relation in 1NF mit Redundanz:

DEPARTMENT

DNAME DNUMBER DMGRSSN DLOCATION

Headquarters 1 111111111 Houston

Administration 4 333333333 Stafford

Research 5 222222222 Bellaire

Research 5 222222222 Sugarland

Research 5 222222222 Houston

Der eindeutige Schlüssel istK = {DNUMBER, DLOCATION }.

Es gilt die fd{DNUMBER} → {DNAME, DMGRSSN}, obwohl die linkeSeite kein Oberschlüssel ist. Deswegen sind die Werte zu denAttributen ausder rechten Seite redundant gespeichert.

Prof. Dr. Dietmar Seipel 253

Vorlesung Datenbanken Wintersemester 2013/14

Wir werden später sehen, daß man diese Relation verlustfreiin die folgenden

zwei Relationen zerlegen kann, um die Redundanz zu beseitigen:

DEPARTMENT

DNAME DNUMBER DMGRSSN

Headquarters 1 111111111

Administration 4 333333333

Research 5 222222222

DEPT_LOCATIONS

DNUMBER DLOCATION

1 Houston

4 Stafford

5 Bellaire

5 Sugarland

5 Houston

In der Tabelle DEPT_LOCATIONS werden lediglich die Werte des Attributs

DNUMBERrepliziert (z.B. der Wert 5), das die Verbindung zum Schlüssel

der Tabelle DEPARTMENT herstellt (Fremdschlüsselbedingung).

Prof. Dr. Dietmar Seipel 254

Vorlesung Datenbanken Wintersemester 2013/14

Weitere Normalformen

Definition (Schlüsselattribut)

SeiR = (U, F ) ein Relationenschema.

1. A ∈ U heißtSchlüsselattribut, bzw.prim,falls es einen SchlüsselK für R gibt mit A ∈ K.

2. Andernfalls heißt ANichtschlüsselattribut(NSA).

Beispiel (Schlüssel von Lieferant)

Der eindeutige Schlüssel für das LieferantenschemaR = (U, F ) mit

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K },

istK = {L, T }. Deswegen sind die AttributeL undT prim, undA, O undK sind Nichtschlüsselattribute.

Prof. Dr. Dietmar Seipel 255

Vorlesung Datenbanken Wintersemester 2013/14

Definition (2NF)

Ein 1NF–RelationenschemaR = (U, F ) ist in zweiter Normalform(2NF),

falls für jedesNSAA ∈ U und jeden SchlüsselK für R gilt, daß die fd

K → A links–minimalist.

Beispiel (2NF)

Das Lieferantenschema

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K },

ist nicht in2NF, da die fdLT → O zum eindeutigen SchlüsselK = {L, T }

wegenL → O nicht links–minimal ist, und daO ein NSA ist.

Prof. Dr. Dietmar Seipel 256

Vorlesung Datenbanken Wintersemester 2013/14

Definition (Normalformen: 3NF, BCNF)

SeiR = (U, F ) ein Relationenschema in 1NF.

1. Eine nicht–triviale fdX → Y heißt3NF–verletzend,

fallsX kein Oberschlüssel vonR ist, d.h. fallsX+F 6= U gilt,

und falls es ein NichtschlüsselattributA ∈ Y \X gibt.

2. R ist in dritter Normalform(3NF),

falls es keine 3NF–verletzende fdX → Y ∈ F gibt.

3. Eine nicht–triviale fdX → Y heißtBCNF–verletzend,

fallsX kein Oberschlüssel vonR ist, d.h. fallsX+F 6= U gilt.

4. R ist in Boyce–Codd–Normalform(BCNF),

falls es keine BCNF–verletzende fdX → Y ∈ F gibt.

Da jede 3NF–verletzende fd auch BCNF–verletzend ist, folgtaus der BCNF

die 3NF. Später zeigen wir auch, daß aus der 3NF die 2NF folgt.

Prof. Dr. Dietmar Seipel 257

Vorlesung Datenbanken Wintersemester 2013/14

Beispiele (Normalformen: Vergleich und Abgrenzung)

1. SeiR = (U, F ) mit U = ABCD undF = {AB → C,BC → D }.

Dann istAB der eindeutige Schlüssel.

• Die fdsAB → C undAB → D zu den NSAs sindlinks–minimal,

• aberBC → D ist 3NF–verletzend.

Deshalb istR zwar in2NF, aber nicht in3NF.

2. SeiR = (U, F ) mit U = ABC undF = {AB → C,C → B }.

Dann gibt es die zwei SchlüsselAB undAC.

• Folglich sind alle Attributeprim.

• AberC → B ist BCNF–verletzend.

Deshalb istR zwar in3NF, aber nicht inBCNF.

Prof. Dr. Dietmar Seipel 258

Vorlesung Datenbanken Wintersemester 2013/14

Definition (Transitive Abhängigkeit) X/←→ Y → A

SeiR = (U, F ) ein Relationenschema undX → A ∈ F+, mit A ∈ U .

1. X → A heißttransitiv, falls es eine nicht–triviale fdY → A ∈ F+ gibt,so daßX → Y ∈ F+ undY → X /∈ F+. Dann heißtA auchtransitiv

abhängigvonX , undX/←→ Y → A heißttransitive Kette.

2. Ansonsten heißt die fdX → A direkt.

Beispiel (Lieferant, Department)

1. LT → A ist direkt.

LT/←→ L → O ist eine transitive Kette.

LT/←→ O → K ist eine transitive Kette.

2. {DNUMBER, DLOCATION }/←→ {DNUMBER} → A

ist für A = DNAME undA = DMGRSSNeine transitive Kette.

Prof. Dr. Dietmar Seipel 259

Vorlesung Datenbanken Wintersemester 2013/14

Die MengeF ∗ aller rechts–minimalen fdsX → Ai zu den fds

X → {A1, . . . , An } ∈ F ist äquivalent zuF .

BCNF–verletzende fds ausF ∗ und transitive Ketten korrelieren:

1. Bei einer transitiven KetteX/←→ Y → A ist die fdY → A

BCNF–verletzend, sie muß aber nicht inF ∗ liegen.

Es gibt aber eine fdY ′ → A ∈ F ∗, so daßY ′ ⊆ Y +F , z.B. diejenige fd,

die bei der Hüllenberechnung vonY +F = Y +

F∗ verwendet wird, so daßA

hinzukommt. Dann giltY ′ → X 6∈ F+, sonst wäreY → X ∈ F+.

Also istX/←→ Y ′ → A ebenfalls eine transitive Kette, und

Y ′ → A ∈ F ∗ ist BCNF–verletzend.

2. Für jede BCNF–verletzende fdY → A ∈ F ∗ istX/←→ Y → A eine

transitive Kette.

Prof. Dr. Dietmar Seipel 260

Vorlesung Datenbanken Wintersemester 2013/14

Redundanz und Update–Anomalien

Seir eine erlaubte Instanz eines RelationenschemasR = (U, F ).

• Eine BCNF–verletzende fdX → Y ∈ F bereitet ein Problem.

Dasselbe gilt auch, fallsX → Y nur inF+ enthalten ist.

• DaX kein Oberschlüssel ist, kann es inr verschiedene Tupel mit

denselbenX–Werten geben.

Dann müssen auch dieY –Werte gleich sein, und es kommt zu

Redundanz und zu den bekannten Update–Anomalien.

• FallsY \X allerdings nur Schlüsselattribute enthält, so ist das Problem

nicht ganz so groß, da diese weniger häufig geändert werden.

Dann ist die fd nicht 3NF–verletzend.

Prof. Dr. Dietmar Seipel 261

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Lieferant)

U = {L, T,A,O,K }, F = {LT → A,L → O,O → K }.

Die 3NF–verletzende fdO → K führt zu den bekannten Update–Anomalien.

DaO kein Oberschlüssel ist, gibt es verschiedene Tupel mit denselben

O–Werten, und diese müssen dann auch dieselbenK–Werte haben.

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 200 London 600

L1 T5 100 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 400 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

Prof. Dr. Dietmar Seipel 262

Vorlesung Datenbanken Wintersemester 2013/14

Aus der Korrelation zwischen BCNF/3NF–verletzenden fds und transitivenKetten ergibt sich der folgende Satz.

Satz (Normalformen)

SeiR = (U, F ) ein Relationenschema in 1NF.

1. R ist in 3NF, falls für jedesNSAA ∈ U und jeden SchlüsselK gilt,daß die fdK → A direkt ist.

2. R ist in BCNF, falls für jedesAttribut A ∈ U und jeden SchlüsselK gilt,daß die fdK → A direkt ist.

Da direkte fds auch links–minimal sind, folgt weiter:

Satz (Normalformen)

SeiR = (U, F ) ein Relationenschema in 1NF.

1. IstR in BCNF, so istR auch in 3NF.

2. IstR in 3NF, so istR auch in 2NF.

Prof. Dr. Dietmar Seipel 263

Vorlesung Datenbanken Wintersemester 2013/14

Beispiele (Normalformen: Vergleich und Abgrenzung)

1. SeiR = (U, F ) mit U = ABCD undF = {AB → C,BC → D }.

Dann istAB der eindeutige Schlüssel.R ist zwar in2NF, aber wegen

der folgenden transitiven Kette nicht in3NF:

AB/←→ BC → D.

2. SeiR = (U, F ) mit U = ABC undF = {AB → C,C → B }.

Dann gibt es die zwei SchlüsselAB undAC, und alle Attribute sind

prim. R ist zwar in3NF, aber wegen der folgenden transitiven Ketten

nicht inBCNF:

AB/←→ C → B, AC

/←→ C → B.

Prof. Dr. Dietmar Seipel 264

Vorlesung Datenbanken Wintersemester 2013/14

Satz (3NF–Test, BCNF–Test)

SeiR = (U, F ) ein Relationenschema in 1NF.

Das Problem zu entscheiden,

1. ob ein AttributA ∈ U prim ist, istNP–vollständig.

2. obR in 3NF ist, istNP–vollständig.

3. obR in BCNF ist, ist in polynomieller Zeit lösbar.

In praktischen Beispielen ist die Anzahl|U | der Attribute und die Anzahl|F |

der funktionalen Abhängigkeiten aber nicht sehr groß.

Deswegen stellen die (asymptotischen) Komplexitätsresultate zur

NP–Vollständigkeit kein Problem dar.

Prof. Dr. Dietmar Seipel 265

Vorlesung Datenbanken Wintersemester 2013/14

Wir werden später sehen, wie wir ein RelationenschemaR = (U, F )

aufgrund seiner fds verlustfrei in kleinere Relationenschemata in 3NF bzw.

BCNF zerlegen können.

Dazu verwenden wir

1. 3NF–kompatible bzw.

2. BCNF–verletzende fds.

Definition (3NF/BCNF–Kompatibilität)

SeiR = (U, F ) ein Relationenschema.

Eine fdX → Y heißt3NF–kompatibel(BCNF–kompatibel),

falls das RelationenschemaΠXY (R) in 3NF (BCNF) ist.

Prof. Dr. Dietmar Seipel 266

Vorlesung Datenbanken Wintersemester 2013/14

Satz (3NF–Kompatibilität)

Jedelinks–minimaleundrechts–minimalefd X → A ∈ F+ in einemRelationenschemaR = (U, F ) ist 3NF–kompatibel.

Beweis.AngenommenR′ = ΠXA(R) ist nicht in 3NF.

Dann gibt es eine transitive KetteXA/←→ Y → A′ zu einem NSAA′ ∈ XA,

mit A′ /∈ Y . WegenY 6→ XA folgt Y A′ ( XA.

Wir betrachten zwei Fälle:

1. A = A′: Es folgtY ( X , und es gilt die fdY → A.Also istX → A nicht links–minimal.�

2. A 6= A′: In diesem Fall folgtA′ ∈ X . DaA′ ein NSA undX einOberschlüssel vonR′ ist, existiert ein SchlüsselK ( X mit A′ /∈ K.Es gilt dannK → A, d.h.X → A ist nicht links–minimal.�

Also ist das SchemaR′ in 3NF, d.h.X → A ist 3NF–kompatibel.

Prof. Dr. Dietmar Seipel 267

Vorlesung Datenbanken Wintersemester 2013/14

3.4 Mehrwertige und Verbund–Abhängigkeiten

Die Join–Bedingung⊲⊳ (U1, . . . , Uk) besagt, daß man eine Relationr

verlustfrei in die ProjektionenΠUi(r) zerlegen kann:

r = ΠU1(r) ⊲⊳ . . . ⊲⊳ ΠUk

(r)

r

ΠU1(r) ΠUk

(r). . .� ^

Eine mehrwertige Abhängigkeit ist eine Join–Bedingung mitk = 2.

Wir können sie alsX →→ Y |Z schreiben, wobei

X = U1 ∩ U2, Y = U1 \ U2, Z = U2 \ U1.

Eine Menge{X →→ Y1, . . . , X →→ Ym } von mvds mit derselben linken

SeiteX kann alsX →→ Y1 |Y2 | . . . |Ym abgekürzt werden.

Prof. Dr. Dietmar Seipel 268

Vorlesung Datenbanken Wintersemester 2013/14

Mehrwertige Abhängigkeiten sindintra–relationale Abhängigkeiten,

Verbund–Abhängigkeiten sindinter–relational.

Falls ein Relationenschemamehrwertige Attributeenthält,

so gelten in der 1NF–Normalisierung mehrwertige Abhängigkeiten.

Beispiel (Mehrwertige Abhängigkeit)

Wir betrachten ein Relationenschema mit der AttributmengeU = ABC und

zwei mehrwertigen AttributenB undC:

r′:

A B C

a1 { b1, b2 } { c1, c2, c3 }

a2 { b3 } { c3, c4 }

Prof. Dr. Dietmar Seipel 269

Vorlesung Datenbanken Wintersemester 2013/14

1. Dann ist die 1NF–Normalisierung vonr′ gegeben durchr.

ZwischenB undC besteht inr eigentlich keindirekter Zusammenhang.

Dies wird durch die mvd{A} →→ {B} | {C} ausgedrückt.

r:

A B C

a1 b1 c1

a1 b1 c2

a1 b1 c3

a1 b2 c1

a1 b2 c2

a1 b2 c3

a2 b3 c3

a2 b3 c4

r1:

A B

a1 b1

a1 b2

a2 b3

r2:

A C

a1 c1

a1 c2

a1 c3

a2 c3

a2 c4

2. Äquivalent kann manr undr′ mit den zwei Relationenr1 = ΠAB(r)

undr2 = ΠAC(r) repräsentieren. Man erhältr dann als deren Natural

Join: r = r1 ⊲⊳ r2.

Prof. Dr. Dietmar Seipel 270

Vorlesung Datenbanken Wintersemester 2013/14

Man kann die Relationr′, die nicht in 1NF ist, zuerst zu einer 1NF–Relation

r normalisieren. Dann kann manr mittels einer Dekompositions–Methode,

die wir im nächsten Abschnitt kennen lernen werden, verlustfrei in zwei

kompaktere Relationenr1 undr2 zerlegen:

r′

r r1, r2

Dekomposition

Normalisierung ER 7→ relational

?-R

Alternativ können wir die beiden Relationenr1 undr2 auch durch die bereits

bekannte Abbildung vom ER–Modell ins relationale Modell erhalten.

Schließlich könnte manr′ auch zuerst inr′1 undr′2 zerlegen, und diese dann

zu r1 undr2 normalisieren.

Prof. Dr. Dietmar Seipel 271

Vorlesung Datenbanken Wintersemester 2013/14

Die verlustfreie Zerlegbarkeit einer Relationr in zwei Projektionen

r1 = ΠU1(r) undr2 = ΠU2

(r) bedeutet, daßr = r1 ⊲⊳ r2 gilt.

• In unserem Beispiel sind die beiden mvds{A} →→ {B} bzw.

{A} →→ {C}, die inr gelten, verantwortlich für die verlustfreie

Zerlegbarkeit. Wir werden sehen, daß die beiden mvds äquivalent sind.

• Wir werden zeigen, daß sich eine Relation genau dann verlustfrei in zwei

ProjektionenΠU1(r) undΠU2

(r) zerlegen läßt, wenn die beiden

äquivalenten mvdsU1 ∩ U2 →→ U1 \ U2 undU1 ∩ U2 →→ U2 \ U1

gelten.

• Solche Datenabhängigkeiten nennen wir auch binäre

Verbundabhängigkeiten (Join Dependencies, jds),

und wir schreiben⊲⊳ (U1, U2).

• In unserem Beispiel gilt die jd⊲⊳ ({A,B}, {A,C}) in r.

Prof. Dr. Dietmar Seipel 272

Vorlesung Datenbanken Wintersemester 2013/14

Definition (Mehrwertige Abhängigkeit, mvd)

SeiU eine Attributmenge, sowieX, Y ⊆ U undZ = U \XY .

1. Einemehrwertige Abhängigkeit(engl.: multivalued dependency, mvd)

X →→ Y gilt für eine Relationr überU , falls

∀µ, ν ∈ r : ( µ[X ] = ν[X ] ⇒

( ∃ρ ∈ r : ρ[X ] = µ[X ] = ν[X ] ∧

ρ[Y ] = µ[Y ] ∧ ρ[Z] = ν[Z] ) ).

2. Eine mvdX →→ Y heißt trivial, fallsY ⊆ X oder fallsX ∪ Y = U ;

sie gilt in allen Relationen.

Logische Folgerung: SieΣ eine Menge von Datenabhängigkeiten undδ

eine einzelne Datenabhängigkeit:

Σ |= δ, falls in jeder Relationr, in welcherΣ gilt, auchδ gilt.

Prof. Dr. Dietmar Seipel 273

Vorlesung Datenbanken Wintersemester 2013/14

• Während eine fdX → Y mit X ∪ Y = U ausdrückt, daßX ein

Oberschlüssel ist, ist eine entsprechende mvdX →→ Y trivial.

Zum Beweis nehme manρ = µ: dann giltρ[Y ] = µ[Y ], und da

Z = U \XY = ∅ ist, gilt automatisch auchρ[Z] = ν[Z].

• Eine Relationr überU mit einer mvdX →→ Y , wobeiZ = U \XY ,

könnte man besser als eineNF 2–Relationr′ repräsentieren,

r:

µ

ν

ρ

ρ′

X Y Z

x y1 z1

x y2 z2

x y1 z2

x y2 z1

r′:X Y Z

x { y1, y2 } { z1, z2 }

oder als zwei RelationenΠXY (r) undΠXZ(r).

Prof. Dr. Dietmar Seipel 274

Vorlesung Datenbanken Wintersemester 2013/14

Satz (Dekomposition)

SeienX, Y ⊆ U undZ = U \XY .

Dann gilt die mvdX →→ Y in einer Relationr überU , g.d.w.

r = ΠXY (r) ⊲⊳ ΠXZ(r).

D.h. die Zerlegung inU1 = XY undU2 = XZ ist verlustfrei:

U = XYZ

U1 = XY U2 = XZ

X →→ Y R

Der folgende Beweis verwendet wiederholt eine – triviale – Eigenschaft von

Tupelnt: (t[X1])[X2] = t[X2], falls X2 ⊆ X1 ⊆ def (t).

Prof. Dr. Dietmar Seipel 275

Vorlesung Datenbanken Wintersemester 2013/14

Beweis.

“⇒”: AngenommenX →→ Y gilt in r.

Es genügt zu zeigen:r ⊇ ΠXY (r) ⊲⊳ ΠXZ(r).

Sei alsoρ ∈ ΠXY (r) ⊲⊳ ΠXZ(r). Dann existieren Tupel

µ′ = ρ[XY ] ∈ ΠXY (r),

ν′ = ρ[XZ] ∈ ΠXZ(r).

Somit existieren auch Tupelµ, ν ∈ r mit µ′ = µ[XY ], ν′ = ν[XZ].

Nun folgt

µ[X ] = µ′[X ] = ρ[X ] = ν′[X ] = ν[X ],

µ[Y ] = µ′[Y ] = ρ[Y ],

ν[Z] = ν′[Z] = ρ[Z].

Aus der Gültigkeit vonX→→Y in r folgt nunρ ∈ r.

Prof. Dr. Dietmar Seipel 276

Vorlesung Datenbanken Wintersemester 2013/14

“⇐”: Angenommenr = ΠXY (r) ⊲⊳ ΠXZ(r).

Seienµ, ν ∈ r mit µ[X ] = ν[X ], und sei

µ′ = µ[XY ] ∈ ΠXY (r),

ν′ = ν[XZ] ∈ ΠXZ(r).

Sei das Tupelρ gegeben durch

ρ[X ] = µ[X ] = ν[X ],

ρ[Y ] = µ[Y ],

ρ[Z] = ν[Z].

Dann giltρ ∈ ΠXY (r) ⊲⊳ ΠXZ(r) = r.

Also gilt die mvdX →→ Y in r.

Prof. Dr. Dietmar Seipel 277

Vorlesung Datenbanken Wintersemester 2013/14

Inferenzregeln für mvds

Das folgende Regelsystem (M1)–(M4) ist vollständig und korrekt für mvds.

SeienX, Y, Z,W,W ′ ⊆ U :

(M1) Komplement:

{X →→ Y } ⊢ X →→ U \ Y, X →→ U \ (XY ).

(M2) Reflexivität (triviale mvd):

∅ ⊢ X →→ Y , fallsY ⊆ X .

(M3) Erweiterung:

{X →→ Y } ⊢ XW →→ YW ′, fallsW ′ ⊆ W .

(M4) Pseudo–Transitivität:

{X →→ Y, Y →→ Z } ⊢ X →→ Z \ Y .

Prof. Dr. Dietmar Seipel 278

Vorlesung Datenbanken Wintersemester 2013/14

Inferenzregeln für fds und mvds

SeienX, Y,X ′, Y ′ ⊆ U

(FM1) Replikation:

{X → Y } ⊢ X →→ Y.

(FM2) Koaleszenz:

{X →→ Y, X ′ → Y ′ } ⊢ X → Y ∩ Y ′, fallsX ′ ∩ Y = ∅.

Satz (Kalkül für fds und mvds)

SeiΣ = F ∪M eine Menge von fds und mvds. Dann ist die Regel–Menge

{ (F1),(F2),(F3), (M1),(M2),(M3),(M4), (FM1),(FM2)}

vollständig und korrekt zur Ableitung der ausΣ folgenden fds und mvds.

Prof. Dr. Dietmar Seipel 279

Vorlesung Datenbanken Wintersemester 2013/14

Weitere Inferenzregeln für mvds, Vergleich mit fds

1. Man kann die rechte und linke Seite einer mvd disjunkt machen,

denn ausX →→ Y folgt X →→ Y \X.

2. Partitions–Regel: Man kann die rechten Seiten von mvds zur selben

linken SeiteX disjunkt machen, denn ausX →→ Y |Z folgt

X →→ Y ∩ Z |Y \ Z |Z \ Y.

Y Z

Y \ Z

Y ∩ Z

Z \ Y

� 6 K

3. Vereinigungs–Regel: Man kann die rechten Seiten von mvdszur selben

linken SeiteX vereinigen, denn ausX →→ Y |Z folgt X →→ Y ∪ Z.

Prof. Dr. Dietmar Seipel 280

Vorlesung Datenbanken Wintersemester 2013/14

4. Wegen der Vereinigungs–Regel folgt aus

X →→ Y ∩ Z |Y \ Z |Z \ Y

auchX →→ Y |Z, denn

Y = (Y ∩ Z) ∪ (Y \ Z),

Z = (Y ∩ Z) ∪ (Z \ Y ).

5. Also istX →→ Y |Z äquivalent zuX →→ Y ∩ Z |Y \ Z |Z \ Y.

Z.B. istA →→ BC |CD äquivalent zuA →→ B |C |D, denn für

Y = BC undZ = CD gilt Y ∩ Z = C, Y \ Z = B, Z \ Y = D.

6. Die Zerlegungs–Regel gilt für mvds nicht:

X →→ Y ∪ Z ist schwächer alsX →→ Y |Z.

Dagegen ist eine fdX → Y ∪ Z wegen der Zerlegungs– und der

Vereinigungs–Regel zur Menge{X → Y, X → Z } von fds äquivalent.

Prof. Dr. Dietmar Seipel 281

Vorlesung Datenbanken Wintersemester 2013/14

X Y1. . . Ym

AbhängigkeitsbasisDEPG(X)

SeiG eine Menge von mvds undX = {A1, . . . , An} ⊆ U.

1. Aus der Reflexivitäts– und der Partitions–Regel folgt, daß es eine

eindeutige Partition

DEPG(X) = {

Ym+1

︷ ︸︸ ︷

{A1}, . . . ,

Ym+n

︷ ︸︸ ︷

{An}, Y1, . . . , Ym }

vonU gibt, so daßG |= X →→ Y gilt, genau dann wenn

• es MengenYi1 , . . . , Yik ∈ DEPG(X) gibt

• mit Y = Yi1 ∪ . . . ∪ Yik .

2. Wir schreiben dannX →→ Y1 |Y2 | . . . |Ym.

Prof. Dr. Dietmar Seipel 282

Vorlesung Datenbanken Wintersemester 2013/14

Vergleich von fds und mvds

Für eine AttributmengeX entspricht die AbhängigkeitsbasisDEPG(X) für

mvds der AttributhülleX+F für fds:

1. Für eine mvd–MengeG undX, Y ⊆ U gilt

G |= X →→ Y ⇐⇒

∃Yi1 , . . . , Yik ∈ DEPG(X) :

Y = Yi1 ∪ . . . ∪ Yik .

2. Für eine fd–MengeF undX, Y ⊆ U gilt

F |= X → Y ⇐⇒

∃Bi1 , . . . , Bik ∈ X+F :

Y = {Bi1 , . . . , Bik }.

FürYi = {Bi } könnte man auch wiederY = Yi1 ∪ . . . ∪ Yik schreiben.

Prof. Dr. Dietmar Seipel 283

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Abhängigkeitsbasis)

SeienX = {A1, A2}, Y1 = {B1, B2}, Y2 = {B3} undU = X ∪ Y1 ∪ Y2.Dann erhalten wir fürG = {X →→ Y1 } folgende Abhängigkeitsbasis:

DEPG(X) = { {A1}, {A2}, Y1, Y2 }.

A1

A2

B1 B2 B3

X Y1 Y2

1. AusG folgen die mvdsX →→ {A1, B3} undX →→ {B1, B2, B3},wohingegenX →→ {B2, B3} nicht folgt, daB2 nur zusammen mitB1

auf der rechten Seite auftreten darf.

2. Insgesamt gibt es genau 16 mvds der FormX →→ Y , die ausG folgen.Man erhält die MengenY als VereinigungY = Yi1 ∪ . . . ∪ Yik

kompletter BlöckeYij ∈ DEPG(X).

Prof. Dr. Dietmar Seipel 284

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Abhängigkeitsbasis)

FürG = {A →→ BC,DE →→ C } undU = ABCDE, X = A gilt

DEPG(X) = { {A}, {B}, {C}, {D,E} }.

A B C D E

X Y1 Y2 Y3

1. AusA →→ BC folgt A →→ U \ (ABC) = DE mittels derKomplement–Regel.

2. AusA →→ DE undDE →→ C folgt A →→ C mittels derPseudo–Transitivitäts–Regel.

3. AusA →→ BC undA →→ C folgt A →→ (BC) \ C = B.

Prof. Dr. Dietmar Seipel 285

Vorlesung Datenbanken Wintersemester 2013/14

Definition (Verbundabhängigkeit, Join Dependency, jd)

SeiR = (U,Σ) ein Relationenschema zu einer AttributmengeU = ∪ni=1Ui

und einer MengeΣ eine Menge von Datenabhängigkeiten überU .

Die Verbundabhängigkeit

⊲⊳ (U1, . . . , Un)

gilt in R, falls für alle erlaubten Instanzenr vonR gilt:

r = ΠU1(r) ⊲⊳ . . . ⊲⊳ ΠUn

(r).

U1 . . .Un

U1. . . Un

⊲⊳ (U1, . . . , Un) R

Prof. Dr. Dietmar Seipel 286

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (jd)

Wir betrachten die folgenden beiden Relationenr1 undr2,

und die jd δ = ⊲⊳ (AB,BC,CD). In der ersten Relationr1 gilt δ.

r1 :

A B C D

1 1 1 1

1 1 1 2

1 1 2 2

1 2 2 2

2 2 2 2

r2 :

A B C D

1 1 1 1

1 1 1 2

2 1 2 2

In r2 gilt δ nicht, daΠAB(r2) ⊲⊳ ΠBC(r2) ⊲⊳ ΠCD(r2) ) r2 die drei angegebenen

überflüssigen Tupel enthält:

A B

1 1

2 1

B C

1 1

1 2

C D

1 1

1 2

2 2

A B C D

1 1 2 2

2 1 1 1

2 1 1 2

. . . .

Prof. Dr. Dietmar Seipel 287

Vorlesung Datenbanken Wintersemester 2013/14

Folgerung aus dem Dekompositionssatz:

Satz (mvds sind binäre jds)

Es seienX, Y ⊆ U , Z = U \ (XY ) undr eine Relation überU .

Dann gilt die mvdX →→ Y in r, g.d.w. die jd ⊲⊳ (XY,XZ) in r gilt.

Binäre jds

1. Folglich ist jede mvd über paarweise disjunkten MengenX, Y, Z

äquivalent zu einer binären jd:

X →→ Y |Z ⇐⇒ ⊲⊳ (XY,XZ),

2. und umgekehrt:

⊲⊳ (U1, U2) ⇐⇒ U1 ∩ U2 →→ U1 \ U2 | U2 \ U1.

Prof. Dr. Dietmar Seipel 288

Vorlesung Datenbanken Wintersemester 2013/14

Allgemeine jds

1. Eine mvd über paarweise disjunkten MengenX, Y1, . . . , Ym,

X →→ Y1 | Y2 | . . . | Ym,

ist ebenfalls äquivalent zu einer (azyklischen) Join–Dependency

⊲⊳ (XY1, XY2, . . . , XYm),

XY1 . . .Ym

XY1. . . XYm

X →→ Y1 |Y2 | . . . |Ym

RX

Y1

Ym

...

aber nicht jede Join–Dependency ist äquivalent zu einer mvd.

2. Nicht jede jd ist äquivalent zu einer Menge von mvds,denn es gibt Relationen, die verlustfrei in drei (oder mehr)Projektionenzerlegbar sind, aber nicht in zwei.

Prof. Dr. Dietmar Seipel 289

Vorlesung Datenbanken Wintersemester 2013/14

Definition (4NF, 5NF)

Es seiR = (U,Σ) ein Relationenschema in 1NF undΣ eine beliebige Menge

von Datenabhängigkeiten.

1. K ⊆ U heißtOberschlüsselvonR, falls die fdK → U ausΣ folgt.

Ein minimaler Oberschlüssel ist einSchlüssel.

2. K → U heißtSchlüsselabhängigkeit, fallsK ein Schlüssel fürR ist.

3. FallsΣ nur fds und mvds enthält, so istR in vierter Normalform (4NF),

falls die linke SeiteX jeder nicht–trivialen mvd mitΣ |= X →→ Y ein

Oberschlüssel ist, d.h.Σ |= X → U.

4. R ist in fünfter Normalform (5NF)bzw.Projekt–Join–Normalform

(PJNF), falls jede jd mitΣ |= ⊲⊳ (X1, . . . , Xn) alleine aus den

SchlüsselabhängigkeitenK → U vonR folgt.

Prof. Dr. Dietmar Seipel 290

Vorlesung Datenbanken Wintersemester 2013/14

Satz (Normalformen)

SeiR = (U,Σ) ein Relationenschema:

R ist in 5NF⇒ R ist in 4NF⇒ R ist in BCNF.

Die Datenabhängigkeiten in einem 4NF– bzw. 5NF–Relationenschema sind

also äquivalent zu Schlüsselabhängigkeiten.

Deswegen reicht das Konzept der

• Primär– bzw.

• Sekundär–Schlüsselbedingungen

aus SQL (CREATE TABLE ) zur Datenmodellierung aus.

Prof. Dr. Dietmar Seipel 291

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (4NF)

SeiR = (U,Σ) ein Relationenschema mitU = ABC und

Σ = {A →→ B,A →→ C }.

Dann giltΣ |= A →→ B, aberΣ 6|= A → U .

• Deshalb ist Rnicht in 4NF.

• Man kannR aber anhand vonA →→ B |C verlustfreizerlegen in zwei

4NF–Relationenschemata:

ABC

AB AC

A →→ B |C R

Prof. Dr. Dietmar Seipel 292

Vorlesung Datenbanken Wintersemester 2013/14

Ein Instanzr vonR, in derA →→ B undA →→ C gelten, nicht aber

A → U , haben wir bereits gesehen:

r:

A B C

a1 b1 c1

a1 b1 c2

a1 b1 c3

a1 b2 c1

a1 b2 c2

a1 b2 c3

a2 b3 c3

a2 b3 c4

r1:

A B

a1 b1

a1 b2

a2 b3

r2:

A C

a1 c1

a1 c2

a1 c3

a2 c3

a2 c4

Man kannr in die zwei Relationenr1 = ΠAB(r) undr2 = ΠAC(r)

zerlegen, so daß für den Natural Join gilt:r = r1 ⊲⊳ r2.

Prof. Dr. Dietmar Seipel 293

Vorlesung Datenbanken Wintersemester 2013/14

Der HypergraphH zur mvd A →→ B |C bzw. zur entsprehenden jd

⊲⊳ (AB,AC)

ist azyklisch:

H:

A B

C

Ein Hypergraph entspricht einem Mengendiagramm. In einem folgenden

Abschnitt werden wir zyklische bzw. azyklische Hypergraphen definieren.

Prof. Dr. Dietmar Seipel 294

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (4NF, 5NF)

Das Relationenschema

R = (ABC, { ⊲⊳ (AB,AC,BC) })

• ist in 4NF, aber nicht in 5NF:

• es gelten weder nicht–triviale fds noch mvds, und

• der einzige Schlüssel ABC impliziert nicht die jd.

• R kann verlustfrei zerlegt werden in drei 5NF–Relationenschemata:

ABC

AB AC BC

⊲⊳ (AB,AC,BC) R?

Prof. Dr. Dietmar Seipel 295

Vorlesung Datenbanken Wintersemester 2013/14

Der HypergraphH zur Join Dependency

⊲⊳ (AB,AC,BC)

ist zyklisch:

H:

A B

C

Die jd entspricht keiner Menge von mvds.

Prof. Dr. Dietmar Seipel 296

Vorlesung Datenbanken Wintersemester 2013/14

3.5 Verlustfreie Zerlegungen

Definition (Relationales Datenbankschema)

1. Ein relationalesDatenbankschemaD ist eine Menge vonRelationenschemata.

2. D ist in 2NF (3NF, BCNF),falls jedesR ∈ D in 2NF (3NF, BCNF) ist.

ZerlegungvonR in D = {ΠUi(R) | 1 ≤ i ≤ k } :

R

ΠU1(R) ΠUk

(R). . .� ^

r

ΠU1(r) ΠUk

(r). . .� ^

Eine erlaubte Instanzr vonR wird entsprechend zerlegt in eine Datenbankd = {ΠUi

(r) | 1 ≤ i ≤ k } zuD.

Prof. Dr. Dietmar Seipel 297

Vorlesung Datenbanken Wintersemester 2013/14

Definition (Zerlegung)

SeiR = (U, F ) ein Relationenschema undD = { (U1, F1), . . . , (Uk, Fk) }

ein Datenbankschema.

1. D heißtZerlegungvonR, falls gilt:

a) U = U1 ∪ . . . ∪ Uk, und

b) Fi ≡ ΠUi(F ), für alle1 ≤ i ≤ k.

2. Eine ZerlegungD vonR heißt

a) verlustfrei, falls fürR die Join–Bedingung⊲⊳ (U1, . . . , Uk) gilt,

d.h., falls für alle erlaubten Instanzenr überR gilt

r = ΠU1(r) ⊲⊳ . . . ⊲⊳ ΠUk

(r).

b) unabhängig, falls

F ≡ F1 ∪ . . . ∪ Fk.

Prof. Dr. Dietmar Seipel 298

Vorlesung Datenbanken Wintersemester 2013/14

1. Zerlegung:

Alle Attribute ausU bleiben in mindestens einem Relationenschema

(Ui, Fi) erhalten, und die fd–MengenFi sind äquivalent zu den

Projektionen ausF .

2. a) Verlustfreiheit:

Jede erlaubte Instanzr zuR kann als Join der Projektionen

ri = ΠUi(r) rekonstruiert werden.

b) Unabhängigkeit:

Falls eine der Abhängigkeiten vonF nicht in einem der Schemas

(Ui, Fi) ∈ D repräsentiert ist, dann können wir diese Abhängigkeit

nicht in einer einzelnen Relation einer erlaubten Datenbankinstanz

d = { r1, . . . , rk } zuD testen.

In diesem Falle muß man zuerst den Join mehrerer Relationen

ausd berechnen um die Abhängigkeit darin testen zu können.

Prof. Dr. Dietmar Seipel 299

Vorlesung Datenbanken Wintersemester 2013/14

Falls eine Zerlegung

D = { (U1, F1), . . . , (Uk, Fk) }

zwei Relationenschemata(Ui, Fi) und(Uj , Fj) mit sich enthaltenden

AttributmengenUj ( Ui enthält, so kann man das Relationenschema

(Uj , Fj) zur kleineren Attributmenge ausD entfernen.

AusUj ( Ui folgt nämlich für alle Relationenr überU

ΠUi(r) ⊲⊳ ΠUj

(r) = ΠUi(r).

Deswegen gilt für alle erlaubten Instanzenr überR

r = ΠU1(r) ⊲⊳ . . . ⊲⊳ ΠUk

(r) = ⊲⊳1≤i≤k, i 6=j ΠUi(r).

Also istD \ { (Uj , Fj) } immer noch eine verlustfreie Zerlegung.

Prof. Dr. Dietmar Seipel 300

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Zerlegung von Lieferant)

R = (U, F ):

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K }.

1. Die Zerlegung inU1 = LTA, U2 = LO, U3 = OK, mit Fi = ΠUi(F ),

ist verlustfrei und unabhängig. Die Zerlegung ist unabhängig, da jede fd

ausF in einer der drei Projektionen erhalten ist.

2. Die Zerlegung inU1 = LTA, U2 = LO, U3 = LK, mit Fi = ΠUi(F ),

ist verlustfrei. Sie ist aber nicht unabhängig, da die fdO → K in keiner

der drei Projektionen erhalten ist.

Die Verlustfreiheit werden wir später zeigen.

Prof. Dr. Dietmar Seipel 301

Vorlesung Datenbanken Wintersemester 2013/14

r :

L T A O K

L1 T1 300 London 600

L1 T2 200 London 600

L1 T3 400 London 600

L1 T4 200 London 600

L1 T5 100 London 600

L1 T6 100 London 600

L2 T1 300 Paris 450

L2 T2 400 Paris 450

L3 T2 200 Paris 450

L4 T2 200 Brüssel 150

L4 T4 300 Brüssel 150

L4 T5 400 Brüssel 150

Prof. Dr. Dietmar Seipel 302

Vorlesung Datenbanken Wintersemester 2013/14

1. Zerlegung: r = r1 ⊲⊳ r2 ⊲⊳ r3r1 = ΠLTA(r) :

L T A

L1 T1 300

L1 T2 200

L1 T3 400

L1 T4 200

L1 T5 100

L1 T6 100

L2 T1 300

L2 T2 400

L3 T2 200

L4 T2 200

L4 T4 300

L4 T5 400

r2 = ΠLO (r) :

L O

L1 London

L2 Paris

L3 Paris

L4 Brüssel

r3 = ΠOK (r) :

O K

London 600

Paris 450

Brüssel 150

Prof. Dr. Dietmar Seipel 303

Vorlesung Datenbanken Wintersemester 2013/14

2. Zerlegung: r = r1 ⊲⊳ r2 ⊲⊳ r3r1 = ΠLTA(r) :

L T A

L1 T1 300

L1 T2 200

L1 T3 400

L1 T4 200

L1 T5 100

L1 T6 100

L2 T1 300

L2 T2 400

L3 T2 200

L4 T2 200

L4 T4 300

L4 T5 400

r2 = ΠLO (r) :

L O

L1 London

L2 Paris

L3 Paris

L4 Brüssel

r3 = ΠLK (r) :

L K

L1 600

L2 450

L3 450

L4 150

Prof. Dr. Dietmar Seipel 304

Vorlesung Datenbanken Wintersemester 2013/14

3.5.1 BCNF–Dekomposition

Satz (Dekomposition)

Es seiR = (U, F ) mit X → Y ∈ F+ undZ = U \ (XY ).

Dann ist die ZerlegungD = {ΠXY (R),ΠXZ(R) } verlustfrei.

U = XYZ

U1 = XY U1 = XZ

X → Y R

Folglich kann man jede erlaubte Instanzr vonR aus den Projektionen

rekonstruieren alsr = ΠXY (r) ⊲⊳ ΠXZ(r).

Dieser Satz folgt aus dem Dekompositionssatz für mvds,

da jede fdX → Y die entsprechende mvdX →→ Y impliziert.

Prof. Dr. Dietmar Seipel 305

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Dekomposition von Lieferant)

Es seiR = (U, F ) mit

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K }.

FürX → Y = L → O erhalten wirZ = TAK und

R1 = (LO, {L → O }+ ),

R2 = (LTAK , {LT → A,L → K }+ ).

Die fd O → K ∈ F geht bei der Dekomposition verloren, da die AttributeO

undK getrennt werden.

Prof. Dr. Dietmar Seipel 306

Vorlesung Datenbanken Wintersemester 2013/14

Algorithmus D EKOMPOSITION

Input: ein UniversalrelationenschemaR = (U, F )

Output: eine verlustfreie BCNF–ZerlegungD vonR

D := {R };WHILE (D ist nicht in BCNF) DO

{wähleS = ΠV (R) = (V,ΠV (F )) ∈ D

mit einer nicht–trivialen fdX → Y ∈ ΠV (F ),so daßXY ( V ;

ersetzeS in D durchΠXY (S) undΠXZ(S),wobeiZ = V \ (XY );

}

Die Verlustfreiheit zeigt man induktiv aufgrund des Dekompostionssatzes.

Prof. Dr. Dietmar Seipel 307

Vorlesung Datenbanken Wintersemester 2013/14

Alle RelationenschemataS ∈ D sind Projektionen vonR.

• Am Anfang giltD = {R } = {ΠU (R) }.

• Später giltΠW (S) = ΠW (ΠV (R)) = ΠW (R), dennW ⊆ V , fürW = XY undW = XZ.

Wir wollen eine ZerlegungD mit möglichst wenigen Relationenschemataerhalten.

1. Deswegen zerlegt man nur solange, bis alle RelationenschemataS ∈ D

in BCNF sind.

2. Falls bei der Zerlegung RelationenschemataS1 = ΠV1(R) und

S2 = ΠV2(R) mit sich enthaltenden AttributmengenV1 ( V2 entstehen,

so kann man das enthaltene RelationenschemaS1 ausD entfernen.

3. Außerdem kann man zur ZerlegungBCNF–verletzendefds verwenden:Das sind nicht–triviale fdsX → Y ∈ ΠV (F ) mit F 6|= X → V .

Prof. Dr. Dietmar Seipel 308

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Dekompositionen von Lieferant)

Es seiR = (U, F ) mit

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K }.

D1:

LTAOK

LO LTAK

LK LTA

L → O

L → K

R

R

D2:

LTAOK

LTA LTOK

OK LTO

LT → A

O → K

R

R

Prof. Dr. Dietmar Seipel 309

Vorlesung Datenbanken Wintersemester 2013/14

Die erzeugten Zerlegungen vonR = (U, F ) sindverlustfrei:

D1 = {ΠLO(R), ΠLK (R), ΠLTA(R) },

D2 = {ΠLTA(R), ΠOK (R), ΠLTO(R) }.

• D1 ist in BCNF aber nicht unabhängig, denn

O → K /∈ {L → O,L → K,LT → A }+.

Die fd O → K muß inΠLO(r) ⊲⊳ ΠLK (r) getestet werden.

• D2 ist unabhängig aber nicht in BCNF, dennL → O ist

BCNF–verletzend inΠLTO(R).

• Man kannD2 mittelsL → O weiter zuD3 zerlegen:

D3 = {ΠLTA(R), ΠOK (R), ΠLO(R), ΠLT (R) }.

ΠLT (R) ist redundant, da es inΠLTA(R) enthalten ist.

D3 ist in BCNF und unabhängig.

LTO

LO LT

L → O R

Prof. Dr. Dietmar Seipel 310

Vorlesung Datenbanken Wintersemester 2013/14

D3:LTAOK

LTA LTOK

OK LTO

LO LT

LT → A

O → K

L → O

R

R

R

D4:LTOAK

OK LTAO

LO LTA

O → K

L → O

R

R

• Die Entfernung vonΠLT (R) liefert ein Schema

D4 = {ΠLTA(R), ΠOK (R), ΠLO(R) },

das man auch mittels einer anderen Zerlegung direkt erhalten kann:

Es gibt meist viele unterschiedliche Zerlegungsbäume und Zerlegungen.

Prof. Dr. Dietmar Seipel 311

Vorlesung Datenbanken Wintersemester 2013/14

Wenn man bei der Berechnung des Natural Joins dem Zerlegungsbaum folgt,

dann sind je zwei zu verbindende Relationen mittels der AttributmengeX

aus der zerlegenden fdX → Y verbunden:

LTOAK

U3 = OK LTAO

U2 = LO U1 = LTA

O → K

L → O

R

R

⊲⊳

r3 ⊲⊳

r2 r1

� I

� I

FallsX 6= ∅, so tritt bei der Berechnung des Natural Joins kein kartesisches

Produkt auf. Hier berechnen wir

r = r1 ⊲⊳ r2 ⊲⊳ r3 = ( r1 ⊲⊳ r2 ) ⊲⊳ r3.

Prof. Dr. Dietmar Seipel 312

Vorlesung Datenbanken Wintersemester 2013/14

Prinzipiell kann man jede nicht–triviale fdX → Y ∈ F+ zur Zerlegungeines RelationenschemasR = (U, F ) heranziehen, fallsX ∪ Y 6= U .

Falls z.B.K ein Schüssel ist undU \K = {A1, . . . , An }, so kann manmittels der fdsK → Ai eine verlustfreie Zerlegung erhalten:

KA1 . . .An

KA2 . . .An

KAn−1An

KAn

KA1

KA2

KAn−1

K → A1

K → An−1

R

R

R

Für einen Schlüssel mit minimaler Kardinalität|K|, sind viele der SchemataΠKAi

(R) schon in BCNF; die restlichen kann man weiter zerlegen. Imfolgenden Beispiel wären = 1, undKAn = U müßte weiter zerlegt werden.

Prof. Dr. Dietmar Seipel 313

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Unvereinbarkeit von BCNF und Unabhängigkeit)

SeiR = (U, F ) mit

U = {A,B,C },

F = {AB → C,C → B }.

Dann istR in 3NF, aber nicht in BCNF.

ABC

BC AC

C → B R

1. Dekomposition mittels der BCNF–verletzenden fdC → B liefert eine

verlustfreie BCNF–ZerlegungD, die abernicht unabhängigist:

D = { (BC, {C → B}), (AC, ∅) }.

2. Dekomposition mittelsAB → C liefert eine Zerlegung, die wieder

R = ΠABC(R) enthält (und das darin enthaltene, redundanteΠAB(R)).

3. Man kann sogar zeigen, daß es für dieses BeispielR keine unabhängige

BCNF–Zerlegunggibt.

Prof. Dr. Dietmar Seipel 314

Vorlesung Datenbanken Wintersemester 2013/14

ER–Modellierung:

Ein n : m–Relationship–TypR = (E,F, VR) zwischen zwei Entity–TypenE = (VE , KE) undF = (VF , KF ) könnte alternativ auch im ersten Schrittals eine Relation mit der AttributmengeKEV

′EKFV

′FVR und den fds

KE → V ′E , KF → V ′F und – je nach Interpretation –KEKF → VR

repräsentiert werden, wobeiV ′E = VE \KE undV ′F = VF \KF .

E R Fn m

KE V ′E VR KF V ′F

KE V ′E KF V ′F VR

. . . . . . . . . . . . . . .

Prof. Dr. Dietmar Seipel 315

Vorlesung Datenbanken Wintersemester 2013/14

Diese Relation könnte dann im zweiten Schritt mittels desDekompositionsalgorithmusin die bekannten Relationen zerlegt werden.

KEV′EKFV

′FVR

KEV′E KEKFV

′FVR

KFV′F KEKFVR

KE → V ′E

KF → V ′F

R

R

KE V ′E

. . . . . .

KE KF VR

. . . . . . . . .

KF V ′F

. . . . . .

Prof. Dr. Dietmar Seipel 316

Vorlesung Datenbanken Wintersemester 2013/14

Die optionale Bedingung( r(E) = r′(E) ∧ r(F ) = r′(F ) ⇒ r = r′ ) fürn : m–Beziehungen entspricht der fdKEKF → VR.

Im Prüfungsbeispiel mitKE = { TID }, V ′E = {NAME }, KF =

{SNR }, V ′F = {NAME }, VR = {DATE, GRADE }, gilt diese fd nicht,da ein Student mehrere Prüfungen beim selben Dozenten habenkann.

TEACHER EXAM STUDENTn m

TID NAME DATE GRADE SNR NAME

Aber es gilt{ TID, SNR, DATE } → {GRADE }, falls ein Student beimselben Dozenten an einem Tag nur eine Prüfung haben kann.Dies wird durch das Unterstreichen von DATE angezeigt.

Prof. Dr. Dietmar Seipel 317

Vorlesung Datenbanken Wintersemester 2013/14

3.5.2 3NF–Synthese

Bei der 3NF–Synthese wird eine fd–MengeF zuerst zu einer BasisG

vereinfacht, und dann wird jeder fd ausG ein Relationenschema zugeordnet.

Definition (Basis)

SeiF eine fd–Menge.

1. Eine fdf ∈ F heißtredundant, falls f schon ausF \ { f } folgt.

2. EineBasisfür F ist eine zuF äquivalente,

a) MengeG von rechts– und links–minimalen fds,

b) die keine redundanten fds enthält.

Es gibt immermindestens eineBasis, und es gibt manchmal mehrere Basen.

Prof. Dr. Dietmar Seipel 318

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Basis)

1. SeiG = {A → B, B → C } undF = G ∪ {A → C }.

• Dann ist die fdA → C redundant inF ,

da sie aus der transitiven Verkettung der beiden anderen fdsfolgt.

• G ist die eindeutige Basis fürF .

2. SeiG = {A1 → A2, A2 → A1 } undF = G ∪ {A1 → B, A2 → B }.

Dann gibt es die zwei BasenGi = G ∪ {Ai → B }, 1 ≤ i ≤ 2, für F .

A1

A2

B*j

?6

3. F = {LT → A,L → O,O → K } ist bereits eine Basis.

Prof. Dr. Dietmar Seipel 319

Vorlesung Datenbanken Wintersemester 2013/14

Algorithmus B ASIS

SeiF eine fd–Menge.

Um eine Basis vonF zu bestimmen, gehen wir wie folgt vor:

1. Wir zerlegen die fdsX → A1 . . . An mit mehrelementigen rechten

Seiten in einzelne, rechts–minimale fdsX → Ai.

2. Wir verkleinern die linken Seiten der erhaltenen fdsX → Ai,

so daß wir links–minimale fdsX ′ → Ai, mit X ′ ⊆ X , erhalten.

3. Wir entfernen schrittweise redundante fds.

Die erhaltene fd–MengeG ist eine Basis vonF .

Prof. Dr. Dietmar Seipel 320

Vorlesung Datenbanken Wintersemester 2013/14

Algorithmus B ASIS

Input: eine fd–MengeF

Output: eine BasisG vonF

% macheF rechts–minimal

G := {X → A |X → Y ∈ F, A ∈ Y };

% macheG links–minimal

FOR EACH X → A ∈ G DO

ersetzeX → A in G durch

eine links–minimale fdX ′ → A ∈ G+, mit X ′ ⊆ X ;

% entferne redundante fds ausG

FOR EACH f ∈ G DO

IF G \ {f} |= f THEN G := G \ {f};

Prof. Dr. Dietmar Seipel 321

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Basis)

SeiF = {AB → BC }.

• Wir zerlegen die fds inF zunächst in zwei rechts–minimale fds

AB → B undAB → C.

• Die erste fdAB → B ist trivial, und damit auch redundant. Nach

unserem obigen Algorithmus ist sie nicht links–minimal, und sie wird

zuerst zur – ebenfalls trivialen und redundanten – fdB → B verkleinert.

• Die zweite fdAB → C ist links–minimal.

• Nach dem Entfernen der redundanten fdB → B erhält man die Basis

G = {AB → C }.

Prof. Dr. Dietmar Seipel 322

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Basen mit unterschiedlicher Kardinalität)

F = {BC → D, D → E, ACD → B, CE → BD }

1. Die fd CE → BD ist nicht rechts–minimal, sie kann aber in zwei

rechts–minimlae fdsCE → B undCE → D gesplittet werden.

2. AusD → E undCE → B folgt CD → B. Deshalb ist die fd

ACD → B nicht links–minimal; ihre linke Seite könnte zuCD

verkleinert werden. Wir reduzierenACD → B also zuCD → B.

3. Dann kann manCE → B weglassen, oder man kannCE → D und

CD → B weglassen. Man erhält somit zwei Basen:

G1 = G ∪ {CD → B, CE → D },

G2 = G ∪ {CE → B },

mit dem gemeinsamen SchnittG = {BC → D, D → E }.

Prof. Dr. Dietmar Seipel 323

Vorlesung Datenbanken Wintersemester 2013/14

G1 |= G2:

CE → D Augmentierung

CE → CD CD → B Transitivität

CE → B

R

s ?+

G2 |= G1:

D → E Augmentierung

CD → CE CE → B Transitivität

CD → B

R

s ?+

CE → B Augmentierung

CE → BC BC → D Transitivität

CE → D

R

s ?+

Prof. Dr. Dietmar Seipel 324

Vorlesung Datenbanken Wintersemester 2013/14

Verlustfreie und unabhängige 3NF–Zerlegungen

SeiR = (U, F ) ein Relationenschema.

1. Wir erzeugen eine BasisG und bilden für jede fdX → A ∈ G ein

RelationenschemaΠXA(R) = (XA,ΠXA(F )).

2. Falls keine der AttributmengenXA ein Oberschlüssel vonR ist,

so bilden wir ein zusätzliches Relationenschema(K, ∅) zu einem

beliebigen SchlüsselK.

Dann ist das DatenbankschemaD, das die gebildeten Relationenschemata

enthält, eine verlustfreie und unabhängige 3NF–ZerlegungvonR.

Für einen SchlüsselK ist ΠK(F ) ≡ ∅.

Prof. Dr. Dietmar Seipel 325

Vorlesung Datenbanken Wintersemester 2013/14

Algorithmus SYNTHESE

Input: ein RelationenschemaR = (U, F )

Output: eine verlustfreie und unabhängige 3NF–ZerlegungD vonR

G := BASIS (F );

D := {ΠXA(R) |X → A ∈ G };

IF (für keinΠV (R) ∈ D ist V ein Oberschlüssel vonR)

THEN D := D ∪ { (KEY(U, F ), ∅) };

Für einen SchlüsselK ist ΠK(F ) ≡ ∅,

• denn es gibt es keine nicht–triviale fdX → Y ∈ ΠK(F ).

• Sonst würdeK′ → K gelten, fürK′ = K \ (Y \X), dennX ⊆ K′.

WegenY \X 6= ∅ wäreK′ ( K, und folglichK kein Schlüssel.

Prof. Dr. Dietmar Seipel 326

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Synthese vs. Dekomposition für Lieferant)

Der Synthese–Algorithmus angewandt auf

U = {L, T,A,O,K },

F = {LT → A,L → O,O → K },

liefert die BasisG = F und die Zerlegung inΠUi(R) mit

U1 = {L, T,A },

U2 = {L,O },

U3 = {O,K }.

LTAOK

OK LTAO

LO LTA

O → K

L → O

R

R

Diese Zerlegung könnte man auch durch Dekomposition mit Hilfe der fds

O → K undL → O erhalten.

Prof. Dr. Dietmar Seipel 327

Vorlesung Datenbanken Wintersemester 2013/14

Datendefinition in SQL

In den Relationenschemata der Zerlegung kann man die fds ausG mit Hilfe

von PRIMARY KEY–Klauseln ausdrücken, denn die linken Seiten der

entsprechenden fds ausG sind darin Schlüssel.

CREATE TABLE LTA (

L VARCHAR(9),

T VARCHAR(9),

A INT(6),

PRIMARY KEY (L,T) );

Die linke SeiteLT der fdLT → A war bereits ein Schlüssel im

Ausgangsrelationenschema zuU = {L, T,A,O,K }.

Prof. Dr. Dietmar Seipel 328

Vorlesung Datenbanken Wintersemester 2013/14

Die fdsO → K undL → O, die man im Relationenschema zu

U = {L, T,A,O,K } nicht in SQL ausdrücken konnte, kann man nun

ebenfalls in SQL ausdrücken.

CREATE TABLE LO (

L VARCHAR(9),

O VARCHAR(12),

PRIMARY KEY (L) );

CREATE TABLE OK (

O VARCHAR(12),

K DECIMAL(7,2),

PRIMARY KEY (O) );

BezüglichU sindL undO keine Oberschlüssel, bezüglichU2 = {L,O } und

U3 = {O,K } sindL bzw.O Schlüssel.

Prof. Dr. Dietmar Seipel 329

Vorlesung Datenbanken Wintersemester 2013/14

Außerdem kann man noch folgende Fremdschlüsselbedingungen hinzufügen:

• zuLTA:

FOREIGN KEY (L)

REFERENCES LO(L)

• zuLO:

FOREIGN KEY (O)

REFERENCES OK(O)

Die TabelleLTA wird nicht referenziert.

Prof. Dr. Dietmar Seipel 330

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Synthese)

In F = {L → O,O → K,L → K } ist die fdL → K redundant.O → K

ist 3NF–verletzend.F ist äquivalent zu seiner BasisG = {L → O,O → K }.

L O K

L1 London 600

L2 Paris 450

L5 Prag 600

• Nach dem Synthese–Algorithmus würde man die obige Relationr

mittelsπLO(r) undπOK(r) repräsentieren. Eine weitere RelationπLK(r) wäre hier redundant.

• Man könnter aber auch mittelsπLO(r) undπLK(r) repräsentieren.

• Man kannr aber nicht mittelsπOK(r) undπLK(r) repräsentieren, dennπOK(r) ⊲⊳ πLK(r) enthält das Tupel (L1, Prag, 600)6∈ r.

Prof. Dr. Dietmar Seipel 331

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Synthese vs. Dekomposition)

1. Das RelationenschemaR = (U, F ) mit

U = {A,B,C },

F = {AB → C,C → B },

ist bereits in 3NF, und es gibt bekanntlich keine verlustfreie

BCNF–Zerlegung, die auch noch unabhängig wäre.

• F ist bereits eine Basis.

• Der Synthese–Algorithmus würdeU zerlegen in

U1 = ABC undU2 = BC.

Das redundante Schema zuU2 würde man wieder fallen lassen.

• Der Dekompositions–Algorithmus würdeU zerlegen in

U1 = BC undU2 = AC.

Prof. Dr. Dietmar Seipel 332

Vorlesung Datenbanken Wintersemester 2013/14

2. Das erweiterte RelationenschemaR = (U, F ) mit

U = {A,B,C,D },

F = {AB → C,C → B,C → D },

hat die zwei SchlüsselAB undAC, und es ist wegenC → D nicht in

3NF.

• F ist bereits eine Basis.

• Der Synthese–Algorithmus würdeU zerlegen in

U1 = ABC, U2 = BC undU3 = CD.

Das redundante Schema zuU2 würde man wieder fallen lassen.

• Der Dekompositions–Algorithmus könnteU zerlegen in

U1 = BC, U2 = CD undU3 = AC.

Prof. Dr. Dietmar Seipel 333

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Synthese vs. Dekomposition)

Das RelationenschemaR = (U, F ) mit U = {A,B,C,D,E } und

F = {BC → D, D → E, ACD → B, CE → BD }

mit den zwei Basen

G1 = G ∪ {CD → B, CE → D },

G2 = G ∪ {CE → B },

mit dem gemeinsamen Schnitt

G = {BC → D, D → E }

hat die drei SchlüsselACB, ACD undACE.

Da alle Attribute prim sind, istR in 3NF.

Prof. Dr. Dietmar Seipel 334

Vorlesung Datenbanken Wintersemester 2013/14

1. Der Synthese–Algorithmus würde (unnötigerweise) zerlegen in

D1 = {ΠBCD(R), ΠDE(R), ΠCDE(R), ΠK(R) } oder

D2 = {ΠBCD(R), ΠDE(R), ΠBCE(R), ΠK(R) },

für einen beliebigen SchlüsselK.

2. Der Dekompositions–Algorithmus könnte z.B. das reduzierte Schema

D′1 = {ΠBCD(R), ΠCDE(R), ΠK(R) }

für den SchlüsselK = ACE erzeugen.

ABCDE

BCD ACDE

CDE ACE

CD → B

CE → D

R

R

Prof. Dr. Dietmar Seipel 335

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Synthese)

1. SeiR = (U, F ) mit

U = {A,B,C,D,E },

F = {AB → CD, BC → D }.

R ist nicht in 3NF wegenBC → D, undAB → D ist redundant.

• Der eindeutige SchlüsselvonR ist K = ABE .

Die eindeutige BasisvonR ist G = {AB → C,BC → D }.

• Der 3NF–SYNTHESE–Algorithmus liefert eineunabhängigeund

verlustfreie 3NF–ZerlegungD in drei Relationenschemata

R1 = ΠABC (R), R2 = ΠBCD(R), R3 = (ABE , ∅).

• Ohne das SchemaR3 zum SchlüsselK = ABE wäre das AttributE

nicht inD enthalten.

Prof. Dr. Dietmar Seipel 336

Vorlesung Datenbanken Wintersemester 2013/14

2. SeiR = (U, F ) mit

U = {A,B,C,D },

F = {A → B, C → D }.

R ist nicht in 3NF wegenA → B und wegenC → D.

• Der eindeutige SchlüsselvonR ist K = AC.

Die eindeutige BasisvonR ist G = F .

• Der 3NF–SYNTHESE–Algorithmus liefert eineunabhängigeund

verlustfreie 3NF–ZerlegungD in drei Relationenschemata

R1 = ΠAB (R), R2 = ΠCD(R), R3 = (AC, ∅).

• Ohne das SchemaR3 zum SchlüsselK = AC wäreD

unzusammenhängend.

Prof. Dr. Dietmar Seipel 337

Vorlesung Datenbanken Wintersemester 2013/14

r :

A B C D

a1 b c1 d1

a2 b c2 d2

ΠAB(r) :

A B

a1 b

a2 b

ΠCD(r) :

C D

c1 d1

c2 d2

ΠAC(r) :

A C

a1 c1

a2 c2

r ( ΠAB(r) ⊲⊳ ΠCD(r) :

A B C D

a1 b c1 d1

a1 b c2 d2

a2 b c1 d1

a2 b c2 d2

ΠAB(r) ⊲⊳ ΠCD(r)

ist ein kartesisches Produkt, da die Rela-

tionen keine Attribute gemeinsam haben

(unzusammenhängend sind).

ΠAB(r) ⊲⊳ ΠAC(r) ⊲⊳ ΠCD(r) = r,

dennAC stellt einen geeigneten Zusam-

menhang her –BC wäre ungeeignet.

Prof. Dr. Dietmar Seipel 338

Vorlesung Datenbanken Wintersemester 2013/14

Da der SYNTHESE–Algorithmus eine Basis verwendet, enthält die Zerlegung

D möglichst wenige Relationenschemata mit wenigen Attributen.

Wir haben bereits gesehen, daß manchmal einzelne Relationenschemata der

Zerlegung redundant sind, da ihre Attributmengen in anderen

Relationenschemata enthalten sind.

Ein RelationenschemaR = (U, F ) ohne fds wird effektiv nicht zerlegt.

Beispiel (Synthese)

Ein RelationenschemaR = (U, F ) mit F = ∅ ist schon in 3NF.

1. Die Basis istG = ∅ undK = U ist der eindeutige Schlüssel.

2. Also wird die ZerlegungD = { (K, ∅) } = { (U, F ) } erzeugt,

d.h.R wird faktisch nicht zerlegt.

Prof. Dr. Dietmar Seipel 339

Vorlesung Datenbanken Wintersemester 2013/14

Nachweis der Verlustfreiheit

Definition (Schema–Tableau)

Wir betrachten ein DatenbankschemaD = {R1, . . . , Rk } mit

Ri = (Ui, Fi), für 1 ≤ i ≤ k, und setzenU = ∪ki=1Ui = {A1, . . . , Am }.

1. DasSchema–TableauTD zuD ist eine Tabelle mitm = |U | Spalten und

k Zeilenwi = (wi,1, . . . , wi,m), die den SchemataRi entsprechen:

wi,l =

a, fallsAl ∈ Ui

bi, fallsAl /∈ Ui

Dabei sinda, b1, . . . , bk paarweise verschiedene Symbole.

2. wi heißta–Zeile, fallswi,l = a, für alle1 ≤ l ≤ m.

Man schreibt die AttributeA1, . . . , Am in eine zusätzliche Kopfzeile.

Prof. Dr. Dietmar Seipel 340

Vorlesung Datenbanken Wintersemester 2013/14

Tableau–Algorithmus LJP (Lossless Join Property)

Input: eine ZerlegungD eines RelationenschemasR = (U, F )

Output: true, fallsD verlustfrei ist, false, sonst

konstruiereTD;

WHILE (TD läßt sich verändern) DO

FOR EACH (X → Y ∈ F ) DO

FOR EACH (wi, wj in TD, i 6= j: wi[X ] = wj [X ]) DO

identifizierewi undwj für alleAl ∈ Y :

◦ istwi,l = a, so setzewj,l := a,

◦ istwj,l = a, so setzewi,l := a,

◦ andernfalls setze (o.B.d.A.)wj,l := wi,l

IF (∃ a–Zeile) THEN RETURN true ELSE RETURN false;

Satz: D ist verlustfrei, genau dann wenn LJP(R,D) = true gilt.

Prof. Dr. Dietmar Seipel 341

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (LJP–Algorithmus)

LJP liefert für die ZerlegungD vonR = (U, F ), mit

U = {L, T,A,O,K},

F = {LT → A,L → O,O → K },

in die AttributmengenU1 = {L, T,A}, U2 = {L,O} undU3 = {O,K}

folgende Tableaus:

L T A O K

w1 a a a b1 b1

w2 a b2 b2 a b2

w3 b3 b3 b3 a a

Prof. Dr. Dietmar Seipel 342

Vorlesung Datenbanken Wintersemester 2013/14

Operationen:

1. Die Anwendung vonL → O aufw1, w2, und danach

2. die Anwendung vonO → K aufw1, w3,

liefern einea–Zeile inw1:

L T A O K

w1 a a a a b1

w2 a b2 b2 a b2

w3 b3 b3 b3 a a

L T A O K

w1 a a a a a

w2 a b2 b2 a b2

w3 b3 b3 b3 a a

Die AttributmengeU1 zuw1 enthält einen Schlüssel vonR. Die fehlenden

a’s werden aus den beiden anderen Zeilen geholt.

Diese zeigt die Verlustfreiheit der ZerlegungD.

Prof. Dr. Dietmar Seipel 343

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (LJP–Algorithmus)

Anwendung des LJP–Algorithmusauf die Bank–Anwendung:

K = Kunde, N = Kontonummer, S = Saldo, Z = Zweigstelle,

F = {K → S,N → SZ }.

DasSchema–Tableauzur Zerlegung inU1 = KS undU2 = NSZ wird von

LJPnicht verändert.

K N S Z

w1 a b1 a b1

w2 b2 a a a

Die Zerlegung istnicht verlustfrei.

Prof. Dr. Dietmar Seipel 344

Vorlesung Datenbanken Wintersemester 2013/14

Die Hinzunahme eines Relationenschemas zum SchlüsselU3 = KN liefert

eineverlustfreie Zerlegung, denn die Anwendung vonN → SZ aufw2, w3

liefert das zweite Tableau mit einera–Zeile inw3:

K N S Z

w1 a b1 a b1

w2 b2 a a a

w3 a a b3 b3

K N S Z

w1 a b1 a b1

w2 b2 a a a

w3 a a a a

Die AttributmengeU3 zuw3 enthält einen Schlüssel vonR. Die fehlenden

a’s werden aus der Zeilew2 geholt.

Das Schema zuU1 = KS ist also für die Verlustfreiheit der Zerlegung

unerheblich. OhneU1 wäre die Zerlegung allerdings nicht unabhängig, denn

die fdK → S ginge verloren.

Prof. Dr. Dietmar Seipel 345

Vorlesung Datenbanken Wintersemester 2013/14

Satz (3NF–Synthese)

SeiR = (U, F ) ein Relationenschema.

Dann liefert SYNTHESE (R) eineverlustfreieundunabhängige

3NF–ZerlegungvonR.

Beweis.

SeiD = {R1, . . . , Rk } mit Ri = (Ui, Fi) die betrachtete Zerlegung.

1. Unabhängikeit:

Nach Konstruktion werden alle in der BasisG enthaltenen fds an die

KomponentenRi vererbt. Deshalb gilt

F+ = G+ =

(k⋃

i=1

Fi

)+

,

d.h. die ZerlegungD ist unabhängig.

Prof. Dr. Dietmar Seipel 346

Vorlesung Datenbanken Wintersemester 2013/14

2. Verlustfreiheit:

Nach Konstruktion existiert ein SchemaRi = (Ui, Fi) ∈ D mit einem

OberschlüsselUi, d.h.Ui → U ∈ F+.

Wir wenden nun den Algorithmus LJPaufR undD an und beobachten

speziell die Veränderungen in der Zeilewi zuRi.

• Insbesondere interessieren wir uns für die Anwendung jenerfds

X → Y ∈ Fj auf das TableauTD, welche zur Hüllenberechnung von

U = (Ui)+G verwendet werden.

• Diese fds werden in derselben Reihenfolge, in der sie bei der

Hüllenberechnung verwendet werden, auf die Zeilenwi undwj des

Tableaus angewendet. Eine fdX → Y ∈ Fj wird also auf die zugehörige

Zeilewj sowie die Zeilewi zum OberschlüsselUi angewendet.

Per Induktion kann man zeigen, daß vor der Anwendung vonX → Y in

allenX–Spalten vonwi nura–Einträge stehen.

Prof. Dr. Dietmar Seipel 347

Vorlesung Datenbanken Wintersemester 2013/14

Da auch in denX–Spalten vonwj nura–Einträge stehen, können diea–Einträge derY –Spalten vonwj nachwi übertragen werden:

Ui X \ Ui Y

wi a . . . a a . . . a

↑ ↑

wj a . . . . . . . . . a a . . . a

Nach der Anwendung aller fdsX → Y aus der Hüllenberechnung aufdas Tableau gilt folglich:

es stehen nura–Einträge in den(Ui)+G–Spalten vonwi.

Wegen der Unabhängigkeit vonD gilt aber für den OberschlüsselUi:

(Ui)+G = (Ui)

+F = U,

d.h.wi ist einea–Zeile.

Folglich ist die ZerlegungD verlustfrei.

Prof. Dr. Dietmar Seipel 348

Vorlesung Datenbanken Wintersemester 2013/14

3. 3NF:

Wir betrachten 2 Fälle fürS ∈ D:

• Falls das Schema

S = (K, ∅)

zu einem SchlüsselK für R explizit inD aufgenommen wurde,so istS trivialerweise in 3NF.

• Falls

S = ΠXA(R)

ein Schema ist, welches durch eine fdX → A ∈ G aus der BasisGerzeugt wurde, so gilt:

– X → A ist links–minimal und rechts–minimal, und somit– 3NF–kompatibel.

Also ist auch dieses SchemaS in 3NF.

Somit ist die gesamte ZerlegungD in 3NF.

Prof. Dr. Dietmar Seipel 349

Vorlesung Datenbanken Wintersemester 2013/14

Algorithmus SYNTHESE ’

Input: R = (U, F )

Output: Eine verlustfreie und unabhängige ZerlegungD vonR

G := BASIS(F ); D := ∅;

FOR EACH (linke SeiteX einer fd ausG) DO {

Y := { A ∈ U |X → A ∈ G };

D := D ∪ {ΠXY (R) } };

IF (für keinΠV (R) ∈ D ist V ein Oberschlüssel vonR)

THEN D := D ∪ { (KEY(U, F ), ∅) };

Auch der Algorithmus SYNTHESE’(R) liefert für alle RelationenschemataR

eineverlustfreieundunabhängige 3NF–Zerlegung.

Prof. Dr. Dietmar Seipel 350

Vorlesung Datenbanken Wintersemester 2013/14

Da SYNTHESE’ eine Basis verwendet, enthält die ZerlegungD möglichstwenige Relationenschemata mit wenigen Attributen, die dann zusätzlichnoch geeignet zusammengefaßt werden, ohne die 3NF zu verletzen.

X → A1, . . . , X → Ak ∈ G

ΠXA1(R), . . . ,ΠXAk

(R)

ΠXA1...Ak(R)

Basis

SYNTHESE

SYNTHESE ’

? ?

R

Prinzip “one fact in one place”:

Jede linke SeiteX einer fd aus der BasisG wird als ein Konzept augefaßtund die abhängigen Attribute inY = {A1, . . . , Ak } als dessenEigenschaften;X undY werden in einem Schema zusammengefaßt.

Prof. Dr. Dietmar Seipel 351

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (SYNTHESE vs. SYNTHESE ’)

Das RelationenschemaR = (U, F ) mit

U = {A,B,C,D,E } undF = {AB → CD }

ist nicht in 3NF. Dieeindeutige BasisvonR ist

G = {AB → C,AB → D },

und der eindeutige Schlüssel vonR ist {A,B,E}.

1. Der Algorithmus SYNTHESE liefert die Zerlegung in drei

Relationenschemata:

R1 = ΠABC(R), R2 = ΠABD(R), R3 = (ABE, ∅).

2. Der Algorithmus SYNTHESE’ liefert dagegen eine Zerlegung in nur zwei

RelationenschemataR1,2 undR3, in derR1 undR2 zusammen ein

Schema bilden:R1,2 = ΠABCD(R).

Prof. Dr. Dietmar Seipel 352

Vorlesung Datenbanken Wintersemester 2013/14

ER–Modellierung:

Der Algorithmus SYNTHESE’ kann auch für einenn : m–Relationship–TypR = (E,F, VR) zwischenE = (VE , KE) undF = (VF , KF ) angewendetwerden. FürV ′E = VE \KE , V ′F = VF \KF , undU = KEV

′EKFV

′FVR ist

G = {KE → V ′E , KF → V ′F , KEKF → VR }

bereits eine Basis, und wir erhalten auch hier wieder die Zerlegung in

U1 = KEV′E , U2 = KFV

′F , U3 = KEKFVR.

E R Fn m

KE V ′E VR KF V ′F

Dies gilt auch, falls wir die fdKEKF → VR nicht annehmen, denn dannkommtU3 als Relation zum eindeutigen Schlüssel hinzu.

Prof. Dr. Dietmar Seipel 353

Vorlesung Datenbanken Wintersemester 2013/14

3.6 Azyklische Datenbankschemata

Wir gehen von einem DatenbankschemaD = {R1, . . . , Rn }, mitRelationenschemataRi = (Ui, Fi), und einer zugehörigen, erlaubtenDatenbankinstanzd = { r1, . . . , rn } aus.

Wir definierenR = (U, F ) = ⊲⊳ni=1 Ri mittelsU = ∪ni=1Ui, F = ∪n

i=1Fi.

R = ⊲⊳ni=1 Ri

R1 Rn. . .

� ]

r = ⊲⊳ni=1 ri

r1 rn. . .

� ]

Die Relationr heißtUniversalrelation.

Universalrelationen–Anfragen der Formq = ΠX(r) über AttributmengenX ⊆ U solleneffizientdurchJoinsüber geeignete, möglichst kleineTeilmengen der Relationenri beantwortet werden – ohner komplett zuberechnen.

Prof. Dr. Dietmar Seipel 354

Vorlesung Datenbanken Wintersemester 2013/14

Bei der Berechnung des Natural Joins

⊲⊳ d = ⊲⊳ { r1, . . . , rn } = r1 ⊲⊳ . . . ⊲⊳ rn

muß man auch berücksichtigen, daß die Relationenri an unterschiedlichen

Standorten gespeichert sein können.

r1

r2

r3

r4R

I

IR

�?

6-�

Dann sollen dieKommunikationskostenbeim Join minimiert werden.

Prof. Dr. Dietmar Seipel 355

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (COMPANY–Datenbank)

Wir betrachten den Ausschnittd = { r1, r2, r3, r4, r5 } mit

r1 = EMPLOYEE,

r2 = WORKS_ON,

r3 = PROJECT.

r4

SSN ESSN

111111111 111111111

222222222 222222222

. . . . . .

r5

PNO PNUMBER

1 1

2 2

. . . . . .

Da die Relationenr1, r2, r3, keine gemeinsamen Attribute haben, erfordert

der Natural Join⊲⊳ d zur Berechnung des Views E_WORKS_ON_P virtuelle

Relationenr4 undr5 zur Repräsentation der Join–Bedingungen

r1.SSN = r2.ESSNundr2.PNO = r3.PNUMBER

(hier: Fremdschlüsselbeziehungen) zwischenr1 undr2 bzw.r2 undr3.

Prof. Dr. Dietmar Seipel 356

Vorlesung Datenbanken Wintersemester 2013/14

Bei der Berechnung des eingeschränkten Views entsprechend

SELECT FNAME, LNAME, PNAME, HOURS

FROM EMPLOYEE, PROJECT, WORKS_ON

WHERE SSN=ESSNAND PNO=PNUMBER

AND BDATE >= ’1960-01-01’AND HOURS >= 10AND DNUM = 4

mittels des Natural Joinsr = re ⊲⊳ r4 ⊲⊳ rw ⊲⊳ r5 ⊲⊳ rp und der Projektion

ΠX(r), für X = { FNAME, LNAME, PNAME, HOURS}, enthalten die

eingeschränkten Relationenre = σBDATE ≥ ’1960-01-01’(EMPLOYEE),

rw = σHOURS≥ 10(WORKS_ON), rp = σDNUM = 4(PROJECT), dangling tuples.

EMPLOYEE WORKS_ON PROJECT

r4 r5

FNAME

LNAMESSN ESSN

HOURS

PNOPNUM-

BER PNAME

Prof. Dr. Dietmar Seipel 357

Vorlesung Datenbanken Wintersemester 2013/14

Man kannΠX(r) entlang der Join–Kette(re, r4, rw, r5, rp) wie folgt

berechnen:

s1 = ΠFNAME , LNAME , SSN(re),

s2 = ΠFNAME , LNAME , ESSN(s1 ⊲⊳ r4) = {SSN 7→ ESSN}(s1),

s3 = ΠFNAME , LNAME , HOURS, PNO(s2 ⊲⊳ rw),

s4 = ΠFNAME , LNAME , HOURS, PNUMBER(s3 ⊲⊳ r5) = {PNO 7→ PNUMBER}(s3),

s5 = ΠFNAME , LNAME , HOURS, PNAME(s4 ⊲⊳ rp).

Dann giltΠX(r) = s5.

• Die Anfrage–Attribute ausX werden aufgesammelt.

• Die Join–Attribute werden weg–projeziert,

sobald sie nicht mehr weiter benötigt werden.

Diese Join–Strategie wollen wir im folgenden auf komplexere

Join–Ausdrücke mit nicht–linearen Join–Ketten verallgemeinern.

Prof. Dr. Dietmar Seipel 358

Vorlesung Datenbanken Wintersemester 2013/14

O: ΠFNAME , LNAME , PNAME , HOURS

⊲⊳

ΠFNAME , LNAME , PNO, HOURS

{PNO7→PNUMBER}

{SSN7→ESSN}

ΠFNAME , LNAME , SSN

σBDATE ≥ ’1960-01-01’

EMPLOYEE

⊲⊳

σHOURS≥ 10

WORKS_ON

σDNUM = 4

PROJECT

I

I�

6

6

6 6

6

6

Prof. Dr. Dietmar Seipel 359

Vorlesung Datenbanken Wintersemester 2013/14

Anfragen in verteilten Datenbanken

Es soll der Natural Join

⊲⊳ d = ⊲⊳ { r1, . . . , rn } = r1 ⊲⊳ . . . ⊲⊳ rn

über eine Datenbankinstanzd = { r1, . . . , rn } berechnet werden,

wobei jede Relationri an einem anderen Ort gespeichert sein kann.

1. Man kann zuerst alle Tupel einer Relationri eliminieren, die keine

Join–Partner in den anderen Relationen haben (dangling tuples).

2. Für diereduziertenRelationenr∇i ⊆ ri gilt dann immer noch

⊲⊳ d = r1 ⊲⊳ . . . ⊲⊳ rn = r∇1 ⊲⊳ . . . ⊲⊳ r∇n .

3. FürazyklischeDatenbankschemata gibt es effiziente Methoden zur

Reduktion mit Hilfe von Semi–Join–Programmen.

Dieses Vorgehen minimiert dieKommunikationskostenbeim Join.

Prof. Dr. Dietmar Seipel 360

Vorlesung Datenbanken Wintersemester 2013/14

Vollständige Reduktion

Die vollständige Reduktion vonri bezüglichd ist

r∇i = ΠUi(⊲⊳ d),

und die vollständige Reduktion vond ist d∇ = { r∇1 , . . . , r∇n }.

Bekanntlich gilt immerr∇i ⊆ ri undr ⊆ ΠU1(r) ⊲⊳ . . . ⊲⊳ ΠUn

(r).

1. Die globale Konsistenz fordertri = r∇i , für 1 ≤ i ≤ n.

r1, . . . , rn⊲⊳−→ ⊲⊳ d

Π−→ r1, . . . , rn :

2. Die Verlustfreiheit bedeutet dagegenr = ΠU1(r) ⊲⊳ . . . ⊲⊳ ΠUn

(r).

−→ r1, . . . , rn⊲⊳−→ r :

d∇ reicht aus, um den Join zu berechnen:⊲⊳ d = ⊲⊳ d∇.

Die vollständige Reduktion ist idempotent:(d∇)∇ = d∇.

Prof. Dr. Dietmar Seipel 361

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Vollständige Reduktion)

Wir betrachten die Datenbankinstanz

d = { r1, r2, r3, r4 }

mit folgenden Relationen:

r1 : r2 : r3 : r4 :

A B C

0 3 2

0 1 2

3 1 2

1 1 3

B C D E

3 2 1 0

1 2 3 0

1 3 1 0

B C D G

3 2 1 4

1 2 3 2

1 3 1 0

1 3 1 1

C D E F

2 1 1 4

2 3 0 1

3 1 0 2

3 1 0 3

A CB D

E

G

F

Prof. Dr. Dietmar Seipel 362

Vorlesung Datenbanken Wintersemester 2013/14

Die Universalrelation

r = r1 ⊲⊳ r2 ⊲⊳ r3 ⊲⊳ r4

ist gegeben durch:

A B C D E F G

0 1 2 3 0 1 2

3 1 2 3 0 1 2

1 1 3 1 0 2 0

1 1 3 1 0 2 1

1 1 3 1 0 3 0

1 1 3 1 0 3 1

Prof. Dr. Dietmar Seipel 363

Vorlesung Datenbanken Wintersemester 2013/14

In der Relationr gilt die jd

⊲⊳ (ABC,BCDE,BCDG,CDEF ).

Die reduzierten Relationen bilden eine konsistente Zerlegung vonr:

r∇1

: r∇2

: r∇3

: r∇4

:

A B C

0 1 2

3 1 2

1 1 3

B C D E

1 2 3 0

1 3 1 0

B C D G

1 2 3 2

1 3 1 0

1 3 1 1

C D E F

2 3 0 1

3 1 0 2

3 1 0 3

Jeweils das erste Tupel einer jeden Relationri konnte nicht am Join

teilnehmen (dangling tuples).

Prof. Dr. Dietmar Seipel 364

Vorlesung Datenbanken Wintersemester 2013/14

Konsistenz

SeiD = {R1, . . . , Rn } ein Datenbankschema sowied = { r1, . . . , rn }

eine entsprechende Datenbankinstanz zuD, so daßri eine erlaubte InstanzvonRi = (Ui, Fi), für 1 ≤ i ≤ n, ist.

1. Zwei Relationenri, rj ∈ d heißenkonsistent, falls es eine RelationrüberUi ∪ Uj gibt mit ri = ΠUi

(r) undrj = ΠUj(r). In diesem Fall

kann manr = r1 ⊲⊳ r2 wählen.

2. Die Datenbankinstanzd heißt

a) paarweise konsistent, falls je zwei Relationenri, rj ∈ d konsistentsind.

b) global konsistent, falls es eine Relationr überU gibt mitri = ΠUi

(r), für 1 ≤ i ≤ n.

Die vollständige Reduktiond∇ = { r∇1 , . . . , r∇n } vond ist global konsistent.

Prof. Dr. Dietmar Seipel 365

Vorlesung Datenbanken Wintersemester 2013/14

Bemerkungen (globale Konsistenz)

Seid = { r1, . . . , rn } eine Datenbankinstanz.

1. Fallsd global konsistent ist, so gilt insbesondereri = ΠUi(r), für

1 ≤ i ≤ n, wenn man die Universalrelationr = ⊲⊳ d wählt.

2. d ist genau dann global konsistent, wennd mit seiner vollständigen

Reduktion übereinstimmt:d∇ = d.

3. d ist genau dann global konsistent, wenn es durch Zerlegung einer

fiktiven Relationr in Relationenri = ΠUi(r), für 1 ≤ i ≤ n, entsteht.

• Für solche Zerlegungen gilt also immerd∇ = d.

• Neben der Universalrelation⊲⊳ d kann es weitere Relationenr geben,

aus denend entstanden sein kann.

• Für diese erzeugenden Relationen muß aber immerr ⊆ ⊲⊳ d gelten.

Prof. Dr. Dietmar Seipel 366

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (globale Konsistenz)Die global konsistente Datenbankinstanzd = { r1, r2 } kann durch Zerlegungunterschiedlicher Relationen, z.B.r = r1 ⊲⊳ r2, r′ undr′′, erzeugt werden:

r1 : r2 :

A B

a b

a′ b

B C

b c

b c′

r : r′ : r′′ :

A B C

a b c

a b c′

a′ b c

a′ b c′

A B C

a b c

a′ b c′

A B C

a b c′

a′ b c

d entsteht auch aus allen Obermengens vonr′ oderr′′, mit s ⊆ r.

Prof. Dr. Dietmar Seipel 367

Vorlesung Datenbanken Wintersemester 2013/14

Semi–Join–Reduktion

Seienr, s zwei Relationen über den AttributmengenUr, Us.

Der Semi–Joinvon r mit s ist

r⋉s = ΠUr(r ⊲⊳ s).

r :

. . . . . . . . . . . .

︸ ︷︷ ︸

Ur∩Us

s :

. . .

︸ ︷︷ ︸

Ur∩Us

. . . . . . . . .

Folgerung (Semi–Joins)

Für r′ = r⋉s unds′ = s⋉r gilt:

1. r′ ⊆ r unds′ ⊆ s,

2. r′ unds′ sind konsistent,

3. r′ = r ⊲⊳ ΠUr∩Us(s) = { t ∈ r | t[Ur ∩ Us] ∈ ΠUr∩Us

(s) },

4. r ⊲⊳ s = r′ ⊲⊳ s = r ⊲⊳ s′ = r′ ⊲⊳ s′.

Der kleine TeilΠUr∩Us(s) vons reicht aus umr⋉s ausr zu berechnen.

Prof. Dr. Dietmar Seipel 368

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Semi–Joins)

Zur Semi–Join–Reduktion vonr mit s kann manΠUr∩Us(s) verwenden:

r: s: r⋉s: s⋉r:

A B

a1 b1

a2 b2

a3 b3

B C

b2 c2

b3 c3

b4 c4

A B

a2 b2

a3 b3

B C

b2 c2

b3 c3

ΠB(r): ΠB(s):

B

b1

b2

b3

B

b2

b3

b4

Es giltUr ∩ Us = {B }.

1. WegenΠB(r) 6= ΠB(s),

sindr unds nicht konsistent.

2. NurΠB(s) muß vons zur geschickt

werden, um dortr⋉s zu berechnen.

Prof. Dr. Dietmar Seipel 369

Vorlesung Datenbanken Wintersemester 2013/14

Folgerung (globale und paarweise Konsistenz)

1. Die Datenbankinstanzd ist global konsistent, g.d.w. für die Relation⊲⊳ d = ⊲⊳ni=1 ri gilt ri = ΠUi

(⊲⊳ d), d.h. wennri = r∇i , für 1 ≤ i ≤ n.

2. Zwei Relationenr, s sind konsistent, g.d.w. die Datenbankd = { r, s }

global konsistent ist. Dies ist der Fall, wenn

r = r⋉s und s = s⋉r,

und es ist äquivalent zur Inklusionsabhängigkeit

ΠUr∩Us(r) = ΠUr∩Us

(s).

3. Aus der globalen Konsistenz folgt die paarweise Konsistenz.

Konsistenztests (paarweise, global)

1. Der Test auf paarweise Konsistenz kann in polynomieller Zeit erfolgen.

2. Der Test auf globale Konsistenz istNP–vollständig.

Prof. Dr. Dietmar Seipel 370

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Konsistenz)

1. Die Datenbankinstanzd = { r1, r2, r3 } mit den Relationen

r1 : r2 : r3 :

A B

a b

a′ b′

B C

b c

b′ c′

C A

c a′

c′ a

ist zwarpaarweisekonsistent, abernicht global. Es gilt

a) ri⋉rj = ri, für alle1 ≤ i 6= j ≤ n,

b) r1 ⊲⊳ r2 ⊲⊳ r3 = ∅, und

c) r∇i = ∅, für alle1 ≤ i ≤ n.

Man kannd nicht mit Hilfe von Semi–Joins reduzieren.

Prof. Dr. Dietmar Seipel 371

Vorlesung Datenbanken Wintersemester 2013/14

2. Gegeben sei wieder folgende Datenbankinstanzd = { r1, r2, r3, r4 }.

r1 : r2 : r3 : r4 :

A B C

0 3 2

0 1 2

3 1 2

1 1 3

B C D E

3 2 1 0

1 2 3 0

1 3 1 0

B C D G

3 2 1 4

1 2 3 2

1 3 1 0

1 3 1 1

C D E F

2 1 1 4

2 3 0 1

3 1 0 2

3 1 0 3

a) r1 ist konsistent mitr2, r3, r4,

b) r2 ist nicht konsistent mitr4.

c) r3 ist konsistent mitr2 undr4.

Deshalb istd weder paarweise konsistent noch konsistent.

Prof. Dr. Dietmar Seipel 372

Vorlesung Datenbanken Wintersemester 2013/14

Semi–Join–Programme

SeiD ein Datenbankschema.

1. EinSemi–Join–ProgrammP = (a1, . . . , am) für eine Datenbankinstanz

d = { r1, . . . , rn } ist eine Folge von Anweisungenak, für 1 ≤ k ≤ m,

der Form

rik := rik⋉rjk .

2. P reduziertd voll, falls esd in die global konsistente Datenbankinstanz

d∇ überführt.

3. P heißtvoll reduzierend, falls es jede Datenbankinstanzd vonD voll

reduziert.

Mit Hilfe eines Semi–Join–Programms versucht man eine Datenbankinstanz

zu reduzieren, ohne den kompletten Join berechnen zu müssen.

Prof. Dr. Dietmar Seipel 373

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Semi–Join–Reduktion)

Gegeben sei die Datenbankinstanzd = { r1, r2, r3 } :

r1 : r2 : r3 :

L T A

L2 T1 300

L2 T2 400

L O

L1 London

L2 Paris

L3 Paris

L4 Brüssel

O K

London 600

Paris 450

Brüssel 150

Dann reduziert das folgende Semi–Join–ProgrammP1 die Instanzd voll:

r2 := r2⋉r1, r3 := r3⋉r2, r2 := r2⋉r3, r1 := r1⋉r2.

Wir werden später sogar sehen, daßP1 jede Datenbankinstanz desselben

Datenbankschemas voll reduziert.

Prof. Dr. Dietmar Seipel 374

Vorlesung Datenbanken Wintersemester 2013/14

Da die Relationr1 nur Teilelieferungen des Lieferanten L2 enthält,

• müssen ausr2 alle Tupel zu anderen Lieferanten entfernt werden, und

• entsprechend bleibt inr3 nur das Tupel zum Ort Paris übrig.

Die reduzierte Datenbankinstanzd∇ ist gegeben durch

r∇1

: r∇2

: r∇3

:

L T A

L2 T1 300

L2 T2 400

L O

L2 Paris

O K

Paris 450

Das folgende Semi–Join–ProgrammP2 reduziert die Instanzd nicht voll:

r3 := r3⋉r2, r2 := r2⋉r3, r1 := r1⋉r2, r2 := r2⋉r1.

Hier wird die Datenbankinstanz{r∇1 , r∇2 , r3} erzeugt;r3 bleibt unverändert,

da es vonr2 reduziert wird, bevorr2 vonr1 reduziert wird.

Prof. Dr. Dietmar Seipel 375

Vorlesung Datenbanken Wintersemester 2013/14

Eine Kante vonri nachrj drückt aus, daß der Semi–Joinrj := rj⋉ri

berechnet wird. Die Markierung gibt den Index des Rechenschritts im

Semi–Join–Programm an.

Das Semi–Join–ProgrammP1 ist voll reduzierend:

r1 r2 r3- -��1 2

34

Das Semi–Join–ProgrammP2 ist nicht voll reduzierend:

r1 r2 r3- -��4 1

23

In beiden Fällen durchlaufen die Semi–Joins den Graphen zyklisch.

Prof. Dr. Dietmar Seipel 376

Vorlesung Datenbanken Wintersemester 2013/14

Die etwas kleinere Datenbankinstanzd = { r1, r2, r3 } mit

r1 : r2 : r3 :

L T A

L2 T1 300

L2 T2 400

L O

L2 Paris

L3 Paris

O K

London 600

Paris 450

Brüssel 150

wird aber vom Semi–Join–ProgrammP2 voll reduziert:

r3 := r3⋉r2, r2 := r2⋉r3, r1 := r1⋉r2, r2 := r2⋉r1.

Hier kannr3 kann vonr2 geeignet reduziert werden.

Wir sind nur an voll reduzierenden Semi–Join–Programmen – wie P1 –

interessiert, nicht aber an Semi–Join–Programmen, die nurmanche Instanzen

voll reduzieren – wieP2.

Prof. Dr. Dietmar Seipel 377

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Semi–Join–Reduktion)

Gegeben sei wieder die Datenbankinstanzd = { r1, r2, r3, r4 }

r1 : r2 : r3 : r4 :

A B C

0 3 2

0 1 2

3 1 2

1 1 3

B C D E

3 2 1 0

1 2 3 0

1 3 1 0

B C D G

3 2 1 4

1 2 3 2

1 3 1 0

1 3 1 1

C D E F

2 1 1 4

2 3 0 1

3 1 0 2

3 1 0 3

Dann reduziert das folgende Semi–Join–Programmd voll:

r2 := r2⋉r4, r2 := r2⋉r3, r1 := r1⋉r2,r2 := r2⋉r1, r3 := r3⋉r2, r4 := r4⋉r2.

Das ProgrammP entfernt aus jeder Relationri die erste Zeile.P ist sogar voll reduzierend für das gegebene Datenbankschema.

r1

r2

r3 r4

16

25

34 ?6

R� I

Prof. Dr. Dietmar Seipel 378

Vorlesung Datenbanken Wintersemester 2013/14

Hypergraphen

Ein Hypergraphist ein PaarH = (V, E) mit

1. einer MengeV von Knoten und

2. einer MengeE ⊆ 2V von Hyperkanten.

Der HypergraphH = (V, E) zu einem Datenbankschema

D = {R1, . . . , Rn } mit RelationenschemataRi = (Ui, Fi), für 1 ≤ i ≤ n,

ist gegeben durch

1. die KnotenmengeV =n⋃

i=1

Ui,

2. die KantenmengeE = {U1, . . . , Un }.

Prof. Dr. Dietmar Seipel 379

Vorlesung Datenbanken Wintersemester 2013/14

Ein HypergraphH = (V, E), in dem alle Kantene ∈ E aus genau zweiKnoten bestehen, d.h.e = { v, v′ }, ist ein ungerichteter Graph.Die Kanten werden in der Standard–Graphentheorie als Linien gezeichnet.

Im folgenden zyklischen Graphen giltE = { e1, . . . , e6 }, mit

ei = { vi, vi+1 }, für 1 ≤ i ≤ 5, unde6 = { v6, v1 }.

v1

v2

v3

v4

v5

v6

e1 e2

e3

e4e5

e6

v1

v2

v3

v4

v5

v6

Eine gerichtete Kante vonv nachv′ würde man dagegen als Folge(v, v′)repräsentieren.

Prof. Dr. Dietmar Seipel 380

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Lieferant)

Der HypergraphH = (V, E) zuRi = (Ui, Fi) mit

U1 = {L, T,A}, U2 = {L,O}, U3 = {O,K}

ist gegeben durch

V = {L, T,A,O,K },

E = { {L, T,A}, {L,O}, {O,K} }.

Mengen–Diagramm:

LTA O K

Prof. Dr. Dietmar Seipel 381

Vorlesung Datenbanken Wintersemester 2013/14

Die folgende alternative Repräsentation eines HypergraphenH als bipartider

Inzidenz–GraphG ist dagegen nicht zielführend:

A T L O K

e1 e2 e3

Für jede Kantee ∈ E gibt es einen neuen Knoten, der mit allen Knotenv ∈ e

verbunden ist.

Diese Darstellung ist zwar äquivalent zum Mengen–Diagramm.

• FallsG azyklisch ist, so ist auchH azyklisch.

• Zykel in G besagen aber nicht, daßH zyklisch ist.

Prof. Dr. Dietmar Seipel 382

Vorlesung Datenbanken Wintersemester 2013/14

Wir werden später sehen, daß ein Hypergraph azyklisch sein kann,

obwohl er einen zyklischen Teilgraphen enthält.

Ein Beispiel dafür ist der HypergraphH = (V, E) zu

U1 = {A,C,D}, U2 = {B,C, F}, U3 = {A,B,G}, U4 = {A,B,C,E}

mit V = {A,B,C,D,E, F,G } undE = {U1, . . . , U4 }.

H:

A B

C

G

D F

E

U1 U2

U3

U4

A B C

G F

E

DG:

H ist azyklisch, obwohlG einen Zyklus enthält.

Prof. Dr. Dietmar Seipel 383

Vorlesung Datenbanken Wintersemester 2013/14

Reduktion eines Hypergraphen

SeiH = (V, E) ein Hypergraph.

1. DieReduktionvonH ist der HypergraphH∇ = (V, E∇) mit

E∇ = { e ∈ E |6 ∃e′ ∈ E : e ( e′ }

2. H heißtreduziert, fallsH = H∇ gilt.

Kanten, die Teilmengen anderer Kanten sind, werden entfernt:

H:

A B C D

H∇:

A B C D

Prof. Dr. Dietmar Seipel 384

Vorlesung Datenbanken Wintersemester 2013/14

Zusammenhangskomponente

SeiH = (V, E) ein Hypergraph.

1. EinPfadvon einem Knotenv zu einem Knotenv′ ist eine Folge

(e1, . . . , ek), für k ∈ IN+, von Hyperkanten mit

a) v ∈ e1, v′ ∈ ek,

b) ei ∩ ei+1 6= ∅, für alle1 ≤ i ≤ k − 1.

2. Zwei Hyperkantene, e′ ∈ E heißenzusammenhängend,

falls es einen Pfad(e1, . . . , ek) mit e = e1 unde′ = ek gibt.

3. Eine TeilmengeF ⊆ E heißtzusammenhängend,

falls je zwei Hyperkantene, e′ ∈ F zusammenhängend sind.

4. F heißtZusammenhangskomponentevonH,

fallsF eine maximale, zusammenhängende Teilmenge vonE ist.

Prof. Dr. Dietmar Seipel 385

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Zusammenhangskomponenten)

AB

C

D

G

E F

H

e1

e2

e3

e4

e5

e6

J

I

K

1. (e1, e2, e3) und(e1, e2, e4) sind Pfade.

2. Die Zusammenhangskomponenten sind

F1 = { e1, e2, e3, e4 } und F2 = { e5, e6 }.

Prof. Dr. Dietmar Seipel 386

Vorlesung Datenbanken Wintersemester 2013/14

Azyklizität

SeiH = (V, E) ein Hypergraph.

1. DieEinschränkungvonH auf eine KnotenmengeV ′ ⊆ V ist

H|V ′ = (V ′, E ′), mit E ′ = { e ∩ V ′ | e ∈ E , e ∩ V ′ 6= ∅ }.

2. Seiene, e′ ∈ E zwei verschiedene Hyperkanten unde∗ = e ∩ e′ ⊆ V .

e∗ ist eineArtikulationsmengevonH, falls die Anzahl der

Zusammenhangskomponenten vonH|V \e∗ größer ist als die Anzahl der

Zusammenhangskomponenten vonH.

3. H heißtazyklisch, falls für alleV ′ ⊆ V gilt:

falls die ReduktionH′ = (H|V ′)∇ zusammenhängend ist und mehr als

eine Hyperkante enthält, so hatH′ eine Artikulationsmenge.

Ein ungerichteter Graph ist azyklisch, g.d.w. er als Hypergraph azyklisch ist.

Prof. Dr. Dietmar Seipel 387

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Artikulationsmengen)

AB

C

D

G

E F

H

e1

e2

e3

e4

J

I

K e5

e6

SeiW = {A,B,C,D,E, F,G }.Der zusammenhängende, reduzierte HypergraphH|V ′ hat

• für V ′ = W keine Artikulationsmenge,

• für V ′ = W ∪ {H } dagegen schon, nämliche∗ = {F}, und

• für V ′ = { I, J,K } auch, nämliche∗ = {I}.

Prof. Dr. Dietmar Seipel 388

Vorlesung Datenbanken Wintersemester 2013/14

H ist azyklisch, falls es für jede KnotenteilmengeV ′ ⊆ V undjede ZusammenhangskomponenteF , mit |F| ≥ 2, der ReduktionH′ = (H|V ′)∇, zwei verschiedene Kantene, e′ ∈ F gibt, so daß dieEinschränkungH′|V ′\(e∩e′) unzusammenhängend ist.

1. Man muß die EinschränkungH|V ′ vonH auf beliebige Knotenteilmengen

V ′ ⊆ V zulassen, da eine zyklische Zusammenhangskomponente azyklische

Teile – und damit eine Artikulationsmenge – enthalten kann.

AB

C

D

G

E F

H

e1

e2

e3

e4

“Zykel”: { e1, e2, e3 }Artikulationsmenge:

e∗ = e2 ∩ e4 = {F }trennte4 vom Zykel ab

Es reicht dann nicht aus nur die HypergraphenH|V ′ zu den Knotenmengen

V ′ = ∪f∈Ff der ZusammenhangskomponentenF vonH zu betrachten.

Prof. Dr. Dietmar Seipel 389

Vorlesung Datenbanken Wintersemester 2013/14

2. Die Betrachtung eingeschränkter Kantenmengen des HypergraphenH = (V, E)

bringt ebenfalls nichts, da eine KantenteilmengeE ′ ⊆ E zyklisch sein kann,

obwohlH azyklisch ist.

H:

A B

C

G

D F

Ee1 e2

e3

e4

E ′ = { e1, e2, e3 }

Nach dem Löschen der isolierten KnotenD,E, F,G, sind alle Kanten in

e′4 = {A,B,C } enthalten, d.h.H ist azyklisch.

3. Man muß die Reduktion(H|V ′)∇ betrachten, da sonst ein nicht–reduzierter

HypergraphH = (V, { e, e′ }) mit zwei Kanten∅ 6= e′ ( e zyklisch wäre.

H′ = H|V ist zusammenhängend, abere∗ = e ∩ e′ = e′ ist keine

Artikulationsmenge vonH′, daH|V \e∗ nur die eine Kantee \ e′ enthält und

somit ebenfalls zusammenhängend ist.

A B

Prof. Dr. Dietmar Seipel 390

Vorlesung Datenbanken Wintersemester 2013/14

Standard–Graphentheorie:

1. Das erste Problem tritt in ungerichteten Graphen genausoauf.

Die folgende zyklische Zusammenhangskomponente

F = { {A,B}, {B,C}, {A,C}, {C,D} }

besitzt einer Artikulationsmengee∗ = {B,C} ∩ {C,D} = {C}.

C

A B

D

2. Das zweite und das dritte Problem treten in ungerichtetenGraphen nichtauf, da dort Kanten immer zwei Knoten haben und es keineeingebetteten Kanten gibt.

Ein ungerichteter Graph ist zyklisch, wenn er eine zyklischeKantenteilmenge enthält, egal welche Kanten er sonst noch enthält.

Prof. Dr. Dietmar Seipel 391

Vorlesung Datenbanken Wintersemester 2013/14

Der Reduktionsalgorithmusvon Graham, Yannakakis und Ozoyoglu (GYO–Algorithmus)

Input: ein HypergraphH = (V, E)

Output: ein HypergraphH′ = (V,F)

Methode: Starte mitF = E , und wende folgende Regeln aufF solangewiederholt an, bis keine der Regeln mehr anwendbar ist.

isolierte Knoten löschen: Falls ein Knotenv in genau einer Kantef ∈ F

vorkommt, so löschev ausf : d.h.F = (F \ { f }) ∪ { f \ {v} }.

Kantenmenge reduzieren: Falls eine Kantef ∈ F eine Teilmenge eineranderen Kantef ′ ∈ F ist, f ( f ′, oder fallsf = ∅, so löschef ausF :d.h.F = F \ { f }.

Satz: H ist azyklisch, genau dann wenn der GYO–Reduktionsalgorithmusmit dem HypergraphenH′ = (V, ∅) ohne Hyperkanten terminiert.

Prof. Dr. Dietmar Seipel 392

Vorlesung Datenbanken Wintersemester 2013/14

Zur Visualisierung des GYO–Reduktionsalgorithmus verwenden wir wieder

ein Tableau, das – analog zum Schema–Tableau aus dem LJP–Algorithmus –

eine Zeile pro Hyperkante enthält.

Für den HypergraphenH mit der KantenmengeE = {U1, U2, U3 } zu den

AttributmengenU1 = {L, T,A}, U2 = {L,O} undU3 = {O,K} erhalten

wir folgendes GYO–Tableau:

L T A

L O

O K

Zum Vergleich das Schema–Tableau aus dem LJP–Algorithmus:

L T A O K

w1 a a a b1 b1

w2 a b2 b2 a b2

w3 b3 b3 b3 a a

Prof. Dr. Dietmar Seipel 393

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (GYO–Reduktionsalgorithmus)

1. Der HypergraphH = (V, E) mit E = {AB,BC,AC } ist zyklisch:

A B

C

Beim GYO–Algorithmus wird die Kantenmenge nicht verändert:

A B

B C

A C

Auch als ungerichteter Graph betrachtet istH zyklisch.

Prof. Dr. Dietmar Seipel 394

Vorlesung Datenbanken Wintersemester 2013/14

2. SeiH = (V, E) der Hypergraph mitV = {A, . . . , G } und

E = {ABC,BCDE,BCDG,CDEF }.

A CB D

E

G

F

a) Der GYO–Algorithmus startet mit der Kantenmenge

A B C

B C D E

B C D G

C D E F

Prof. Dr. Dietmar Seipel 395

Vorlesung Datenbanken Wintersemester 2013/14

b) Durch Löschen der isolierten KnotenA,F,G erhalten wir

B C

B C D E

B C D

C D E

c) Durch Löschen der HyperkantenBC,BCD,CDE als Teilmengen von

BCDE erhalten wir

B C D E

d) Durch Löschen der isolierten KnotenB,C,D,E und durch

darauffolgendes Löschen der leeren Hyperkante erhalten wir einen leeren

Hypergraphen.

e) Also istH azyklisch.

Prof. Dr. Dietmar Seipel 396

Vorlesung Datenbanken Wintersemester 2013/14

Alternativ könnte man in den Schritten a) und b) wie gerade eben

verfahren, und dann aber in anderer Weise weitermachen:

c) Durch Löschen der HyperkantenBCD,CDE als Teilmengen von

BCDE erhalten wirB C

B C D E

d) Durch Löschen der isolierten KnotenD,E erhalten wir

B C

B C

e) Durch Löschen der zweiten Zeile (doppelte HyperkanteBC) erhalten wir

B C

f) Durch Löschen der isolierten KnotenB,C und durch darauffolgendes

Löschen der leeren Hyperkante erhalten wir einen leeren Hypergraphen.

Prof. Dr. Dietmar Seipel 397

Vorlesung Datenbanken Wintersemester 2013/14

3. Der folgende HypergraphH ist azyklisch, obwohl er eine zyklische

KantenteilmengeE ′ = { e1, e2, e3 } enthält:

A B

C

G

D F

E

e1 e2

e3

e4

a) Der GYO–Algorithmus startet mit der Kantenmenge

A C D

B C F

A B G

A B C E

Prof. Dr. Dietmar Seipel 398

Vorlesung Datenbanken Wintersemester 2013/14

b) Durch das Löschen der isolierten KnotenD,E, F,G erhalten wir

A C

B C

A B

A B C

c) Nun sind alle resultierenden Hyperkanten Teilmengen dievierten

Hyperkante, und sie können somit gelöscht werden:

A B C

d) Durch Löschen der isolierten KnotenA,B,C und durch darauffolgendes

Löschen der leeren Hyperkante erhalten wir einen leeren Hypergraphen.

Ohne die Schutzkantee4 (letzte Zeile des Tableaus) wäre der

Hypergraph zyklisch, da die Schritte c) und d) nicht möglichwären.

Prof. Dr. Dietmar Seipel 399

Vorlesung Datenbanken Wintersemester 2013/14

4. Der folgende zyklische Hypergraph wird vom GYO–Algorithmus auf

seinen zyklischen Kern reduziert:

FE

M

C

D

G

H

AL

B

K IJ

E

CBA

K I

G

D

C

D

G

I

BA

K K

G

DBA

I

Prof. Dr. Dietmar Seipel 400

Vorlesung Datenbanken Wintersemester 2013/14

Join Trees

Ein Join Treefür einen HypergraphenH = (V, E) ist ein ungerichteter Baum

T = (E ,F) mit den Hyperkanten vonH als Knoten,

so daß für jedes Paare, e′ ∈ E von Knoten vonT und für jeden Knotenf auf

dem (eindeutigen) Pfad vone nache′ in T gilt: e ∩ e′ ⊆ f .

e′f

e

Prof. Dr. Dietmar Seipel 401

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Join Trees)

1. Wir betrachten wieder den folgenden HypergraphenH:

A CB D

E

G

F

T1 ist ein Join Tree zum HypergraphenH. T2 ist kein Join Tree, denn

{B,C,D,E } ∩ {C,D,E, F } = {C,D,E } 6⊆ {B,C,D,G }.

T1:

ABC

BCDE

BCDG CDEF T2:

ABC

BCDG

BCDE CDEF

Prof. Dr. Dietmar Seipel 402

Vorlesung Datenbanken Wintersemester 2013/14

2. Für folgenden azyklischen HypergraphenH gibt einen eindeutigen Join

Tree, der die drei gerichteten VersionenT1, T2 undT3 hat:

H:

A B C D

T1:

CD

BC

AB

??

T2:

BC

AB CD� U

T3:

AB

BC

CD

??

In jeder ungerichteten Version mußBC zwischenAB undCD liegen.

Also gibt es nur eine eindeutige ungerichtete VersionT :

T : AB BC CD

Prof. Dr. Dietmar Seipel 403

Vorlesung Datenbanken Wintersemester 2013/14

3. Für folgenden azyklischen HypergraphenH gibt es16 unterschiedliche

ungerichtete Join Trees:

H:

A

B

C

D

E

T1: T2: T3:AB

AC

AD

AE

AB

AD

AC

AE

AD AE

AC

AB

Da sich alle Kanten im selben KnotenA schneiden, ist hier jeder Baum

ein Join Tree. 12 der Join Trees sind Ketten (wieT1 undT2), und 4 sind

Sterne (wieT3).

Prof. Dr. Dietmar Seipel 404

Vorlesung Datenbanken Wintersemester 2013/14

4. Für folgenden zyklischen HypergraphenH gibt es keinen Join Tree:

H:

A B

C

T :

AC

BC

AB

Da das Beispiel inA, B undC voll symmetrisch aufgebaut ist,

gäbe es – bis auf Isomorphie – nur eine AlternativeT .

T ist aber kein Join Tree, denn es gilt

{A,B } ∩ {A,C } = {A } 6⊆ {B,C }.

Prof. Dr. Dietmar Seipel 405

Vorlesung Datenbanken Wintersemester 2013/14

Join–Berechnung

Ein gerichteter Join TreeT kann in einen geeigneten relationalenOperatorbaumO zur Berechnung des Joins⊲⊳ d einer Datenbankinstanzdverwandelt werden.

Dabei wird der TeilbaumTr zu einem Knotenr des Join Trees in einenOperatorbaumOr verwandelt:

• Für einen Blattknotenr bestehtOr nur ausr.

• Sonst ergibt sichOr als (k + 1)–Wege–Join vonr mit denOperatorbäumenOrij

zu den TeilbäumenTrij der Söhnerij von r:

Tr: r

ri1 rik

Tri1 . . . Trik

R

Or: ⊲⊳

r ⊲⊳ ⊲⊳

Ori1. . . Orik

61 i

Prof. Dr. Dietmar Seipel 406

Vorlesung Datenbanken Wintersemester 2013/14

Wir werden später zeigen, daß bei der Join–Berechnung mittels O alle Tupelder Zwischenergebnisse im Endergebnis⊲⊳ d vorkommen (man würde siedurch Projektion erhalten), fallsd konsistent ist.

Beispiel (Join–Berechnung auf der Basis von Join Trees)

T :

U1 = ABC

U2 = BCDE

U3 = BCDG U4 = CDEF

?

R

O:

⊲⊳

r1 ⊲⊳

r2 r3 r4

I�

6I�

Der OperatorbaumO gibt eine Reihenfolge zur Zusammenfassung derRelationen bei der Join–Berechnung vor:

⊲⊳ d = r1 ⊲⊳ (r2 ⊲⊳ r3 ⊲⊳ r4).

Prof. Dr. Dietmar Seipel 407

Vorlesung Datenbanken Wintersemester 2013/14

Für den Join TreeT1 werden zuerstr2 undr3 verbunden, und das Ergebnis

dann mitr1:

T1:U1 = AB

U2 = BC

U3 = CD?

?

O1:⊲⊳

r1 ⊲⊳

r2 r3

I�

I�

Join–Berechnung:

⊲⊳ d = r1 ⊲⊳ (r2 ⊲⊳ r3).

Prof. Dr. Dietmar Seipel 408

Vorlesung Datenbanken Wintersemester 2013/14

Für den Join TreeT2 werden die Relationen in einem 3–Wege–Join

verbunden:

T2:

U1 = AB

U2 = BC

U3 = CD R

O2:⊲⊳

r1 r2 r3

I6�

Join–Berechnung:

⊲⊳ d = r1 ⊲⊳ r2 ⊲⊳ r3.

Man sollte hier auf keinen Fall zuerstr1 ⊲⊳ r3 berechnen;

daU1 undU3 nicht verbunden sind, würde das zu einem kartesischen

Produkt führen.

Prof. Dr. Dietmar Seipel 409

Vorlesung Datenbanken Wintersemester 2013/14

SeiT = (E ,F) ein Join Tree für einen HypergraphenH = (V, E).

Fürv ∈ V seiEv = { e ∈ E | v ∈ e } die Menge aller Hyperkanten ausE , die

v enthalten:

T :

AB

AF ABCD

BCD BCI

DG CDH

a) Dann istTv = (Ev,Fv) mit Fv = { {e, e′} ∈ F | e, e′ ∈ Ev } ein

zusammenhängender Teilbaum vonT .

b) Die TeilbäumeTv, mit v ∈ V , überdeckenT .

Prof. Dr. Dietmar Seipel 410

Vorlesung Datenbanken Wintersemester 2013/14

Satz (Join Tree⇔ Azyklizität)

Ein HypergraphH = (V, E) hat einen Join Tree, g.d.w.H azyklisch ist.

Beweis.“⇒” zeigt man durch Induktion nachn = |E|.Die Verankerung fürn = 0, 1 ist klar.Der Schrittn → n+ 1, n ≥ 1, ist wie folgt:

1. SeiH ein Hypergraph mitn+ 1 Kanten,und seiT = (E ,F) ein gerichteter Join Tree zuH.

2. Seie ∈ E ein Blatt inT , und seif ∈ E der Vater vone in T .Dann gilt für alle anderen Knotene′ ∈ E des Baumese ∩ e′ ⊆ f ,dennf liegt auf dem ungerichteten Pfad vone nache′.

3. Folglich sind alle Elemente ause \ f in H isoliert, und sie können beimGYO–Reduktionsalgorithmus entfernt werden. Danach ist dieeingeschränkte Kantee \ (e \ f) = e ∩ f eine Teilmenge vonf .

e′f

e

RR

RR

R R

Prof. Dr. Dietmar Seipel 411

Vorlesung Datenbanken Wintersemester 2013/14

4. Also kann jetzt die eingeschränkte Kantee ∩ f entfernt werden.

Der eingeschränkte Baum

T ′ = (E \ {e},F \ {(f, e)})

ist ein Join Tree für den eingeschränkten Hypergraphen

H′ = (V, E \ {e}), der nurn = |E \ {e}| Hyperkanten hat.

Nach Induktionsannahme kann manH′ zuH′′ = (V, ∅) reduzieren.

WegenH → H′ → H′′ ist H azyklisch.

“⇐” zeigt man durch Konstruktion eines gerichteten Join Trees:

H kann mittels des GYO–Algorithmus zuH′ = (V, ∅) reduziert werden.

1. Seien, . . . , e1 die Reihung vonE , nach der die Elemente vonE gelöscht

wurden. Seiei′ ∈ E der Grund für die Löschung vonei.

Dann gilt1 ≤ i′ ≤ i− 1, daei′ nachei gelöscht wurde.

Prof. Dr. Dietmar Seipel 412

Vorlesung Datenbanken Wintersemester 2013/14

2. Für alle1 ≤ j < i ≤ n gilt

ei ∩ ej ⊆ ei′ .

3. Damit istT = (E ,F), mit F = { (ei′ , ei) | 2 ≤ i ≤ n }, ein gerichteter

Join Tree fürH.

e1 : A B C

. . .

ei′ : B C D E

. . .

ei−1 : B C D G

ei : C D E F

GYO–Algorithmus Join Tree

e1

ei′

ei−1 eiR

?

Prof. Dr. Dietmar Seipel 413

Vorlesung Datenbanken Wintersemester 2013/14

GYO–Algorithmus → Join Tree

Aus der Löschreihenfolge der Tableau–Zeilen beim GYO–Algorithmus

ergibt sich ein (gerichteter) Join TreeT = (E ,F) :

• Seien, . . . , e1 die Reihenfolge, in der die Tableau–Zeilen gelöscht

wurden.

• Sei die Tableau–Zeileei′ der Grund für die Löschung vonei. Dann

enthält der Join Tree eine Kante vonei′ nachei.

• Die Kantenmenge des Join Trees ergibt sich also als

F = { (ei′ , ei) | 2 ≤ i ≤ n }.

Prof. Dr. Dietmar Seipel 414

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (GYO–Algorithmus → Join Tree)

1. Für die Löschreihenfolgee4, e3, e2, e1 erhalten wir den gerichteten Join

TreeT1.

2. Für die Löschreihenfolgee4, e3, e1, e2 erhalten wir den gerichteten Join

TreeT2.

T1:

U1 = ABC

U2 = BCDE

U3 = BCDG U4 = CDEF

?

R

T2:

U2 = BCDE

U1 = ABC U3 = BCDG U4 = CDEF?) q

Prof. Dr. Dietmar Seipel 415

Vorlesung Datenbanken Wintersemester 2013/14

Topologische Sortierung

Eine topologische Sortierung eines gerichteten GraphenG = (V,E) ist eineSortierung

v1, . . . , vn

der KnotenmengeV , so daß für alle Kanten(vi, vj) ∈ E gilt i < j. Es gibtalso nur Kanten von kleineren Indizes zu größeren.

Man kannG genau dann topologisch sortieren, wennG azyklisch ist.

Zur algorithmischen Bestimmung einer topologischen Sortierung sucht manzunächst nach einem Knotenv1 ohne eingehende Kanten und entfernt diesenzusammen mit seinen ausgehenden Kanten aus dem Graphen.Danach bestimmt man (rekursiv) eine topologische Sortierungv2, . . . , vndes Restgraphen.

Für die obigen Join Trees erhält man z.B.U1, U2, U3, U4 (für T1) bzw.U2, U1, U4, U3 (für T2). Die Reihenfolge der BrüderU3 undU4 ist beliebig.

Prof. Dr. Dietmar Seipel 416

Vorlesung Datenbanken Wintersemester 2013/14

Satz (Azyklizität ⇒ Semi–Join–Programm)

SeiD ein Datenbankschema mit einem azyklischen HypergraphenH.

Dann hatD hat einvoll reduzierendesSemi–Join–Programm.

Beweis.Wir konstruieren ein voll reduzierendes Semi–Join–Programm.

Sei (o.B.d.A.) der HypergraphH = (V, E) zusammenhängend,

und seiT = (E ,F) ein gerichteter Join Tree fürH.

T : U1 = ABC

U2 = BCDE

U3 = BCDG U4 = CDEF

?

R

Prof. Dr. Dietmar Seipel 417

Vorlesung Datenbanken Wintersemester 2013/14

1. Topologisches Sortieren vonE liefert eine FolgeU1, . . . , Un von

Attributmengen, wobei natürlichU1 die Wurzel vonT ist.

2. Sei nund = { r1, . . . , rn } eine Datenbankinstanz zuD mit

ri ∈ Rel(Ui), für 1 ≤ i ≤ n.

3. SeiUi′ der Vater vonUi in T undsi = ri′ ∈ Rel(Ui′) die entsprechende

Vaterrelation vonri, für 2 ≤ i ≤ n.

T :

r1 = s2

r2 = s3 = s4

r3 r4

?

R

Prof. Dr. Dietmar Seipel 418

Vorlesung Datenbanken Wintersemester 2013/14

Dann ist folgendes Semi–Join–ProgrammP für D voll reduzierend:

allgemein:

sn := sn⋉rn...

s3 := s3⋉r3

s2 := s2⋉r2

r2 := r2⋉s2

r3 := r3⋉s3...

rn := rn⋉sn

Beispiel:

r2 := r2⋉r4

r2 := r2⋉r3

r1 := r1⋉r2

r2 := r2⋉r1

r3 := r3⋉r2

r4 := r4⋉r2

T :

r1 = s2

r2 = s3 = s4

r3 r4

?

R

P besteht aus2 · (n− 1) Semi–Join–Reduktionsschritten.

Prof. Dr. Dietmar Seipel 419

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Join Tree→ Semi–Join–Programm)

T1: U1 = ABC

U2 = BCDE

U3 = BCDG U4 = CDEF

?

R

T2:

U2 = BCDE

U1 = ABC U3 = BCDG U4 = CDEF?) q

Jeder gerichtete Join TreeTi erzeugt ein Semi–Join–ProgrammPi:

P1 : r2 := r2⋉r4r2 := r2⋉r3r1 := r1⋉r2

r2 := r2⋉r1r3 := r3⋉r2r4 := r4⋉r2

P2 : r2 := r2⋉r4r2 := r2⋉r3r2 := r2⋉r1

r1 := r1⋉r2r3 := r3⋉r2r4 := r4⋉r2

P1 undP2 unterscheiden sich nur in den mittleren beiden Operationen.

Prof. Dr. Dietmar Seipel 420

Vorlesung Datenbanken Wintersemester 2013/14

Satz (Azyklizität)

Für ein DatenbankschemaD und seinen HypergraphenH sind folgendeAussagen äquivalent:

1. H ist azyklisch.

2. Jedepaarweisekonsistente Datenbankinstanz vonD

ist auchglobal konsistent.

3. D hat einvoll reduzierendesSemi–Join–Programm.

4. H hat einenJoin Tree.

Beweis.(teilweise) “1.⇔ 4.” und “4. ⇒ 3.” wurden oben bewiesen.

“3. ⇒ 2.” gilt, da eine paarweise konsistente Datenbankinstanzd durch einSemi–Join–Programm nicht verändert wird. Deswegen istd identischmit seiner vollständigen Reduktiond∇, und somit global konsistent.

1

4 3

26?

6-

Prof. Dr. Dietmar Seipel 421

Vorlesung Datenbanken Wintersemester 2013/14

Satz (Azyklische Joins)

SeiD = {R1, . . . , Rn } ein azyklischesDatenbankschema.

Dann kann man für jede erlaubte Datenbankinstanzd = { r1, . . . , rn }

vonD den AusdruckΠX(⊲⊳ d) in polynomieller Zeit berechnen,

und zwar polynomiell in der Größe der EingabeD, d, und der Ausgabe.

Beweis.(Skizze)

Da die Berechnung in den einzelnen Zusammenhangskomponenten des

HypergraphenH zuD separat ausgeführt werden kann, können wir o.B.d.A.

annehmen, daßH zusammenhängendist.

1. Wir könnend zuerst in polynomieller Zeit mit einem voll reduzierenden

Semi–Join–Programm auf die global konsistente Datenbankinstanz

d∇ = { r∇1 , . . . , r∇n } reduzieren, so daß⊲⊳ d = ⊲⊳ d∇ gilt.

Prof. Dr. Dietmar Seipel 422

Vorlesung Datenbanken Wintersemester 2013/14

2. Sei nunRi = (Ui, Fi), für 1 ≤ i ≤ n, undT ein gerichteter Join Tree

für den HypergraphenH = (V, E) zuD, mit

V =n⋃

i=1

Ui und E = {Ui | 1 ≤ i ≤ n }.

SeiTi der Teilbaum eines KnotenUi mit den SöhnenUi1 , . . . , Uik .

Vi1Xi1

Ti1

· · ·

VikXik

Tik

Vi Xi

Vij = Uij ∩ Ui

R

R

K K

Prof. Dr. Dietmar Seipel 423

Vorlesung Datenbanken Wintersemester 2013/14

3. SeienXi die Anfrage– undVi die Join–Attribute vonTi:

Xi = X ∩ ∪Uj∈TiUj ,

Vi = Ui ∩ Ui′ ,

wobeiUi′ der Vater vonUi in T ist.

4. Dann kann induktiv zuTi die Relation

si = ΠXiVi

(⊲⊳Uj∈Ti r

∇j

)

wie folgt konstruiert werden:

a) Für ein BlattUi vonT ist si = ΠXiVi(r∇i ).

b) Für einen VaterknotenUi ausT erhält man die Relationsi = ΠXiVi(s)

aus dem Join

s = r∇i ⊲⊳ si1 ⊲⊳ . . . ⊲⊳ sik

der Relationr∇i mit den Relationensij aller SöhneUij vonUi.

Prof. Dr. Dietmar Seipel 424

Vorlesung Datenbanken Wintersemester 2013/14

5. Am Ende gilt für die Relations1 an der Wurzel des Baumes:

X1 = X ∩ ∪Uj∈T1Uj = X ∩ U = X,

V1 = ∅.

Deshalb folgt

s1 = ΠX

(⊲⊳Uj∈T1 r∇j

)= ΠX(⊲⊳ d∇) = ΠX(⊲⊳ d).

6. Wegen

a) der paarweisen Konsistenz vond∇ und

b) der Join Tree–Eigenschaft vonT

ist die Tupelanzahl|si| in jedem Zwischenstadium durch dieTupelanzahl|s1| des Endresultats beschränkt.

Also kann man den AusdruckΠX(⊲⊳ d) in polynomieller Zeit berechnen.

Prof. Dr. Dietmar Seipel 425

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Azyklische Joins)

U = {A,B,C,D,E, F,G },

U1 = {A,B,C }, U2 = {B,C,D,E },

U3 = {B,C,D,G }, U4 = {C,D,E, F },

X = {A,D, F }.

Datenbankausprägungd = { r1, r2, r3, r4 }

Vollständige Reduktion:

r∇1

: r∇2

: r∇3

: r∇4

:

A B C

0 1 2

3 1 2

1 1 3

B C D E

1 2 3 0

1 3 1 0

B C D G

1 2 3 2

1 3 1 0

1 3 1 1

C D E F

2 3 0 1

3 1 0 2

3 1 0 3

Prof. Dr. Dietmar Seipel 426

Vorlesung Datenbanken Wintersemester 2013/14

Join Tree: die Pfeile geben hier den Berechnungsfluß an

U1 = ABC

U2 = BCDE

U3 = BCDG U4 = CDEF

6

� I

V1 = ∅, X1 = ADF

V2 = BC, X2 = DF

V3 = BCD

X3 = D

V4 = CDE

X4 = DF

6

� I

Join–Programm:

s4 = ΠCDEF (r∇4 ),

s3 = ΠBCD(r∇3 ),

s2 = ΠBCDF (r∇2 ⊲⊳ s3 ⊲⊳ s4),

s1 = ΠADF (r∇1 ⊲⊳ s2).

Prof. Dr. Dietmar Seipel 427

Vorlesung Datenbanken Wintersemester 2013/14

OperatorbaumO mit Joins und Projektionen:

⊲⊳

r∇1

⊲⊳

r∇2 πBCD

r∇3

πCDEF

r∇4

πBCDF

πADF

I�

6I�

6 6

6

6

Prof. Dr. Dietmar Seipel 428

Vorlesung Datenbanken Wintersemester 2013/14

Berechnete Relationen:

r∇2 ⊲⊳ s3 ⊲⊳ s4:

B C D E F

1 2 3 0 1

1 3 1 0 2

1 3 1 0 3

s2 = ΠBCDF (r∇2 ⊲⊳ s3 ⊲⊳ s4):

B C D F

1 2 3 1

1 3 1 2

1 3 1 3

r∇1 ⊲⊳ s2:

A B C D F

0 1 2 3 1

3 1 2 3 1

1 1 3 1 2

1 1 3 1 3

Resultat:s1 = ΠADF (r∇1 ⊲⊳ s2):

A D F

0 3 1

3 3 1

1 1 2

1 1 3

Prof. Dr. Dietmar Seipel 429

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Zyklische Joins)

U = {A,B,C } = X,

U1 = {A,B }, U2 = {B,C }, U3 = {A,C }.

Die Datenbankinstanzd = { r1, r2, r3 } mit den Relationen

r1 : r2 : r3 : r1,2 :

A B

a b

a′ b′

B C

b c

b′ c′

C A

c a′

c′ a

A B C

a b c

a′ b′ c′

ist zwar paarweise konsistent, aber nicht global, und⊲⊳ d = ∅.

Bei der Join–Berechnung enthalten die Zwischenrelationenmehr Tupel alsdas Endergebnis⊲⊳ d. Der Joinr1,2 = r1 ⊲⊳ r2 enthält z.B. 2 Tupel, während⊲⊳ d = r1,2 ⊲⊳ r3 = ∅ keine Tupel enthält.

Prof. Dr. Dietmar Seipel 430

Vorlesung Datenbanken Wintersemester 2013/14

Satz (Azyklische Joins)

Für eine Datenbankinstanzd = { r1, . . . , rn } zu einem azyklischenDatenbankschemataD und eine AttributmengeX ist der Test

t ∈ ΠX(⊲⊳ d)

polynomiell in der Größe der EingabenD undd.

Beweis.

Berechne die Relationen

σt(ri) = { ti ∈ ri | ti[X ∩ Ui] = t[X ∩ Ui] },

und mache diese mit polynomiellem Aufwand mittels einesvoll–reduzierenden Semi–Join–Programms global konsistent: si = σt(ri)

∇.

Falls eine der Relationensi – und damit alle – nicht–leer ist,so istt ∈ ΠX(⊲⊳ d).

Prof. Dr. Dietmar Seipel 431

Vorlesung Datenbanken Wintersemester 2013/14

Allgemeine Joins

Für eine Datenbankinstanzd = { r1, . . . , rn } zu einem allgemeinen

DatenbankschemataD und eine AttributmengeX ist der Test

t ∈ ΠX(⊲⊳ d)

NP–vollständig in der Größe der EingabenD undd.

Der Join⊲⊳ d kann exponentiell viele Tupel enthalten:

Im folgenden Beispiel mit insgesamt4 · n Tuplen enthält der Join die2n+1

Tupel(ai11 , . . . , ain+1

n+1 ), für (i1, . . . , in+1) ∈ {1, 2}n+1.

ri :

a1i a1i+1

a1i a2i+1

a2i a1i+1

a2i a2i+1

a11

a21

a12

a22

a13

a23

a1n

a2n

a1n+1

a2n+1

-

-R�

-

-R�

-

-R�

-

-

�R

Prof. Dr. Dietmar Seipel 432

Vorlesung Datenbanken Wintersemester 2013/14

Join

Obige Datenbankinstanzd = { r1, . . . , rn } zeigt, daß der Join⊲⊳ d selbst für

azyklische DatenbankschemataD exponentiell viele Tupel enthalten kann,

denn das zugehörige DatenbankschemaD = { (Ui, Fi) | 1 ≤ i ≤ n } mit den

AttributmengenUi = {Ai, Ai+1 } ist azyklisch.

Test

• Für azyklische Datenbankschemata kann der Testt ∈ ΠX(⊲⊳ d) auf der

Basis eines Semi–Join–Programms in polynomieller Zeit durchgeführt

werden, ohne den Join⊲⊳ d zu berechnen.

• Für allgemeine Datenbankschemata ist dies nicht möglich,

denn der Test istNP–vollständig.

Prof. Dr. Dietmar Seipel 433

Vorlesung Datenbanken Wintersemester 2013/14

Wünschenswerte Eigenschaften für Datenbankschemata

3NF BCNF Verlustfreiheit Unabhängigkeit Azyklizität Methode

+ + + Synthese

+ + Dekomposition

– –

– – –

? ? ?

vereinbar: +

unvereinbar: –

nicht bekannt, ob vereinbar: ?

Prof. Dr. Dietmar Seipel 434

Vorlesung Datenbanken Wintersemester 2013/14

Unvereinbarkeit von BCNF, Verlustfreiheit und Azyklizitä t

Für manche Relationenschemata gibt es keine verlustfreie und azyklische

BCNF–Zerlegung.

Beispiel (Unvereinbarkeit)

Das folgende RelationenschemaR = (U, F ) ist nicht in BCNF:

U = {A,B,C,G,H, I },

F = {AGH → B, BHI → C, CGI → A }.

Es gibt keine verlustfreie und azyklische BCNF–Zerlegung vonR.

Bereits früher hatten wir gezeigt, daß es für manche Relationenschemata

auch keine unabhängige BCNF–Zerlegung gibt.

Prof. Dr. Dietmar Seipel 435

Vorlesung Datenbanken Wintersemester 2013/14

Die zyklische Struktur der fd–Menge

F = {AGH → B, BHI → C, CGI → A }

kann wie folgt veranschaulicht werden:

A B

C

G H

I

-

]

X YU V

-

bedeutet

XUV → Y

Die Schlüssel des RelationenschemasR sind

AGHI ,BGHI ,CGHI .

Deswegen sind alle Attribute prim, und das SchemaR ist bereits in 3NF.

Prof. Dr. Dietmar Seipel 436

Vorlesung Datenbanken Wintersemester 2013/14

Anwendung auf zyklische Datenbankschemata

Die Konzepte der Semi–Join–Reduktionen und der polynomiellen

Join–Berechnung kann man auch auf zyklische Datenbankschemata

übertragen.

• Indem man zyklische, zusammenhängende Teilmengen des zugehörigen

Hypergraphen zu jeweils einer einzigen Kante kollabiert, erhält man

azyklische Hypergraphen.

• Auf der Datenbankseite bedeutet dies, daß man die entsprechenden

Relationen zu jeweils einer einzigen Relation mittels eines Natural Join

zusammenfaßt.

Das neu entstandene Datenbankschema kann jetzt mittels

Semi–Join-Reduktionen bei Join–Berechnungen effizient behandelt werden.

Prof. Dr. Dietmar Seipel 437

Vorlesung Datenbanken Wintersemester 2013/14

Beispiel (Clusterung)

Wenn man die zyklische, zusammenhängende Teilmenge{ e1, e2, e3 } zueiner einzigen Kantee1,2,3 kollabiert (Clusterung), dann erhält man einenazyklischen Hypergraphen mit der neuen KantenmengeE ′ = { e1,2,3, e4, e5, e6 }.

AB

C

D

G

E F

H

e1

e2

e3

e4J

I

K e5

e6

-

AB

C

D

G

E F

He1,2,3

e4J

I

K e5

e6

Auf der Datenbankseite faßt man die entsprechenden Relationen mittels einesNatural Joins zu einer einzigen Relationr1,2,3 = r1 ⊲⊳ r2 ⊲⊳ r3 zusammen.Dadurch erhält man eine neue Datenbankinstanzd′ = { r1,2,3, r4, r5, r6 }.

Prof. Dr. Dietmar Seipel 438

Vorlesung Datenbanken Wintersemester 2013/14

Zusammenfassung

Für azyklische Datenbankschemata kann man Joins effizienter berechnen.

Semi–Join–Programme können eine Datenbankinstanz durch Entfernung der

dangling tuplesauf eineglobal konsistenteDatenbankinstanz reduzieren.

Die Azyklizität kann man mit Hilfe des GYO–Algorithmus feststellen:

• Aus der Löschreihenfolge der Tableau–Kanten ergibt sich ein Join Tree.

Unterschiedliche Join Trees sind möglich.

• Aus einem Join Tree kann man einSemi–Join–Programmableiten.

• Ein Join Tree gibt eine geeigneteJoin–Reihenfolgean.

Manchmal ist die Azyklizität nicht mit den anderen wünschenswerten

Eigenschaften für Datenbankschemata vereinbar.

Prof. Dr. Dietmar Seipel 439