(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