Relationale Algebra

10
8.1 Informationssysteme J. Biskup Relationale Operationen 04.11.96 Relationale Operationen natürlicher Verbund Selektion Projektion Vergleich Vereinigung Komplement Differenz Division 8.2 Informationssysteme J. Biskup Relationale Operationen 04.11.96 natürlicher Verbund 1. r s := {μ | μ : dom r dom s C, - und μ dom r r und μ dom s s}, 2. i=1,...,k r i := {μ | μ : i=1,...,k dom r i C, und μ dom r i r i für i = 1,...,k} dom r dom s = ABC dom r dom s = B r A B a b e b f g s B C b c r s A B C a b c e b c

description

Operationen der relationalen Algebra

Transcript of Relationale Algebra

Page 1: Relationale Algebra

8.1InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Relationale Operationen

natürlicher Verbund

Selektion

Projektion

Vergleich

Vereinigung

Komplement

Differenz

Division

8.2InformationssystemeJ. Biskup Relationale Operationen 04.11.96

natürlicher Verbund

1. r s := {µ | µ : dom r ∪ dom s → C,

− und µ dom r ∈ r und µ dom s ∈ s},

2. i=1,...,k ri := {µ | µ : ∪i=1,...,k dom ri → C,

und µ dom ri ∈ ri für i = 1,...,k}

dom r ∪ dom s = ABC

dom r ∩ dom s = B

r A B

a b

e b

f g

s B C

b c

r s A B C

a b c

e b c

Page 2: Relationale Algebra

8.3InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Grundlegende Eigenschaften des natürlichenVerbundes:r s = {µ | es gibt α ∈ r, β ∈ s :

α(A) = β(A) für alle A ∈ dom r ∩ dom s, µ = α ∪ β}

liefert einen einfachen Algorithmus:

PROCEDURE NestedLoopJoin(r, s : Relation) :

Relation;VAR ergebnis : Relation;

α, β : Tupel;

BEGINergebnis := Ø;FOR ALL α ∈ r DO

FOR ALL β ∈ s DOIF Passend( α, β)

(* liefert TRUE gdw α(A) = β(A) für alle A ∈ dom r ∩ dom s *)

THEN ergebnis := ergebnis ∪ { α ∪ β} END

ENDEND;RETURN ergebnis

END NestedLoopJoin;

Laufzeit: O ( || r || * || s || )

8.4InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Falls dom r ∩ dom s = ∅, so r s = r × s(kartesischen Produkt ).

Falls dom r = dom s, so r s = r ∩ s(Durchschnitt ).

Der natürliche Verbund ist also doppelgesichtig:

er kann aggregierend wirken und damit (quadratisch)

vergrößerte Ergebnisse liefern;

er kann aussondernd wirken und damit verkleinerte

Ergebnisse liefern;

beide Wirkungen können sich auch überlagern.

Page 3: Relationale Algebra

8.5InformationssystemeJ. Biskup Relationale Operationen 04.11.96

σA=c (r) := r

A

c für A ∈ dom r

heißt A=c-Selektion (A=c-selection).

algebraische Eigenschaften:

r s = s r kommutativ

(r s) t = r (s t) assoziativ

r ⊂ s ⇒ r t ⊂ s t monoton

r ⊂ s ⇒ r s = r absorbtiv

r r = r idempotent

r ∅ = ∅ Nullelement ∅

