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
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
r= A B s= B C
Eine verlustbehaftete Zerlegung: a a a 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 π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.
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
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))
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
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
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
J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.19 J. Biskup Informationssysteme Relationale Operationen 04.11.96 8.20