Kapitel 3: Relationale Algebra Algebra Motivation (1) Wir wollen aus Relationen für uns interessante Informationen extrahieren, Tabellen modifizieren und neue Tabellen aus alten generieren Datenbankeinsatz: Relationale Algebra 1 Datenbankeinsatz: Relationale Algebra 2 Algebra Motivation (2) Anfragealgebren Anfragesprache (SQL) ist definitiv nützlich (Datenunabhängigkeit) Wir betrachten in diesem Kapitel aber anderen Mechanismus, relationale Algebra: Einfacher, erlaubt Aussagen zur Ausführungsreihenfolge Später: Abbildung von SQL auf Ausdrücke der relationalen Algebra Mathematik Algebra definiert durch Wertebereich und auf diesem definierte Operatoren Für Datenbankanfragen Inhalte der Datenbank sind Werte, und Operatoren definieren Funktionen zum Berechnen von Anfrageergebnissen Datenbankeinsatz: Relationale Algebra 3 Datenbankeinsatz: Relationale Algebra 4
Anforderungen Anfragen (in Anfragesprache) werden i a abgebildet auf Folge von Algebra-Operatoren Anforderungen an diese Algebra: Optimierbarkeit: Bestehend aus wenigen Operationen, für die es Optimierungsregeln gibt Effizienz: Jede Operation ist effizient ausführbar (Im Relationenmodell hat jede Operation eine Komplexität O(n 2 ), n Anzahl der Tupel einer Relation) Mengenorientiertheit: Jede Operation soll auf Mengen von Daten gleichzeitig arbeiten, nicht navigierend nur auf einzelnen Elementen (one-tuple-at-a-time) Datenbankeinsatz: Relationale Algebra 5 Relationenalgebra (1) Spalten ausblenden:, Zeichen π; in []: welche Spalten behalten, in (): auf welche Relation anwenden; Zeilen heraussuchen:, Zeichen σ; in []: unter welchen Bedingungen, in (): auf welche Relation anwenden; Tabellen verknüpfen: Verbund (), Zeichen ; Tupel über gleichbenannten Spalten und Werten aneinanderhängen; Tabellen vereinigen: Vereinigung, Zeichen ; Tupel aus beiden Relationen sammeln, Duplikate eliminieren Datenbankeinsatz: Relationale Algebra 6 Relationenalgebra (2) Tabellen voneinander abziehen: Differenz; Zeichen ; Tupel aus der ersten Relation herausnehmen, falls sie auch in der zweiten Relation vorkommen Spalten umbenennen: Umbenennung, Zeichen ß; einen Attributnamen in einen anderen umbenennen (wichtig für und, ) Laufendes Beispiel Ausleih Invnr Name 4711 Meyer 1201 Schulz 0007 Müller 4712 Meyer Buch Invnr Titel ISBN Autor 0007 Dr No 3-125 James Bond 1201 Objektbanken 3-111 Heuer 4711 Datenbanken 3-765 4712 Datenbanken 3-891 Ullman 4717 Pascal 3-999 Datenbankeinsatz: Relationale Algebra 7 Datenbankeinsatz: Relationale Algebra 8
(1) Beispiel 1: auf ein Attribut π[name](ausleih) ergibt als Ergebnisrelation Name Meyer Schulz Müller Doppelte Ergebnistupel eliminiert (2) Syntax π[attributmenge](relation) bzw π attributmenge (relation) Semantik π X (r) := {t(x) t r} für r(r) und X R Attributmenge in R Datenbankeinsatz: Relationale Algebra 9 Datenbankeinsatz: Relationale Algebra 10 (3) Beispiel 2: auf Attributmenge π[invnr, ISBN](Buch) ergibt Invnr ISBN 0007 3-125 1201 3-111 4711 3-765 4712 3-891 4717 3-999 (4) Einfache Optimierungsregel: Bei vielen en hintereinander reicht die zuletzt ausgeführte auch allein π[invnr](π[invnr, ISBN](Buch)) ergibt optimiert π[invnr](buch) Wieso sind derartige Optimierungen wichtig? Für Anfrageausführung Alternativen sind zwar äquivalent, aber unterschiedlich teuer in der Ausführung Optimierung nutzt Äquivalenz aus, um günstige Ausführung zu finden Datenbankeinsatz: Relationale Algebra 11 Datenbankeinsatz: Relationale Algebra 12
(5) Grafische Darstellung oft hilfreich Ersetzung von π[invnr](π[invnr, ISBN](Buch)) durch π[invnr](buch) ist immer vorteilhaft Bei anderen Transformationen hängt Vorteilhaftigkeit vom Datenbankzustand ab, z B Vertauschung von en (1) Beispiel σ[name < 'N'](Ausleih) ergibt Invnr Name 4711 Meyer 0007 Müller 4712 Meyer Datenbankeinsatz: Relationale Algebra 13 Datenbankeinsatz: Relationale Algebra 14 (2) Syntax σ[bedingung](relation) bzw σ bedingung (relation) Semantik σ F (R) := {t t r F(t)=true} (3) sbedingungen: F Konstanten- Attribut θ Konstante boolesches Prädikat θ ist = oder, bei linear geordneten Wertebereichen auch <, <, > oder > F Attribut- Attribut1 θ Attribut2 F logische Verknüpfung mehrerer Konstantenoder Attribut-en mit, oder Datenbankeinsatz: Relationale Algebra 15 Datenbankeinsatz: Relationale Algebra 16
(4) Einfache Optimierungsregeln: en lassen sich in der Reihenfolge beliebig vertauschen, Beispiel: σ Invnr=4711 (σ Name 'N' ( Ausleih)) = σ Name 'N' (σ Invnr=4711 ( Ausleih)) Manchmal lassen sich und vertauschen; Ist π Invnr (σ Name 'N' (Ausleih)) = σ Name 'N' (π Invnr (Ausleih))? (5) Einfache Optimierungsregeln (Forts): Manchmal lassen sich und vertauschen (Forts); Voraussetzung für Vertauschbarkeit: sattribute kommen in sliste vor Beispiel: π Name (σ Name 'N' (Ausleih)) Datenbankeinsatz: Relationale Algebra 17 Datenbankeinsatz: Relationale Algebra 18 Verbund Syntax des (natürlichen) Verbundes (englisch: natural join) Relation1 Relation2 Semantik r 1 r 2 :={t t(r 1 R 2 ) [ i {1, 2} t i r i : t i =t(r i )]} Verbund verknüpft Tabellen über gleichbenannten Spalten bei gleichen Attributwerten Buch Laufendes Beispiel Ausleih Invnr Name 4711 Meyer 1201 Schulz 0007 Müller 4712 Meyer Invnr Titel ISBN Autor 0007 Dr No 3-125 James Bond 1201 Objektbanken 3-111 Heuer 4711 Datenbanken 3-765 4712 Datenbanken 3-891 Ullman 4717 Pascal 3-999 Datenbankeinsatz: Relationale Algebra 19 Datenbankeinsatz: Relationale Algebra 20
Ausleih ergibt Verbund: Beispiel (1) Buch Name Invnr Titel ISBN Autor Müller 0007 Dr No 3-125 James Bond Schulz 1201 Objektbanken 3-111 Heuer Meyer 4711 Datenbanken 3-765 Meyer 4712 Datenbanken 3-891 Ullman Nicht ausgeliehenes Pascal-Buch verschwindet: Tupel, die keinen Partner finden (dangling tuples), werden eliminiert In SQL: outer join, der dangling tuples übernimmt Verbund: Beispiel (2) π[autor](buch) π[invnr](ausleih) entartet zu kartesischem Produkt Autor Invnr James Bond 4711 James Bond 1201 James Bond 0007 James Bond 4712 Heuer 4711 Heuer 1201 Heuer 0007 Heuer 4712 4711 Kartesisches Produkt alle Paare, die möglich sind Datenbankeinsatz: Relationale Algebra 21 Datenbankeinsatz: Relationale Algebra 22 Eigenschaften Verbund Kommentare zu vorangegangener Folie Verbund kommutativ: r 1 r 2 = r 2 r 1 Verbund assoziativ: (r 1 r 2 ) r 3 = r 1 (r 2 r 3 ) p Daher erlaubt: r i=1 i Beispiel dafür, daß -Reihenfolge wichtig: r 1 B r 2 B C r 3 b a c1 a c100000 B a a D d1 d100000 -Reihenfolge ist wichtig Gute -Reihenfolge abhängig von den Daten in den Relationen Gute -Reihenfolge schwierig zu erkennen Physische Datenunabhängigkeit Keine Festlegung der -Reihenfolge in SQL Datenbankeinsatz: Relationale Algebra 23 Datenbankeinsatz: Relationale Algebra 24
Buch1 Mengenoperationen und Umbenennung Autor1 James Bond Heuer Ullman Buch2 Umbenennung ß[neu alt](relation) (bzw ß neu alt (relation)) ändert Attributnamen von alt in neu Beispiel: ß[Autor1 Autor2](Buch2) Durch Umbenennung nun Vereinigung, Differenz und Durchschnitt möglich Autor2 Witt Silberschatz Meier Mengenoperationen: Vereinigung relation1 relation2 Beispiel: Buch1 β[autor1 Autor2](Buch2) Autor1 James Bond Heuer Ullman Witt Silberschatz Meier Datenbankeinsatz: Relationale Algebra 25 Datenbankeinsatz: Relationale Algebra 26 Mengenoperationen: Differenz relation1 relation2 Beispiel: Buch1 β[autor1 Autor2](Buch2) Autor1 James Bond Heuer Ullman Mengenoperationen: Durchschnitt relation1 relation2 Beispiel: Buch1 ß[Autor1 Autor2] (Buch2) Autor1 Datenbankeinsatz: Relationale Algebra 27 Datenbankeinsatz: Relationale Algebra 28
Mengenoperationen, Umbenennung (1) Umbenennung ermöglicht Verbunde, wo bisher kartesische Produkte ausgeführt wurden (unterschiedliche Attribute werden gleich benannt), kartesische Produkte, wo bisher Verbunde ausgeführt wurden (gleiche Attribute werden unterschiedlich genannt), Mengenoperationen Mengenoperationen, Umbenennung (2) Was ist der Natural dieser Relationen ohne Umbenennung? Buch1 Autor James Bond Heuer Ullman Buch2 Autor Witt Silberschatz Meier Datenbankeinsatz: Relationale Algebra 29 Datenbankeinsatz: Relationale Algebra 30 Mengenoperationen, Umbenennung (3) Mengenoperationen, Umbenennung (4) Beispiel: Buch1 Autor James Bond Heuer Ullman Buch2 Wir wollen Paare bilden (James Bond, Witt), (James Bond, ),, (Heuer, Witt), Vorgehen: Umbenennung und Natural Autor Witt Silberschatz Meier Erinnerung: Tupel Abbildung R={A 1,, A n } Formal für r 1 (R) und r 2 (R) Umbenennung β B A (r) := {t t r: t (R {A})=t(R {A}) t (B)=t(A)} Vereinigung r 1 r 2 := {t t r 1 t r 2 } Differenz r 1 r 2 := {t t r 1 t r 2 } Durchschnitt r 1 r 2 := {t t r 1 t r 2 } Durchschnitt wegen r 1 r 2 =r 1 (r 1 r 2 ) überflüssig t :R U m i= 1 D i Datenbankeinsatz: Relationale Algebra 31 Datenbankeinsatz: Relationale Algebra 32
Unabhängigkeit und Vollständigkeit (1) Minimale Relationenalgebra: Ω=π, σ,,β, und Relationale Vollständigkeit: Jede andere Menge von Operationen, genauso mächtig wie Ω Strenge relationale Vollständigkeit: Zu jedem Ausdruck mit Operatoren aus Ω gibt es einen Ausdruck auch mit der anderen Menge von Operationen, also ohne Sprachkonstrukte wie zb ;, while Unabhängigkeit und Vollständigkeit (2) Ω ist unabhängig: Kein Operator kann weggelassen werden, ohne Vollständigkeit zu verlieren Andere unabhängige Menge: und ß durch ersetzen Warum wichtig? Redundanzfreiheit für formale Überlegungen vorteilhaft Minimalität bequemer, wenn es darum geht, Vollständigkeit nachzuweisen Datenbankeinsatz: Relationale Algebra 33 Datenbankeinsatz: Relationale Algebra 34 Division: Beispiel Pilot Flugzeug Snoopy 707 Snoopy 727 Snoopy 747 Meyer 707 Meyer 727 Müller 707 Müller 727 Müller 747 Müller 777 Lüdenscheid 727 r 1 r 2 r 1 r 2 Pilot Snoopy Müller r 1 r 3 r 3 Flugzeug 707 727 747 Flugzeug 707 Pilot Snoopy Meyer Müller Division aus Ω herleitbar r 1 (R 1 ) und r 2 (R 2 ) gegeben mit R 2 R 1, R =R 1 R 2 R 1 ={Pilot, Flugzeug}, R 2 ={Flugzeug} Division von r 1 durch r 2 r 1 r 2 = π R (r 1 ) π R ((π R (r 1 ) r 2 ) r 1 ) r 1 r 2 = π Pilot (r 1 ) π Pilot ((π Pilot (r 1 ) r 2 ) r 1 ) Pilot Flugzeug Snoopy 707 Snoopy 727 Snoopy 747 Meyer 707 Meyer 727 Müller 707 Müller 727 Müller 747 Müller 777 Lüdenscheid 727 r 1 r 2 Flugzeug 707 727 747 Datenbankeinsatz: Relationale Algebra 35 Datenbankeinsatz: Relationale Algebra 36
-Modell (1) -Modell (2) Relationales Datenmodell einerseits einfach und klar, andererseits beschränkt ausdrucksmächtig Keine strukturierten Attribut-Werte, erste Normalform (1NF) alle Attributwerte atomar Geschachtelte Relationen ( Non First Normal Form ): Attribut kann selbst wieder Menge von Attributen sein Attributwert kann selbst wieder Relation sein Beispiel: Belegschaft, Telefone Fachbereich Beleg schaft PANr Nachname Telefone Gehalt Telefon 038203-12230 4711 Heuer 0381-498-3401 6000 0381-498-3427 5588 Saake 0391-345677 6000 Informatik 0391-5592- 3800 7754 Möller 550 8832 Jagellovsk 2800 Mathematik 6834 Korn 750 Datenbankeinsatz: Relationale Algebra 37 Datenbankeinsatz: Relationale Algebra 38 Varianten des -Modells (1) Varianten des -Modells (2) PNF ( Partitioned Normal Form ) entschachtelt durch äquivalente 1NF-Relation darstellbar A D B C 1 2 3 4 2 2 1 1 4 1 3 1 1 A C B D 1 2 2 3 1 3 2 4 A B C 1 2 3 1 4 2 2 1 1 2 4 1 3 1 1 Verallgemeinerung von (e ) mögliche Typkonstruktoren nicht nur set of, tuple of, auch list of, bag of, array PNF-Relation Nicht PNF Entnestete Variante der PNF-Relation Datenbankeinsatz: Relationale Algebra 39 Datenbankeinsatz: Relationale Algebra 40
-Algebra Mögliche Prüfungsfragen, beispielhaft Operation zum Schachteln (ν) und Entschachteln (µ) Geben Sie die Anforderungen an eine relationale Algebra aus der LV wieder und erklären Sie sie Was versteht man unter -Reihenfolge? Erläutern Sie die Wichtigkeit dieses Konzepts Geben Sie ein Beispiel für zwei äquivalente, aber unterschiedliche Algebra-Ausdrücke, die einen s- und einen -Operator beinhalten (Im Grunde beliebig variierbar mit anderen Operatoren) Was bedeuten Vollständigkeit und Unabhängigkeit im Kontext der relationalen Algebra? Warum enthält Ω nicht? Datenbankeinsatz: Relationale Algebra 41 Datenbankeinsatz: Relationale Algebra 42 Mögliche Prüfungsfragen, beispielhaft Was ist das -Modell? Welche Varianten kennen Sie? Datenbankeinsatz: Relationale Algebra 43