Sie sind auf Seite 1von 10

Relationale Operationen natürlicher Verbund

natürlicher Verbund
1. r s := {µ | µ : dom r ∪ dom s → C,
Selektion
Projektion − und µ dom r ∈ r und µ dom s ∈ s},
Vergleich
Vereinigung 2. i=1,...,k ri := {µ | µ : ∪i=1,...,k dom ri → C,
Komplement und µ dom ri ∈ ri für i = 1,...,k}

Differenz
Division

r A B
a b s B C
e b b c
f g

dom r ∪ dom s = ABC r s A B C


dom r ∩ dom s = B a b c
e b c

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.1 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.2
Grundlegende Eigenschaften des natürlichen Falls dom r ∩ dom s = ∅, so r s=r×s
Verbundes: (kartesischen Produkt ).
r s = {µ | es gibt α ∈ r, β ∈ s :
α(A) = β(A) für alle A ∈ dom r ∩ dom s, Falls dom r = dom s, so r s=r∩s
µ = α ∪ β} (Durchschnitt ).
liefert einen einfachen Algorithmus:
PROCEDURE NestedLoopJoin(r, s : Relation) Der natürliche Verbund ist also doppelgesichtig:
:
Relation; er kann aggregierend wirken und damit (quadratisch)
VAR ergebnis : Relation; vergrößerte Ergebnisse liefern;
α, β : Tupel;
er kann aussondernd wirken und damit verkleinerte
BEGIN
Ergebnisse liefern;
ergebnis := Ø;
FOR ALL α ∈ r DO beide Wirkungen können sich auch überlagern.
FOR ALL β ∈ s DO
IF Passend(α,β)
(* liefert TRUE gdw α(A) = β(A)
für alle A ∈ dom r ∩ dom s *)
THEN ergebnis := ergebnis ∪ {α ∪ β}
END
END
END;
RETURN ergebnis
END NestedLoopJoin;

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

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.3 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.4
Projektion

A 1. Sei X ∩ dom r ≠ ∅. Dann heißt
σA=c (r) := r  ∈
c  für A dom r
 πX(r) := {νX | ν ∈ r} Projektion (projection)
der Relation r auf X.
2. Sei q : X → Y, Y ⊂ dom r, X ≠ ∅. Dann heißt
heißt A=c-Selektion (A=c-selection). πq(r) := {µ | µ : X → C, es gibt ν ∈ r mit µ = ν ° q}
q-Projektion der Relation r vermöge q.

algebraische Eigenschaften:
R A B
r s=s r kommutativ a b
e b
(r s) t=r (s t) assoziativ F g

r⊂s ⇒ r t ⊂ s t monoton
πB(r) = B
r⊂s ⇒ r s=r absorbtiv b
g
r r=r idempotent

