Kapitel 3 (Teil 2/2)

Werbung
(UZHLWHUXQJGHUUHODWLRQDOHQ$OJHEUD
Probleme der relationalen Algebra und des Tupelkalküls
‰
Das bisherige Konzept der relationalen Algebra unterstützt nicht die Formulierung von
wichtigen Anfragen.
–
Datentyp Relation (Menge von Tupeln) nicht ausreichend.
(i) Sortieren der Daten (insbesondere beim Ergebnis einer Anfrage)
(ii) Abspeichern von Duplikaten (die z. B. durch Projektion entstehen)
–
Funktionalität der relationalen Algebra nicht ausreichend.
(iii) Verdichtung der Daten einer Relation durch Aggregation (Summe, Durchschnitt)
Beispielsanfragen
‰
‰
Berechne zu jeder Maschine die Anzahl von Personen, welche die Maschine bedienen können.
Wieviel Geld muß diesen Monat an alle Angestellten gezahlt werden?
Anmerkung
‰
Wir werden später bei der tatsächlichen Anfragesprache relationaler Systeme (SQL) sehen,
dass diese Anforderungen beim Entwurf von SQL berücksichtigt wurden.
Seite 79
05HODWLRQ
‰
Eine 0XOWL5HODWLRQ (M-Relation) R besteht aus einem Relationenschema RSR und einer
Instanz IR, wobei als Instanz eine Multimenge zulässig ist.
‰
Zwei M-Relationen heißen VFKHPDYHUWUlJOLFK, falls die Attribute der beiden Mengen gleich
sind, und der Wertebereich der Attribute in beiden Relationen gleich ist.
Sei M eine Multi-Relation. Dann bezeichnet 90[ die Anzahl der Vorkommen eines Tupels
x in der Instanz von M.
–
Instanzen von Multi-Relationen werden als Multimengen von Tupeln repräsentiert, wobei
Tupel mehrfach vorkommen können.
–
Um den Unterschied zu Mengen klar zu machen, verwenden wir statt Mengenklammern
“<“ und “>”.
–
Gewöhnliche Relationen können als Spezialfall von M-Relationen betrachtet werden, für
deren Tupel stets V(M,t) = 1 gilt.
Um die Semantik von Operationen zu definieren, verwenden wir die Funktionen V. Seien M
und N schemaverträgliche Multimengen. Dann gilt
‰
‰
–
M = N genau dann, falls [ : 9 0 [ = 9 1 [ .
–
0 Ž 1 genau dann, falls [ : 9 0 [ d 9 1 [ Seite 80
(UZHLWHUXQJGHUUHODWLRQDOHQ2SHUDWRUHQ
‰
6HOHNWLRQ: MRel -> MRel
–
56 V
–
­
Es gilt: 9 V ) 5 [ = ® 9 5 [ 0
¯
–
Die Selektion auf M-Relationen entspricht damit der Selektion auf Relationen.
–
Beispiel: Sei RSR = {A,B} und , 5 = ¢ 1 1 1 2 1 3 1 2 ² . Dann ist
,V
‰
)5
% = 25
= 56 5
falls ) [ .
sonst
= ¢ 1 2 1 2 ²
.DUWHVLVFKHV3URGXNW: MRel x MRel -> MRel
–
56 5 u 6 = 56 5 ‰ 56 6 (Ann.: 56 5 ˆ 56 6 = ‡ ).
–
9 5 u 6 [ = 9 5 [ > 56 5 @ ˜ 9 6 [ > 56 6 @ für [  'RP 5 u 6 .
Es wird analog zu Mengen das kartesische Produkt bei Multimengen gebildet.
–
Beispiel: , 5 = ¢ 1 2 1 ² und , 6 = ¢ 1 2 ² . Dann ist
, 5 u 6 = ¢ 1 1 1 2 2 1 2 2 1 2 1 2 ² .
Seite 81
‰
9HUHLQLJXQJ: MRel x MRel -> MRel
–
Seien R und S schemaverträglich.
–
Die Instanz ergibt sich aus folgender Bedingung: 9 5 ‰+6 [ = 9 5 [ + 9 6 [ .
Bei der Vereinigung werden also Duplikate nicht beseitigt.
–
Beispiel: Seien , 5 = ¢ 1 2 1 ² und , 6 = ¢ 2 3 ² . Dann ist
, 5 ‰ 6 = ¢ 1 2 1 2 3 ² .
+
–
‰
Diese Vereinigung wird auch als Summenvereinigung bezeichnet. Zusätzlich wird auch
noch die Maximumsvereinigung benötigt.
'LIIHUHQ] MRel x MRel -> MRel
–
Annahme: R und S sind schemaverträglich. Somit ist 56 5 – 6 = 56 6 = 56 5 .
–
Die Instanz ergibt sich aus folgender Bedingung:
–
­
9 5 – 6 [ = ® 9 5 [ – 9 6 [ falls 9 5 [ ! 9 6 [ .
0
sonst
¯
Die Differenz entfernt somit QLFKWDOOH,QVWDQ]HQ von einem Element aus der ersten
Multimenge, das in der zweiten Multimenge vorkommt.
Seite 82
–
Beispiel: , 5 = ¢ 2 1 2 1 ² und , 6 = ¢ 2 3 ² . Dann ist
, 5 – 6 = ¢ 2 1 1 ² .
–
‰
Als Alternative könnte man auch die Differenz strikt definieren, indem jedes Tupel aus
der Relation R entfernt wird, das in der Relation S liegt.
3URMHNWLRQ: MRel -> MRel
–
Das Relationenschema X der Projektion auf einer Relation R wird explizit beim
Operationsaufruf definiert, wobei ; Ž 56 5 .
–
Es gilt: 9 S ; 5 [ =
¦
9 5 [' . Bei der Projektion wird also jedes
[’  , 5 š [’> ; @ = [ Tupel der Eingabe in ein Tupel der Ausgabe überführt. Gleiche Tupel werden
verschmolzen und deren Vielfachheit aufsummiert.
–
‰
Beispiel: Für , 5 = ¢ 1 1 1 2 2 3 ² ist , S
15
= ¢ 1 1 2 ² .
8PEHQHQQXQJ: MRel -> MRel
Entspricht der Operation, wie sie für Relationen definiert ist.
Seite 83
9HUDOOJHPHLQHUXQJGHU3URMHNWLRQ
‰
‰
Die Projektion und auch die Umbenennung sind bei M-Relationen Operatoren, die zu jedem
Tupel der Eingabe ein Tupel der Ausgabe erzeugen. Solche Abbildungen werden auch als PDS
bezeichnet.
Seien R eine M-Relationen, RST ein Relationenschema und f: (RSR -> Dom(R)) -> (RST ->
Dom(T)) eine Abbildung. Dann wird durch
PI 5 die relationale Map definiert, wobei
‰
–
56 P 5 = 56 7
–
9 , P 5 [ =
I
I
¦
9 5 \ \  ,5 š [ = I(\)
Man beachte dabei, dass f eine Funktion ist, die ein Tupel der Relation R auf ein Tupel der
Relation T abbildet. Dabei haben wir die Definition des Tupels als eine Abbildung benutzt.
Beispiel
Sei R eine Relation mit RSR = {A,B} und , 5 = ¢ 1 2 2 1 1 2 2 1 4 6 ² . Sei f(t)
= (t[A]*t[B], t[A] + t[B]) eine Abbildung. Dann ist
·
, P 5 = ¢ 2 3 2 3 2 3 2 3 24 10 ² .
I
Seite 84
$JJUHJDWLRQ
Motivation
‰
‰
Um schnell einen Überblick der Daten einer Multi-Relation zu bekommen, soll in einer
Anfragesprache auch die Berechnung wichtiger Kennzahlen unterstützt werden. Insbesondere
im betriebswirtschaftlichen Umfeld sind dabei die Aggregationsoperationen Summe (sum),
Durchschnitt (avg), Anzahl (count), Minimum (min) und Maximum (max) von Bedeutung.
In der relationalen Algebra sind solche Operationen bisher noch nicht berücksichtigt worden.
Erweiterung der relationalen Algebra
‰
Eine Aggregationsfunktion DJJ berechnet zu einer Multi-Relation einen Wert aus einem
Wertebereich '. Ganz allgemein ist DJJ: MRel o ' .
‰
Die relevanten Aggregationsfunktionen sind avg, sum, count: MRel o ' und min und max,
die eine Multi-Relation auf den Wert eines Attributs abbilden.
–
Bei der Anwendung von sum und avg muss noch zusätzlich ein Attribut aus dem Schema
der Relation angegeben werden, auf welches das Aggregat abgebildet wird.
–
Die Operation count liefert die Anzahl der Tupel in der Instanz der Relation.
Aggregate finden zunächst nur Verwendung in Kombination mit einem Gruppierungsoperator,
den wir folgendermaßen einführen.
‰
Seite 85
*UXSSLHUXQJ
‰
‰
Um gleich mehrere Kennzahlen für eine Multi-Relation zu berechnen, kann diese in Klassen
(Partitionen) aufgeteilt und für jede dieser Partitionen eine Kennzahl berechnet werden.
Eine Partition ist wiederum eine Relation, die das Schema von der Quelle erbt.
–
Bei einer Relation R wird eine Partitionierung durch ^ $ 1 ,} ,$ Q ` Ž 56 5 definiert. Eine
‰
Partition enthält alle Tupel aus IR, die bzgl. der Attribute ^ $ 1 ,} ,$ Q ` den gleichen Wert
besitzen.
Zu einer Aggregatoperation (und einem ausgezeichneten Attribut) wird nun für jede Partition
eine Kennzahl berechnet. Diese Kennzahl wird zusammen mit den Werten der
Partitionierungsattribute in der Ergebnisrelation eingetragen.
‰
Sei R eine Multi-Relation und A = ^ $ 1 ,} ,$ Q ` Ž 56 5 . Des Weiteren seien B1,…,Bm
Attribute und agg1,…,aggm Aggregatsfunktionen mit agg L : MRel o dom(% L) .Dann ist der
Gruppierungsoperator 6 = J $ %
1
= agg 1 … % P = agg P(5)
folgendermaßen definiert:
–
RSS = $ ‰ ^ % 1 … % P ` .(Ann.: % L  $ , 1 d L d P )
–
­
9 6 [ = ® 1 falls 9 5 [ > $ @ ! 0 und x[Bi] = aggi( V 5 > $ @ = [ > $ @ 5 ).
sonst
¯ 0
Seite 86
Beispiel:
‰
Betrachten wir die Relationeninstanz , 5 = ¢ 1 1 1 2 1 3 2 4 ² . Dann ist
J $ & = FRXQW(5) = ¢ 1 3 2 1 ² . Es treten also keine Tupel mehrfach auf.
Spezialfall (Duplikateliminierung)
‰
Ein wichtiger Spezialfall des Gruppierungsoperators ist die Duplikateliminierung G . Dabei
setzen wir A = RSR und berechnen keine Aggregationsfunktion (P=0).
‰
Durch eine Duplikateliminierung werden alle Zähler von Tupeln der Relation R auf den Wert 1
gesetzt. Eine solche Multi-Relation entspricht einer gewöhnlichen Relation.
Beispiele:
‰
–
Sei R = ¢ 1 2 1 ² eine M-Relation. Dann ist G 5 = ¢ 1 2 ² .
–
Relationenschemata: Städte SName SEinw LName Länder LName LEinw Partei .
Berechne die Namen der Städte in allen Bundesländern.
G S SName V SEinw t 8000 Städte Seite 87
$EJHOHLWHWH2SHUDWLRQHQ
‰
‰
Man hat bereits bemerkt, dass die Unterstützung von Multi-Relationen zu einem wesentlich
komplexeren Modell führt.
– Insbesondere gelten die Mengengesetze für die Instanzen der Multi-Relationen nicht.
Deshalb werden noch weitere Operationen für die Vereinigung und Differenz benötigt.
–
Schnitt zweier schemaverträglicher Relationen R und S
5 ˆ 6 = 5 – 5 – 6
–
Maximumsvereinigung von R und S
5 ‰PD[6 = 5 – 6 ‰+6
–
Strikte Differenz
5- strict 6 = 5
‰
G(5) – 6 Anmerkung
Leider ist dieser Grad an Präzision notwendig, da nur dadurch die Semantik von Anfragesprachen wie SQL klar definiert werden kann.
Seite 88
%HLVSLHOH
‰
Wie beziehen uns auf die Datenbank mit den Relationen Personal, Maschinen, …
Anfragen
‰
Was ist die durchschnittiche Bewertung aller Angestellten an den zugeteilten Maschinen.
‰
Wie sieht der Notenspiegel insgesamt aus?
‰
Welche Maschine wird unter allen Maschinen am schlechtesten bedient?
‰
Welcher Angestellte hat den besten Notendurchschnitt?
‰
Berechne für jede Abteilung die Anzahl der Maschinen, die von den Mitarbeitern bedient
werden können.
‰
Was ist der Notendurchschnitt der Angestellten aus den verschiedenen Abteilungen?
Seite 89
65HODWLRQ
‰
Eine S-Relation besteht aus (R, <R), wobei
–
–
‰
Durch
–
‰
R eine M-Relation
<R eine Ordnungsrelation auf dom(R)
Z < : MRel -> SRel
wird eine M-Relation R auf eine S-Relation S = (R, <) abgebildet, wobei < eine
Ordnungsrelation auf R definiert.
Beispiel:
R
A
4
9
7
B
1
2
8
C
3
3
4
Seite 90
Seien
–
<1 = {((a,b,c), (d,e,f)) | a < d}
–
<2 = {((a,b,c), (d,e,f)) | c < f oder (c = f) und b > e}
Ordnungsrelationen. Dann sind
Z < 5 A B C
1
4 1 3
7 8 4
9 2 3
Z < 5
A B C
2
9 2 3
4 1 3
7 8 4
Achtung:
‰
‰
Durch die Operation Z wird eine S-Relation erzeugt. Da aber die Operationen der rel. Algebra
nicht für S-Relationen definiert sind, ist es in einem Ausdruck nur möglich, Z als letzte
Operation anzuwenden.
Berechne die Liste der Namen aller Angestellten und sortiere diese aufsteigend nach der besten
Beurteilung an einer Maschine: Z < S SName ,LName ,SEinw V SEinw ! LEinw Städte u Länder Man beachte, dass dieser Ausdruck zuviel an Information liefert, da zusätzlich zum Namen der
Stadt auch noch der Name des Lands und die Einwohnerzahl zurückgegeben werden.
Seite 91
=XVDPPHQIDVVXQJ
‰
‰
‰
‰
‰
Begriff der Relation
–
Relationenschema und Relationen instanz
–
Zwei Definitionen basierend auf Attributlisten / Attributmengen
–
einfache Integritätsbedingungen
Abbildung von ER-Modell in ein relationales Modell
Relationale Algebra
–
Mengenalgebra
Tupelkalkül
–
Prädikatenlogik erster Stufe
Erweiterte relationale Algebra
–
Algebra für Multimengen
–
Geordnete Mengen
–
weitere Operationen: Gruppierung
Seite 92
Herunterladen