Vorlesung Datenbanksysteme vom 1.11.016 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren
Grundlagen des relationalen Modells Seien D1, D,, Dn Domänen (Wertebereiche) Relation (= Tabelle): R D1 x x Dn Bsp.: Telefonbuch string x string x integer Tupel (= Zeile): t R Bsp.: t = ("Mickey Mouse", "Main Street", 711) Mickey Mouse Mini Mouse Donald Duck Telefonbuch Straße Main Street Broadway Broadway TelefonNr 711 975 9567
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50
Ausdrücke der Relationalen Algebra Basisausdrücke Relation der Datenbank oder konstante Relationen Operationen Selektion: p (E1) Projektion: S (E1) Kartesisches Produkt: E1 x E Umbenennung: V (E1), A B (E1) Vereinigung: E1 E Differenz: E1 - E
Weitere Operationen (können mit Hilfe der anderen Operationen definiert werden): Mengendurchschnitt: E1 E Division: E1 E Join (Verbund): E1 A E (linker) Semi-Join: E1 F E (rechter) Semi-Join: E1 E E linker äußerer Join: E1 C E rechter äußerer Join: E1 D E 5
Selektion Selektion: p (E1) Auswahl von Zeilen einer Tabelle mittels "Prädikat P P verwendet Vergleichsoperatoren (=,, <, >,, ) und logische Operatoren (Æ, Ç, :) Beispiel: Semester > 10 (Studenten) Semester > 10 (Studenten) Semester 00 Xenokrates 18 50 Jonas 1 6
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50 7
Projektion Projektion: S (E1) Auswahl von Spalten einer Tabelle S = Menge von Spalten Beispiel: Rang(Professoren) Rang(Professoren) Rang C C 8
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50 9
Kartesisches Produkt Kartesisches Produkt: E1 x E Kombination aller Zeilen von E1 mit allen Zeilen von E ) E1 x E = E1 E (eventuell sehr groß) häufig "bessere" Operation: Join (siehe unten) Beispiel: Professoren x hören PersNr 15 15 15 17 Professoren Sokrates Sokrates Sokrates Kant Rang C C C C Raum 6 6 6 7 hören 610 7550 50 50 50 50 10
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50 11
Umbenennung Umbenennung von Relationen: V (E1) Die Tabelle E1 bekommt den neuen "n" V Beispiel: Ermittlung indirekter Vorgänger. Stufe der Vorlesung 559 V1. Vorgänger( V. Nachfolger=559 V1.Nachfolger = V.Vorgänger ( V1(voraussetzen) x V(voraussetzen))) V1 Vorgänger 50 1
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50 1
Umbenennung Umbennung von Attributen: A B (E1) Attribut B in Tabelle E1 bekommt den neuen "n" A Beispiel: Titel der "Vorgänger"- und "Nachfolger"-Vorlesungen in der Tabelle "voraussetzen". Titel1, Titel ( Vorgänger, Titel1 Titel (Vorlesungen) A voraussetzen A Nachfolger, Titel Titel (Vorlesungen) ) 1
Titel1, Titel ( Vorgänger, Titel1 Titel (Vorlesungen) A voraussetzen A Nachfolger, Titel Titel (Vorlesungen)) Titel1 Titel Grundzüge Ethik Grundzüge Erkenntnistheorie Grundzüge Mäeutik Ethik Bioethik Erkenntnistheorie Wissenschaftstheorie Ethik Wissenschaftstheorie Wissenschaftstheorie Der Wiener Kreis 15
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50 16
Mengen-Operatoren Vereinigung: E1 E Alle Zeilen, die in E1 und/oder E vorkommen. Differenz: E1 - E Alle Zeilen, die in E1 aber nicht in E vorkommen. Mengendurchschnitt: E1 E Alle Zeilen, die sowohl in E1 als auch in E vorkommen. Die Operatoren, -, setzen Schema-Gleichheit voraus! Division : E1 E Maximale Tabelle R, so dass E R µ E1 17
Baumdarstellung Beispiel: Titel ( = Popper Æ PersNr=gelesenVon (Professoren Vorlesungen)) Titel = Popper Æ PersNr=gelesenVon Professoren Vorlesungen Auswertung relationaler Ausdrücke: bottom-up im Baum 18
Join-Operatoren Idee: Kombination der Operationen kartesisches Produkt Selektion (eventuell Projektion) zu einer einzigen Operation
Der natürliche Verbund (Join) Gegeben seien folgende Relationen(-Schemata) : R(A1,, Am, B1,, Bk) S(B1,, Bk, C1,, Cn) R A S = A1,, Am, R.B1,, R.Bk, C1,, Cn( R.B1=S.B1 att(r) att(s) A1 A Am RAS att(r) att(s) B1 B Bk R.Bk = S.Bk(RxS)) att(s) att(r) C1 C Cn Abkürzung: att(r) = Attribute von R 0
Beispiel: Studenten A hören Studenten A hören Semester 610 Fichte 10 7550 Schopenhauer 6 7550 Schopenhauer 6 05 8106 Carnap 8106 Carnap 505 8106 Carnap 516 8106 Carnap 559 910 Theophrastos 1
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50
Drei-Wege-Join Beispiel: (Studenten A hören) A Vorlesungen 610 Fichte (Studenten A hören) A Vorlesungen Semester Titel SWS gelesenvon 10 Grundzüge 17 7550 Schopenhauer 6 Grundzüge 17 7550 Schopenhauer 6 05 Logik 15 8106 Carnap Ethik 15 8106 Carnap 505 Wissenschaftstheorie 16 8106 Carnap 516 Bioethik 16 8106 Carnap 559 Der Wiener Kreis 1 Grundzüge 17 910 Theophrastos
Die relationale Uni-DB Studenten Professoren PersNr Rang Raum 15 Sokrates C 6 16 Russel C 17 Kopernikus C 10 1 Popper C 5 1 Augustinus C 09 16 Curie C 6 17 Kant C 7 voraussetzen Vorgänger Nachfolger 50 509 516 50 505 505 505 559 Semester 00 Xenokrates 18 50 Jonas 610 680 Titel SWS gelesen von 1 Grundzüge 17 Fichte 10 Ethik 15 Aristoxenos 8 50 Erkenntnistheorie 16 7550 Schopenhauer 6 509 Mäeutik 15 8106 Carnap 05 Logik 15 910 Theophrastos 505 Wissenschaftstheorie 16 9555 Feuerbach 516 Bioethik 16 559 Der Wiener Kreis 1 hören prüfen Vorlesungen 50 Glaube und Wissen 1 610 60 Die Kritiken 17 7550 7550 05 8106 PerslNr Fachgebiet Boss 8106 505 00 Platon Ideenlehre 15 8106 516 00 Aristoteles Syllogistik 15 8106 559 00 Wittgenstein Sprachtheorie 16 910 005 Rhetikus Planetenbewegung 17 Assistenten PersNr Note 910 8106 16 1 006 Newton Keplersche Gesetze 17 910 509 007 Spinoza Gott und Natur 16 50 15 9555 50 7550 60 17 50 50
Allgemeiner Join (Theta-Join) Gegeben seien folgende Relationen(-Schemata): R(A1,, An) S(B1,, Bm) R A S = (R x S) R A S R A1 A An B1 S B Bm 5
Andere Join-Arten natürlicher Join A a1 a L B b1 b C c1 c A C c1 c R D d1 d E e1 e = A a1 Resultat B C D b1 c1 d1 A a1 a Resultat B C D b1 c1 d1 b c E e1 linker äußerer Join A a1 a L B b1 b C c1 c C C c1 c R D d1 d E e1 e = E e1 6
rechter äußerer Join A a1 a L B b1 b C c1 c D C c1 c R D d1 d E e1 e = A a1 - Resultat B C D b1 c1 d1 c d E e1 e 7
Andere Join-Arten äußerer Join A a1 a L B b1 b C c1 c B C c1 c R D d1 d E e1 e = A a1 a - Resultat B C D b1 c1 d1 b c c d E e1 - e Semi-Join von L mit R A a1 a L B b1 b C c1 c E C c1 c R D d1 d E e1 e = Resultat A B C a1 b1 c1 8
Andere Join-Arten (Forts.) Semi-Join von R mit L A a1 a L B b1 b C c1 c F C c1 c R D d1 d E e1 e = Resultat C D E c1 d1 e1 9
Beispiele, Titel (Professoren A prüfen A Vorlesungen), Titel (Studenten A hören A Vorlesungen), Titel ( Semester>5 (Studenten) A hören A Vorlesungen), Titel (Studenten A hören A SWS= (Vorlesungen)), Titel (Professoren A PersNr gelesenvon (Vorlesungen)), Titel (Professoren APersNr = gelesenvon (Vorlesungen)) 0
Eigenschaften der relationalen Operatoren Beispiele
Beispiele: Wahr oder falsch?
Beispiele: Wahr oder falsch? (w) (w) (w)
Beispiele: Wahr oder falsch?
Beispiele: Wahr oder falsch? (w) (f) (w) 5
Beispiele: Wahr oder Falsch? 6
Beispiele: Wahr oder Falsch? (f) (f) (w) (f) 7
Beispiele: Wahr oder falsch? Geg. die Relationenschemata R(AB) und S(BC). R - AB (S A R) = ( B (R) - B (S)) A R B (R E S) = B (R) Å B (S) B (R E S) = B (S E R) B ((R B (S E R)) - (S A R)) = B (R) - B (S) 8
Beispiele: Wahr oder falsch? Geg. die Relationenschemata R(AB) und S(BC). R - AB (S A R) = ( B (R) - B (S)) A R (w) B (R E S) = B (R) Å B (S) (w) B (R E S) = B (S E R) (w) B ((R B (S E R)) - (S A R)) = B (R) - B (S) (w) 9