πq(r) = C D E
r ∅=∅ Nullelement ∅ q(C) = A
q(D) = A a a b
σA=c (r) falls A ∈ dom r
σA=c (r s) =
{ σA=c (r)
s
σA=c (s) falls A ∈ dom r ∩ dom s
q(E) = B e
f
e
f
b
g

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.5 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.6
Sei q : X → X, Grundlegende Eigenschaften der Projektion:
q(A) := A für A ∈ X ⊂ dom r.
einfacher Algorithmus:
Dann gilt:
PROCEDURE SequentialProject
πq(r) = {µ | µ : X → C, es gibt ν ∈ r mit µ = ν ° q}
(q : Attributfunktion; r : Relation) :
Relation;
= {µ | µ : X → C, es gibt ν ∈ r mit µ = ν X} VAR ergebnis : Relation;
= {ν X | ν ∈ r} ν : Tupel;

= πX(r) BEGIN
ergebnis := ∅;
FOR ALL ν ∈ r DO
ergebnis := ergebnis ∪ {ν ° q}
(* Falls das Tupel ν ° q noch nicht in der Relation
ergebnis enthalten ist, so füge es ein; diese
Elementtest-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 || )

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.7 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.8
Sei ∪i=1,...,k Xi = dom r. πdom rj ( r ) ⊂ rj.
i=1,...,k i

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

r= A B s= B C
Eine verlustbehaftete Zerlegung: a a a a
a b a b

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


r s= A B C πA,B (r s) = A B
a a a a a a a
b a b b a a b a a a a a
a a b

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


....
A B C
a a a
a a b
b a a
b a b

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.9 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.10
Teilverbund (semijoin)
Falls dom r ∩ dom s ⊂ X,
r s := πdom r (r s) so gilt πX (r s) = πX (r) πX (s).

=r πdom r ∩ dom s (s)


Falls A ∈ X ∩ dom r,
so gilt πX ( σA=c (r) ) = σA=c ( πX (r) ).
r= A B s= B C
a a a a Sei X ∩ Y ∩ dom r ≠ ∅.
a b a b
Dann gilt:
πX(πY(r)) = πX∩Y(r);

πB (s) = B speziell für X ⊂ Y folgt:


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

r πB (s) = A B

a a

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.11 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.12
Vereinigung Grundlegende Eigenschaften der
Vereinigung:
+ (d,r,s) := {µ | µ : dom r ∪ dom s → d, 1. Falls dom r = dom s,
und (µ dom r ∈ r oder µ dom s ∈ s)} d.h. r und s sind vereinigungsverträglich,
so gilt + (d,r,s) = r ∪ s.

d := {e, f, g} r := A B + (d, r, s) = A B C 2. + (d,r,s) = + (d,s,r).


e f e f e
e g e f f 3. (r ∪ s) t = (r t) ∪ (s t),
f f e f g
e g e σA=c (r ∪ s) = σA=c (r) ∪ σA=c (s).
e g f
s := A C
e g g 4. πX (+ (d, r, s) ) = + (d, πX (r), πX (s)),
f f e
e f f f f
f f g
speziell für dom r = dom s:
e e f
πX (r ∪ s) = πX (r) ∪ πX (s).

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.13 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.14
A=B-Vergleich, A≠B-Vergleich Komplement

σA=B(r) := {µ | µ ∈ r, und µ(A) = µ(B)} γ (d,r) := {µ | µ : dom r → d} \ r

σA≠B(r) := {µ | µ ∈ r, und µ(A) ≠ µ(B)} d := {e, f, g} r A B γ (d, r) A B


e f e e
Grundlegende Eigenschaften des Vergleiches: e g f e
1. σA=B(r) ∪ σA≠B(r) = r. f f f g
g e
g f
2. σA=B(r) ∩ σA≠B(r) = ∅.
g g

3. Sei X = {A1,...,Ak}, Y = {B1,...,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)... ).

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.15 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.16
Differenz Grundlegende Eigenschaften der Differenz:
Sei dom r ∩ dom s ≠ ∅.
– (d,r,s) := {µ | µ ∈ r,
und µ dom r ∩ dom s ∉ πdom r ∩ dom s(s)} 1. Falls dom r = dom s, so –(d,r,s) = r \ s.
= r γ (d, πdom r ∩ dom s(s))

d := {e, f, g} r := A B s := A C 2. Falls dom r ∩ dom s ⊂ X, so


e f e f πX (– (d, r, s)) = – (d, πX (r), πX (s));
e g
f f

Differenz der Relationen r und s


– (d,σ falls A ∈ dom r
a) direkt ermittelt:
3.
σ
A=c {
(– (d, r, s)) =
– (d,σ
A=c

A=c
(r), s)

(r), σ
A=c
(s)) falls A ∈ dom r ∩ dom s
π (s) = A – (d, r, s) = A B
A
e f f

b) mit Hilfe der Umschreibung ermittelt:


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

e f e e f f f f
e g e g g
f f f f

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.17 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.18
Division Grundlegende Eigenschaften der Division:
Sei ∅ ≠ dom r ∩ dom s ≠ dom r, s ≠ ∅.
1. Falls dom r ∩ dom s = ∅ und s ≠ ∅, so gilt:
r / s := {µ | µ : dom r \ dom s → C, und
für alle ν : (r s) / s = r.
wenn ν ∈ πdom r ∩ dom s (s), dann µ ∪ ν ∈ r}
= {µ | µ ∈ πdom r \ dom s (r) und {µ} πdom r ∩ dom s (s) ⊂ r} 2. r /s = πdom r \ dom s(r) \
Argumente: r := A B s := A C πdom r \ dom s((πdom r \ dom s(r) πdom r ∩ dom s(s)) \ r).
a1 b a1 c
a2 b a2 c
a1 d

man erhält folgende Projektionen:


πA(s) = A πB(r) = B
a1 b
a2 d

Für µ1 :=
( Bb ) gilt { µ 1} π A (s) = A
a1
B ⊂ r.
b
a2 b

Für µ 2 :=
( Bd ) gilt { µ 2} π A (s) = A
a1
B ⊄ r.
d
a2 d

Also folgt r/s= B .


b

J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.19 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.20