σA=c (r s) ={ σA=c (r)

σA=c (r)

s

(s)σA=c

falls A ∈ dom r

falls A ∈ dom s∩dom r

8.6InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Projektion1. Sei X ∩ dom r ≠ ∅. Dann heißt πX(r) := {νX | ν ∈ r} Projektion (projection) der Relation r auf X.2. Sei q : X → Y, Y ⊂ dom r, X ≠ ∅. Dann heißt πq(r) := {µ | µ : X → C, es gibt ν ∈ r mit µ = ν ° q}

q-Projektion der Relation r vermöge q.

q(C) = A

q(D) = A

q(E) = B

R A B

a b

e b

F g

πB(r) = B

b

g

πq(r) = C D E

a a b

e e b

f f g

Page 4: Relationale Algebra

8.7InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Sei q : X → X,

q(A) := A für A ∈ X ⊂ dom r.

Dann gilt:

πq(r) = {µ | µ : X → C, es gibt ν ∈ r mit µ = ν ° q}

= {µ | µ : X → C, es gibt ν ∈ r mit µ = ν X}

= {ν X | ν ∈ r}

= πX(r)

8.8InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Grundlegende Eigenschaften der Projektion:

einfacher Algorithmus:

PROCEDURE SequentialProject (q : Attributfunktion; r : Relation) :

Relation;VAR ergebnis : Relation;

ν : Tupel;

BEGINergebnis := ∅;FOR ALL ν ∈ r DO

ergebnis := ergebnis ∪ { ν ° q}

(* Falls das Tupel ν ° q noch nicht in der Relation

ergebnis enthalten ist, so füge es ein; dieseElementtest-Und-Einfüge-Operation kann durch

geeignete Datenstrukturen für die Relation ergebnis, z.B. sortierte Liste oder B*-Baum, unterstützt werden. *)

END;RETURN ergebnis

END SequentialProject;

Laufzeit: O ( || r || ⋅log || r || )

Page 5: Relationale Algebra

8.9InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Sei ∪i=1,...,k Xi = dom r.

Dann gilt: r ⊂ i=1,...,k πXi(r).

Eine verlustbehaftete Zerlegung:

....

πA,B(r) = A B

ab

aa

π B,C (r) = B C

aa

ab

π A,B (r) π B,C (r) = A B C

aabb

aaaa

abab

r = A B C

ab

aa

ab

8.10InformationssystemeJ. Biskup Relationale Operationen 04.11.96

πdom rj ( i=1,...,k ri) ⊂ rj.

A B

ab

aa

r = B C

ab

aa

s =

A B C

aa

aa

ab

A B

aa

πA,B (r s) =r s =

Page 6: Relationale Algebra

8.11InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Teilverbund (semijoin)

r s := πdom r (r s)

= r πdom r ∩ dom s (s)

A B

ab

aa

r = B C

ab

aa

s =

πB

(s) = B

a

r (s) = A B

a a

πB

8.12InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Falls dom r ∩ dom s ⊂ X,

so gilt πX (r s) = πX (r) πX (s).

Falls A ∈ X ∩ dom r,

so gilt πX ( σA=c (r) ) = σA=c ( πX (r) ).

Sei X ∩ Y ∩ dom r ≠ ∅.

Dann gilt:

πX(πY(r)) = πX∩Y(r);

speziell für X ⊂ Y folgt:

πX(πY(r)) = πX(r).

Page 7: Relationale Algebra

8.13InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Vereinigung

+ (d,r,s) := {µ | µ : dom r ∪ dom s → d,

und (µ dom r ∈ r oder µ dom s ∈ s)}

A B

f g f

e e f

r :=d := {e, f, g}

A C

fe

s :=

A B C

e e e e e e f f f e

f f f g g g f f f e

e f g e f g e f g f

+ (d, r, s) =

8.14InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Grundlegende Eigenschaften derVereinigung:

1. Falls dom r = dom s,

d.h. r und s sind vereinigungsverträglich,

so gilt + (d,r,s) = r ∪ s.

2. + (d,r,s) = + (d,s,r).

3. (r ∪ s) t = (r t) ∪ (s t),

σA=c (r ∪ s) = σA=c (r) ∪ σA=c (s).

4. πX (+ (d, r, s) ) = + (d, πX (r), πX (s)),

speziell für dom r = dom s:

πX (r ∪ s) = πX (r) ∪ πX (s).

Page 8: Relationale Algebra

8.15InformationssystemeJ. Biskup Relationale Operationen 04.11.96

A=B-Vergleich, A ≠B-Vergleich

σA=B(r) := {µ | µ ∈ r, und µ(A) = µ(B)}

σA≠B(r) := {µ | µ ∈ r, und µ(A) ≠ µ(B)}

Grundlegende Eigenschaften des Vergleiches:

1. σA=B(r) ∪ σA≠B(r) = r.

2. σA=B(r) ∩ σA≠B(r) = ∅.

3. Sei X = {A1,...,Ak}, Y = {B 1,...,Bk}, wobei die Reihenfolge

der Aufzählung bekannt sei,

und X ∩ Y = ∅, X ∪ Y ⊂ dom r.

Dann sei

σX=Y(r) := σA1=B1 (σA2=B2 (... σAk=Bk(r)... ).

8.16InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Komplement

γ (d,r) := {µ | µ : dom r → d} \ r

A B

fgf

eef

rd := {e, f, g} A B

eegefg

effggg

γ(d, r)

Page 9: Relationale Algebra

8.17InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Differenz

Sei dom r ∩ dom s ≠ ∅.– (d,r,s) := {µ | µ ∈ r,

und µ dom r ∩ dom s ∉ πdom r ∩ dom s(s)}

= r γ (d, πdom r ∩ dom s(s))

A B

fgf

eef

r :=d := { e, f, g} A C

fe

s :=

Differenz der Relationen r und sa) direkt ermittelt:

π (s) =A A

e

– (d, r, s) = A B

f f

b) mit Hilfe der Umschreibung ermittelt:

r γ (d, πdom r ∩ dom s (s)) =

A B

fgf

eef

A

e

γ ( d, ) = A B

fgf

eef

A

fg

= A B

ff

8.18InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Grundlegende Eigenschaften der Differenz:

1. Falls dom r = dom s, so –(d,r,s) = r \ s.

2. Falls dom r ∩ dom s ⊂ X, so

πX (– (d, r, s)) = – (d, πX (r), πX (s));

σA=c

(– (d, r, s)) ={– (d,σA=c(r), s) falls A ∈

– (d,σA=c(r), σA=c

(s)) falls A ∈ ∩

dom r

dom r dom s

3.

Page 10: Relationale Algebra

8.19InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Division

Sei ∅ ≠ dom r ∩ dom s ≠ dom r, s ≠ ∅.

r / s := {µ | µ : dom r \ dom s → C, und für alle ν :

wenn ν ∈ πdom r ∩ dom s (s), dann µ ∪ ν ∈ r} = {µ | µ ∈ πdom r \ dom s (r) und {µ} πdom r ∩ dom s (s) ⊂ r}

Argumente:

man erhält folgende Projektionen:

π (s) =A A

a1a2

π (r) =B B

bd

Für µ1 := ( )B gilt πA(s) = A B

bb

a1a2

⊂ r.µ1

Für µ2 := ( )B gilt πA (s) = A B

dd

a1a2

r.µ2 ⊄

Also folgt r / s = B

b

.

d

b{ }

{ }

A B

b b d

a1 a2 a1

r := A C

c c

a1 a2

s :=

8.20InformationssystemeJ. Biskup Relationale Operationen 04.11.96

Grundlegende Eigenschaften der Division:

1. Falls dom r ∩ dom s = ∅ und s ≠ ∅, so gilt:

(r s) / s = r.

2. r /s = πdom r \ dom s(r) \

πdom r \ dom s((πdom r \ dom s(r) πdom r ∩ dom s(s)) \ r).