2.5 Relationale Algebra 2.5.1 ¨Uberblick RA 2.5.1 ¨Uberblick RA 2.5

Werbung
2.5 Relationale Algebra
2.5.1 Überblick RA
Bedeutung der Relationalen Algebra
2.5.1 Überblick
Codd-vollständige relationale Sprachen
• Formale Sprache für den Berechnungsweg von
• Relationale Algebra
Abfragen werden durch exakte Angabe der auf den Relationen
durchzuführenden Operationen formuliert
Abfrageergebnissen
• mathematische Rechenregeln ermöglichen Abfrageoptimierung
• Relationenkalküle
Abfrageergebnis wird durch seine Eigenschaften beschrieben
ohne Angabe einer Berechnungsprozedur
durch algebraische Umformung
• auch geeignet zur Formulierung von Integrity Constraints
Codd hat gezeigt, dass Relationale Algebra, Tupelkalkül
und Domänenkalkül gleich ausdrucksstark sind
Leistungsmaßstab“ ist Relationale Algebra:
”
mindestens so mächtige Sprache heißt Codd-vollständig
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -1-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.1 Überblick RA
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -3-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.1 Überblick RA
Wie verhält sich SQL dazu?
Was ist eine Algebra?
• besteht aus atomaren Operanden und Operatoren
Beispiel Algebra-Elemente:
SELECT nr, name FROM produkt
• Regelwerk um daraus Ausdrücke zu bilden; dabei
WHERE hnr IN (SELECT nr FROM hersteller);
im allgemeinen Gruppierung durch Klammern nötig
Beispiel Kalkül-Element:
SELECT nr, name FROM produkt
WHERE EXISTS (SELECT ’ ’ FROM hersteller
Beispiel: Algebra der Arithmetik
WHERE hersteller.nr=produkt.hnr);
• Operanden: Variablen (z.B. x) und Zahlenkonstanten (z.B. 42)
• SQL basiert hauptsächlich auf Relationaler Algebra, enthält aber
einzelne Elemente des Relationalen Kalküls.
• Operatoren: arithmetische Operatoren (+,-,*,/)
• Beispiele für Ausdrücke in dieser Algebra:
• SQL ist nicht nur Codd-vollständig, sondern mächtiger als die
Relationale Algebra
• SQL kann zwar optional Relationen (Mengen) erzeugen (distinct),
arbeitet aber ansonsten mit Bags (ungeordneten Listen)
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -2-
University of Applied Sciences
(x + 2*y) * z
(x + 5)/(y - 2) + x
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -4-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.1 Überblick RA
2.5.2 RA Operatoren
Operanden der Relationalen Algebra
Mengen versus Bags
• Relationen-Variablen
• Relationales Modell ursprünglich (Codd 1970)
• Relationen-Konstanten
mit Relationen als Mengen definiert
I
I
Operatoren der Relationalen Algebra
• übliche Mengenoperationen (Vereinigung, Schnitt, Differenz)
keine Doubletten zulässig
Operatoren inperformant (warum?)
• Moderne Implementierungen bevorzugen Bags
(ungeordnete Listen)
• Extraktionsoperatoren Selektion“ und Projektion“
”
”
• Kombinationsoperatoren Cartesisches Produkt“ und Joins“
”
”
• Umbenennung ( Rename“)
”
I
I
Tupel ungeordnet, aber Doubletten möglich
Operatoren performant implementierbar
Operatoren der Relationalen Algebra haben
eine Mengen- und eine Bag-Version
Ausdrücke der RA heißen Queries (Abfragen)
Relationenänderung durch Zuweisung, z.B.
A := A \ σnr =0 H20 (A)
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -5-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.1 Überblick RA
Hochschule Niederrhein
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.2 RA Operatoren
Themen zur Relationalen Algebra:
a) Extraktionsoperatoren
• Operatoren und Rechenregeln
Welche Basis-Operatoren werden benötigt für Abfragen?
Unterschied Relationen versus Bags
• Projektion
πa1 ,...,an (R) = Auswahl der Spalten a1 , . . . , an
• Selektion
• Dreiwertige Logik
Behandlung von NULL-Werten
σBedingung (R) = Auswahl Tupel, die Bedingung erfüllen
• Eigenschaften der Operatoren
Berechnungskomplexität, begrenzte Ausdrucksstärke
π name, preis
• Algebraische Umformungen
Äquivalenz algebraischer Ausdrücke, Abfrageoptimierung
σpreis > 3
• Formulierung von Constraints mit RA
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -6-
University of Applied Sciences
Dalitz: Datenbanksysteme Kap2.5. -7-
University of Applied Sciences
pnr#
name
preis
hnr
P1
P2
P3
Pritt
Füller
Tinte
2.50
12.98
3.20
H1
H2
H2
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -8-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.2 RA Operatoren
2.5.2 RA Operatoren
Definition von ∪, ∩ und \ für Mengen altbekannt.
Aber was ist bei Bags?
Bemerkungen:
• Verhalten des Selektionsoperators σ für
Bags und Mengen identisch (Warum?)
R enthalte Tupel t n-mal
S enthalte dasselbe Tupel t m-mal
• Projektionsoperator π für Bags und Mengen verschieden
R ∪ S enthält Tupel t dann (n + m)-mal
R ∩ S enthält Tupel t dann min(n, m)-mal
R \ S enthält Tupel t dann max(0, n − m)-mal
Wie verhält sich SQL-Befehl select dazu?
• Kombination von Selektion und Projektion:
SELECT name FROM produkt WHERE preis > 3;
entspricht
πname (σpreis>3 (produkt))
R
a b
1 2
1 1
• normalerweise Bagoperation,
mit Modifier distinct aber Mengenoperation
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -9-
University of Applied Sciences
S
a b
1 2
1 2
R∪S
a b
1 2
1 1
1 2
1 2
R∩S
a b
1 2
R\S
a b
1 1
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.2 RA Operatoren
S\R
a b
1 2
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -11-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.2 RA Operatoren
Achtung:
b) Mengenoperatoren
Rechenregeln für Mengen- und Bag-Version
können unterschiedlich sein:
• Vereinigung: R ∪ S
• Schnitt: R ∩ S
• Differenz: R \ S
I
R ∪ S = S ∪ R gilt für Mengen und Bags
I
(R ∪ S) \ T = (R \ T ) ∪ (S \ T ) gilt für Mengen, aber nicht Bags
Bemerkungen:
Mengenoperationen in SQL
• Voraussetzung: identische Attributnamen in R und S
• union, intersect und except für ∪, ∩ und \
nur möglich bei gleichen Rückgabetypen der
verknüpften select-Statements
• Schnittoperator eigentlich überflüssig wegen
• normalerweise Mengenoperation (!), Bagoperation mit
R ∩ S = (R ∪ S) \ ((R \ S) ∪ (S \ R))
Modifier all, z.B. select ... except all select ... ;
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -10-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -12-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.2 RA Operatoren
2.5.2 RA Operatoren
Join = Selektion auf Kartesischem Produkt
c) Umbenennung
Ro
nBed S
Rename-Operator:
%S(B1 ,...,Bn ) (R) = Kopie von R mit anderen Namen
= σBed (R × S)
Spezialfall Natural Join“:
”
Bei Bedingung der Form a = b entstehen Spalten, die in
allen Werten identisch sind
⇒ Vereinfachungskonvention Natural Join
Wozu braucht man das?
• um zwei Relation kompatibel für Mengenoperationen
I
∪, ∩ oder \ zu machen
I
• Vermeidung doppelter Attributnamen im Cartesischen Produkt
I
Joinbedingung ist Gleichheit gleichnamiger Attribute
identische Ergebnisspalten nur einmal aufgeführt
Notation durch Weglassen der Bedingung
Beispiel: Natural Join von R(a, b, c) und S(a, e, f ):
Ro
n S = πa,b,c,e,f R o
nR.a=S.a S
Elektrotechnik
und Informatik
Hochschule Niederrhein
University of Applied Sciences
Dalitz: Datenbanksysteme Kap2.5. -13-
Faculty of Electrical Engineering
and Computer Science
2.5.2 RA Operatoren
σBedingung , πSpaltenliste
∪, ∩ und \
%S(b1,...,bn )
×, o
nBedingung
= Relation Q mit allen Attributen
aus R und S, wobei jedes Tupel ∈ R
mit jedem Tupel ∈ S kombiniert wird
S c d
x y
x z
R× S
a
1
1
3
3
b c
2 x
2 x
4 x
4 x
Faculty of Electrical Engineering
and Computer Science
Selektion, Projektion
Vereinigung, Schnitt und Differenz
Umbenennung
Kreuzprodukt, Join
einige Rechenregeln
d
y
z
y
z
σBed1 (σBed2 (R)) = σBed2 (σBed1 (R))
R ∪ (S ∩ T ) = (R ∪ S) ∩ (R ∪ T )
πY (σBed (R)) = σBed (πY (R))
wenn in Bed nur Atrribute aus Y vorkommen
σBed1 (R o
nBed2 S) = σBed1 (R) o
nBed2 σBed1 (S)
Tupelanzahl: |R × S| = |R| · |S|
wenn in Bed1 nur Atrribute aus attr (R) ∩ attr (S) vorkommen
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -14-
Elektrotechnik
und Informatik
Zusammenfassung
Cartesisches Produkt (Kreuzprodukt):
R a b
1 2
3 4
University of Applied Sciences
2.5.2 RA Operatoren
d) Kombinationsoperatoren
R ×S
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -15-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -16-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.2 RA Operatoren
2.5.3 Dreiwertige Logik
Behandlung von NULL-Werten bei Vergleichs- operatoren und
logischen Verknüpfungen?
Darstellung von Queries
Was sind die Produkte des Herstellers ’H1’,
”
die mehr als 3 Euro kosten?“
a) Vergleichsoperatoren
logischer Wert von (a ∼ b) ist unbekannt“ (ω),
”
wenn a oder b den Wert NULL (unbekannt) hat
a) Verkettung der Operatoren
πpnr, name σpreis > 3 (produkt) ∩ σhnr = ’H1’ (produkt)
b) Logische Verknüpfungen
AND
F
ω
T
b) Definition temporärer Variablen
R (nr, name, hnr, preis) := σpreis > 3 (produkt)
S (nr, name, hnr, preis) := σhnr = ’H1’ (produkt)
Ergebnis (nr, name) := πpnr, name (T )
Hochschule Niederrhein
University of Applied Sciences
Faculty of Electrical Engineering
and Computer Science
OR
F
ω
T
F
F
ω
T
ω
ω
ω
T
T
T
T
T
Hochschule Niederrhein
University of Applied Sciences
Dalitz: Datenbanksysteme Kap2.5. -19-
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.3 Dreiwertige Logik
Beispiele:
Was sind die Produkte des Herstellers ’H1’, die mehr als 3
”
Euro kosten?“
(a > NULL) AND (1 = 2) → unwahr (F)
(NULL = NULL) OR (1 = 2) → unbekannt (ω)
c) Baumdiagramm
Bei Duplikatslöschung (z.B. bei ∪ nötig) werden
NULL-Werte wie normale Werte behandelt
π nr, name
Verarbeitung
T
F
ω
T
Elektrotechnik
und Informatik
2.5.2 RA Operatoren
R
Operatoren
∩
a
b
1
NULL
NULL NULL
σpreis > 3
σ hnr = ’H1’
produkt
produkt
Operanden an
den Blättern
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -18-
ω
F
ω
ω
Not (F) = T
Not (T) = F
Not (ω) = ω
T := R ∩ S
Dalitz: Datenbanksysteme Kap2.5. -17-
F
F
F
F
University of Applied Sciences
S
a
1
1
b
NULL
2
S ∪R
a
b
1
NULL
NULL NULL
1
2
E.F. Codd: Extending the Relational Model.
ACM Transactions on Database Systems (4) 1979, p 397-434
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -20-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.4 Eigenschaften der RA
2.5.5 Algebraische Optimierung
An der Tafel vorgeführt:
Ausdrücke (1) und (2) sind äquivalent,
d.h. liefern dasselbe Ergebnis
• Komplexität der Operatoren
I
Operationen effizient (vgl. THI, 4. Semester) durchführbar
I
Bagoperatoren geringere Komplexität als Mengenoperatoren
(1)
(2)
π lieferant, produkt
π lieferant, produkt
σlieferant=’Henkel’
• Grenzen der Relationalen Algebra
σlieferant=’Henkel’
I
es gibt Abfragen, die nicht in RA möglich sind
(z.B. Berechnung der transitiven Hülle)
I
Grund: RA ist nicht Turing-vollständig (vgl. THI)
Lieferant
Produkt
Lieferung
Lieferant
Produkt
Lieferung
Selektion wird in (2) früher durchgeführt
⇒ kleinere Zwischenergebnisse ⇒ performanter
Hochschule Niederrhein
University of Applied Sciences
Dalitz: Datenbanksysteme Kap2.5. -21-
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.5 Algebraische Optimierung
Hochschule Niederrhein
University of Applied Sciences
Dalitz: Datenbanksysteme Kap2.5. -23-
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.5 Algebraische Optimierung
Beispiel:
Allgemeine Optimierungsstrategie
Lieferant (A)
lnr#
lieferant
Produkt (B)
pnr#
produkt
preis
• Selektionen zu Blättern verschieben
Lieferung (C)
nr#
lnr
pnr
menge
I
I
Selektionen verkleinern Zwischenergebnisse ⇒ möglichst früh
durchführen
Joins sind besonders teuer. Nutze Regel
σBed (R ∼ S) = σBed (R) ∼ S
Die Abfrage
πlieferant, produkt σlieferant = ’Henkel’ (A o
nBo
n C)
für ∼ ∈ {×, o
n, ∩}
wenn R alle Attribute aus Bed enthält
(1)
• zusätzliche Projektionen einfügen
kann wegen A o
nB=Bo
n A, σC (R o
n S) = σC (R) o
n S und
(A o
n B) o
nC =Ao
n (B o
n C ) umgeformt werden in
πlieferant, produkt C o
n (σlieferant = ’Henkel’ (A) o
n B)
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -22-
University of Applied Sciences
I
(2)
nicht benötigte Spalten können entfernt werden
⇒ nicht weniger Tupel, aber weniger Attribute
Garcia-Molina, Ullman, Widom: Database Systems - The
Complete Book. Prentice Hall 2002. Kapitel 16.2
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -24-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.6 Erweiterte RA Operatoren
2.5.7 RA für Constraints
Beispiel b)
Foreign Key
Constraint
An der Tafel erläutert:
δ
τ
γ
◦
./
Duplikatslöschung
Sortierung
Gruppieren
hersteller
produkt
hnr#
name
pnr#
name
hnr
preis
πhnr (produkt) ⊆ πhnr (hersteller)
oder
Outer Join
πhnr (produkt) \ πhnr (hersteller) = ∅
Bemerkungen:
• Projektionen oben sind Mengen-Operationen (warum?)
• Ungleichung immer als Gleichung formulierbar wegen
R⊆S
Hochschule Niederrhein
University of Applied Sciences
Dalitz: Datenbanksysteme Kap2.5. -25-
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
2.5.7 RA für Constraints
Integritätsbedingungen durch (Un-) Gleichungen
der Relationalen Algebra formulierbar:
A1 = ∅
A1 = A2
A1 ⊆ A2
wobei A1, A2 Ausdrücke der Relationalen Algebra
Beispiel a)
NOT NULL Constraint auf Attribut a in R:
σa
is NULL (R)
=∅
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -26-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
⇐⇒
R \S =∅
Hochschule Niederrhein
Dalitz: Datenbanksysteme Kap2.5. -27-
University of Applied Sciences
Elektrotechnik
und Informatik
Faculty of Electrical Engineering
and Computer Science
Herunterladen