Relationale Algebra Josef F. Bürgler Hochschule Luzern, Technik & Architektur Abt. Informatik Datenmanagement - Sommersemester Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 1 / 45 Inhalt 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 2 / 45 Ziele Ziele - Die StudentIn versteht wann und wie man übliche Mengenoperationen wie Vereinigung, Durchschnitt und Differenz auf Relationen übertragen kann versteht wie man Relationen mittels Auswahl und Projektion verkleinern kann versteht, wie man zwei Relationen zu einer einzigen Relationen via Kreuzprodukt oder Join verknüpft Kann Relationenalgebraische Ausdrücke umrechnen oder äquivalent darstellen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 3 / 45 Ziele Ziele - Die StudentIn versteht wann und wie man übliche Mengenoperationen wie Vereinigung, Durchschnitt und Differenz auf Relationen übertragen kann versteht wie man Relationen mittels Auswahl und Projektion verkleinern kann versteht, wie man zwei Relationen zu einer einzigen Relationen via Kreuzprodukt oder Join verknüpft Kann Relationenalgebraische Ausdrücke umrechnen oder äquivalent darstellen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 3 / 45 Ziele Ziele - Die StudentIn versteht wann und wie man übliche Mengenoperationen wie Vereinigung, Durchschnitt und Differenz auf Relationen übertragen kann versteht wie man Relationen mittels Auswahl und Projektion verkleinern kann versteht, wie man zwei Relationen zu einer einzigen Relationen via Kreuzprodukt oder Join verknüpft Kann Relationenalgebraische Ausdrücke umrechnen oder äquivalent darstellen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 3 / 45 Ziele Ziele - Die StudentIn versteht wann und wie man übliche Mengenoperationen wie Vereinigung, Durchschnitt und Differenz auf Relationen übertragen kann versteht wie man Relationen mittels Auswahl und Projektion verkleinern kann versteht, wie man zwei Relationen zu einer einzigen Relationen via Kreuzprodukt oder Join verknüpft Kann Relationenalgebraische Ausdrücke umrechnen oder äquivalent darstellen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 3 / 45 Einführung Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 4 / 45 Einführung Relationale Algebra und Relationenkalkül Sprache mit der man Informationen aus einer Datenbank extrahieren kann. Datenmanipulationssprache (DML) um Informationen Einfügen, Verändern und Löschen zu können. Zwei formale Sprachen für die Formulierung von Anfragen in relationalen Datenbanken: 1 relationale Algebra (Relationenalgebra) - prozedural orientiert (Abarbeitungsplan, Anfrageoptimierung). 2 Relationenkalkül - deklarative Sprache mit der spezifiziert wird, welche Daten man erhalten will aber nicht, wie die Anfrage ausgewertet werden kann. Beide Sprachen sind abgeschlossen, d.h. die Ergebnisse der Anfragen sind wieder Relationen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 5 / 45 Einführung Relationale Algebra und Relationenkalkül Sprache mit der man Informationen aus einer Datenbank extrahieren kann. Datenmanipulationssprache (DML) um Informationen Einfügen, Verändern und Löschen zu können. Zwei formale Sprachen für die Formulierung von Anfragen in relationalen Datenbanken: 1 relationale Algebra (Relationenalgebra) - prozedural orientiert (Abarbeitungsplan, Anfrageoptimierung). 2 Relationenkalkül - deklarative Sprache mit der spezifiziert wird, welche Daten man erhalten will aber nicht, wie die Anfrage ausgewertet werden kann. Beide Sprachen sind abgeschlossen, d.h. die Ergebnisse der Anfragen sind wieder Relationen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 5 / 45 Einführung Relationale Algebra und Relationenkalkül Sprache mit der man Informationen aus einer Datenbank extrahieren kann. Datenmanipulationssprache (DML) um Informationen Einfügen, Verändern und Löschen zu können. Zwei formale Sprachen für die Formulierung von Anfragen in relationalen Datenbanken: 1 relationale Algebra (Relationenalgebra) - prozedural orientiert (Abarbeitungsplan, Anfrageoptimierung). 2 Relationenkalkül - deklarative Sprache mit der spezifiziert wird, welche Daten man erhalten will aber nicht, wie die Anfrage ausgewertet werden kann. Beide Sprachen sind abgeschlossen, d.h. die Ergebnisse der Anfragen sind wieder Relationen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 5 / 45 Einführung Relationale Algebra und Relationenkalkül Sprache mit der man Informationen aus einer Datenbank extrahieren kann. Datenmanipulationssprache (DML) um Informationen Einfügen, Verändern und Löschen zu können. Zwei formale Sprachen für die Formulierung von Anfragen in relationalen Datenbanken: 1 relationale Algebra (Relationenalgebra) - prozedural orientiert (Abarbeitungsplan, Anfrageoptimierung). 2 Relationenkalkül - deklarative Sprache mit der spezifiziert wird, welche Daten man erhalten will aber nicht, wie die Anfrage ausgewertet werden kann. Beide Sprachen sind abgeschlossen, d.h. die Ergebnisse der Anfragen sind wieder Relationen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 5 / 45 Einführung Relationale Algebra und Relationenkalkül Sprache mit der man Informationen aus einer Datenbank extrahieren kann. Datenmanipulationssprache (DML) um Informationen Einfügen, Verändern und Löschen zu können. Zwei formale Sprachen für die Formulierung von Anfragen in relationalen Datenbanken: 1 relationale Algebra (Relationenalgebra) - prozedural orientiert (Abarbeitungsplan, Anfrageoptimierung). 2 Relationenkalkül - deklarative Sprache mit der spezifiziert wird, welche Daten man erhalten will aber nicht, wie die Anfrage ausgewertet werden kann. Beide Sprachen sind abgeschlossen, d.h. die Ergebnisse der Anfragen sind wieder Relationen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 5 / 45 Einführung Relationale Algebra und Relationenkalkül Sprache mit der man Informationen aus einer Datenbank extrahieren kann. Datenmanipulationssprache (DML) um Informationen Einfügen, Verändern und Löschen zu können. Zwei formale Sprachen für die Formulierung von Anfragen in relationalen Datenbanken: 1 relationale Algebra (Relationenalgebra) - prozedural orientiert (Abarbeitungsplan, Anfrageoptimierung). 2 Relationenkalkül - deklarative Sprache mit der spezifiziert wird, welche Daten man erhalten will aber nicht, wie die Anfrage ausgewertet werden kann. Beide Sprachen sind abgeschlossen, d.h. die Ergebnisse der Anfragen sind wieder Relationen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 5 / 45 Einführung Typ-kompatible Relationen Begriff um Mengenoperationen bei Relationen sinnvoll einzuführen. Definition (typ-kompatibel) Zwei Relationen R und S heissen typ-kompatibel, wenn R und S Teilmengen des selben Kreuzproduktes M1 × M2 × · · · × Mn von Mengen Mi (i = 1, 2, . . . , n) sind. Definition (typ-kompatibel) Zwei Symmetrieklassen (siehe 3. Teil Relationale Algebra) von Relationen [R] und [S] heissen typ-kompatibel, wenn Relationen R ′ ∈ [R] und S ′ ∈ [S] derart existieren, dass R ′ typ-kompatibel zu S ′ ist. Im Datenbankumfeld sagt man: R und S haben das selbe Schema und schreibt sch(R) = sch(S). Dabei entspricht das Schema einer Relation der Menge der Attribute R = sch(R) = {A1 , A2 , . . . , An } und es gilt Mi = dom(Ai ). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 6 / 45 Einführung Typ-kompatible Relationen Begriff um Mengenoperationen bei Relationen sinnvoll einzuführen. Definition (typ-kompatibel) Zwei Relationen R und S heissen typ-kompatibel, wenn R und S Teilmengen des selben Kreuzproduktes M1 × M2 × · · · × Mn von Mengen Mi (i = 1, 2, . . . , n) sind. Definition (typ-kompatibel) Zwei Symmetrieklassen (siehe 3. Teil Relationale Algebra) von Relationen [R] und [S] heissen typ-kompatibel, wenn Relationen R ′ ∈ [R] und S ′ ∈ [S] derart existieren, dass R ′ typ-kompatibel zu S ′ ist. Im Datenbankumfeld sagt man: R und S haben das selbe Schema und schreibt sch(R) = sch(S). Dabei entspricht das Schema einer Relation der Menge der Attribute R = sch(R) = {A1 , A2 , . . . , An } und es gilt Mi = dom(Ai ). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 6 / 45 Einführung Typ-kompatible Relationen Begriff um Mengenoperationen bei Relationen sinnvoll einzuführen. Definition (typ-kompatibel) Zwei Relationen R und S heissen typ-kompatibel, wenn R und S Teilmengen des selben Kreuzproduktes M1 × M2 × · · · × Mn von Mengen Mi (i = 1, 2, . . . , n) sind. Definition (typ-kompatibel) Zwei Symmetrieklassen (siehe 3. Teil Relationale Algebra) von Relationen [R] und [S] heissen typ-kompatibel, wenn Relationen R ′ ∈ [R] und S ′ ∈ [S] derart existieren, dass R ′ typ-kompatibel zu S ′ ist. Im Datenbankumfeld sagt man: R und S haben das selbe Schema und schreibt sch(R) = sch(S). Dabei entspricht das Schema einer Relation der Menge der Attribute R = sch(R) = {A1 , A2 , . . . , An } und es gilt Mi = dom(Ai ). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 6 / 45 Einführung Mengen in Tabellen (Domänen) Mengen im Datenbankumfeld sind meist nicht von der Art A = {−2, −1, 0, 1, 2, 3}, N, Z, Q oder R sondern eher von der Art varchar(20): Menge aller Zeichenketten mit maximal 20 Zeichen. integer: Menge aller Zahlen zwischen einer minimalen und einer maximalen Zahl. PersonenNamen: Menger aller Nachnamen (von Personen). Lebensalter: Menge aller natürlicher Zahlen zwischen 0 und (etwa) 150. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 7 / 45 Einführung Mengen in Tabellen (Domänen) Mengen im Datenbankumfeld sind meist nicht von der Art A = {−2, −1, 0, 1, 2, 3}, N, Z, Q oder R sondern eher von der Art varchar(20): Menge aller Zeichenketten mit maximal 20 Zeichen. integer: Menge aller Zahlen zwischen einer minimalen und einer maximalen Zahl. PersonenNamen: Menger aller Nachnamen (von Personen). Lebensalter: Menge aller natürlicher Zahlen zwischen 0 und (etwa) 150. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 7 / 45 Einführung Mengen in Tabellen (Domänen) Mengen im Datenbankumfeld sind meist nicht von der Art A = {−2, −1, 0, 1, 2, 3}, N, Z, Q oder R sondern eher von der Art varchar(20): Menge aller Zeichenketten mit maximal 20 Zeichen. integer: Menge aller Zahlen zwischen einer minimalen und einer maximalen Zahl. PersonenNamen: Menger aller Nachnamen (von Personen). Lebensalter: Menge aller natürlicher Zahlen zwischen 0 und (etwa) 150. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 7 / 45 Einführung Mengen in Tabellen (Domänen) Mengen im Datenbankumfeld sind meist nicht von der Art A = {−2, −1, 0, 1, 2, 3}, N, Z, Q oder R sondern eher von der Art varchar(20): Menge aller Zeichenketten mit maximal 20 Zeichen. integer: Menge aller Zahlen zwischen einer minimalen und einer maximalen Zahl. PersonenNamen: Menger aller Nachnamen (von Personen). Lebensalter: Menge aller natürlicher Zahlen zwischen 0 und (etwa) 150. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 7 / 45 Vereinigung Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 8 / 45 Vereinigung Vereinigung (Union) R und S seien zwei typ-kompatible Relationen UNION: bildet Vereinigungsmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). UNION(R,S) ist die Relation R ∪ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∪ S1 eine komponentenweise Umordnung der Relation R2 ∪ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist UNION([R],[S]) gerade die Symmetrieklasse [R] ∪ [S]. Wir schreiben kurz: R ∪ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 9 / 45 Vereinigung Vereinigung (Union) R und S seien zwei typ-kompatible Relationen UNION: bildet Vereinigungsmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). UNION(R,S) ist die Relation R ∪ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∪ S1 eine komponentenweise Umordnung der Relation R2 ∪ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist UNION([R],[S]) gerade die Symmetrieklasse [R] ∪ [S]. Wir schreiben kurz: R ∪ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 9 / 45 Vereinigung Vereinigung (Union) R und S seien zwei typ-kompatible Relationen UNION: bildet Vereinigungsmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). UNION(R,S) ist die Relation R ∪ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∪ S1 eine komponentenweise Umordnung der Relation R2 ∪ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist UNION([R],[S]) gerade die Symmetrieklasse [R] ∪ [S]. Wir schreiben kurz: R ∪ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 9 / 45 Vereinigung Vereinigung (Union) R und S seien zwei typ-kompatible Relationen UNION: bildet Vereinigungsmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). UNION(R,S) ist die Relation R ∪ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∪ S1 eine komponentenweise Umordnung der Relation R2 ∪ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist UNION([R],[S]) gerade die Symmetrieklasse [R] ∪ [S]. Wir schreiben kurz: R ∪ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 9 / 45 Vereinigung Vereinigung (Union) R und S seien zwei typ-kompatible Relationen UNION: bildet Vereinigungsmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). UNION(R,S) ist die Relation R ∪ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∪ S1 eine komponentenweise Umordnung der Relation R2 ∪ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist UNION([R],[S]) gerade die Symmetrieklasse [R] ∪ [S]. Wir schreiben kurz: R ∪ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 9 / 45 Vereinigung Vereinigung (Fort.) Example Sei [R] die Menge aller Studenten, die höchstens zwei Semester studierten und [S] die Menge aller Studenten, die mindestens zehn Semester studierten: dann stellt die folgende Tabelle alle Studenten von UNION([R],[S]) dar: MatrNr. 24002 25403 26120 29120 29555 Josef F. Bürgler (HSLU T&A) Name Xenokrates Jonas Fichte Theophratos Feuerbach Relationale Algebra Semester 18 12 10 2 2 HTA.DMG 10 / 45 Durchschnitt Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 11 / 45 Durchschnitt Durchschnitt (Intersection) R und S seien zwei typ-kompatible Relationen INTERSECT: bildet Schnittmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). INTERSECT(R,S) ist die Relation R ∩ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∩ S1 eine komponentenweise Umordnung der Relation R2 ∩ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist INTERSECT([R],[S]) gerade die Symmetrieklasse [R] ∩ [S]. Wir schreiben kurz: R ∩ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 12 / 45 Durchschnitt Durchschnitt (Intersection) R und S seien zwei typ-kompatible Relationen INTERSECT: bildet Schnittmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). INTERSECT(R,S) ist die Relation R ∩ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∩ S1 eine komponentenweise Umordnung der Relation R2 ∩ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist INTERSECT([R],[S]) gerade die Symmetrieklasse [R] ∩ [S]. Wir schreiben kurz: R ∩ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 12 / 45 Durchschnitt Durchschnitt (Intersection) R und S seien zwei typ-kompatible Relationen INTERSECT: bildet Schnittmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). INTERSECT(R,S) ist die Relation R ∩ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∩ S1 eine komponentenweise Umordnung der Relation R2 ∩ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist INTERSECT([R],[S]) gerade die Symmetrieklasse [R] ∩ [S]. Wir schreiben kurz: R ∩ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 12 / 45 Durchschnitt Durchschnitt (Intersection) R und S seien zwei typ-kompatible Relationen INTERSECT: bildet Schnittmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). INTERSECT(R,S) ist die Relation R ∩ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∩ S1 eine komponentenweise Umordnung der Relation R2 ∩ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist INTERSECT([R],[S]) gerade die Symmetrieklasse [R] ∩ [S]. Wir schreiben kurz: R ∩ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 12 / 45 Durchschnitt Durchschnitt (Intersection) R und S seien zwei typ-kompatible Relationen INTERSECT: bildet Schnittmenge von zwei Relationen R, S ⊂ M1 × M2 × · · · × Mn (bzw. Relationsklassen). INTERSECT(R,S) ist die Relation R ∩ S ⊂ M1 × M2 × · · · × Mn . Ist R2 eine komponentenweise Umordnung der Relation R1 und analog S2 eine komponentenweise Umordnung der Relation S1 wobei R1 und S1 sowie R2 und S2 typ-kompatibel seien: dann ist R1 ∩ S1 eine komponentenweise Umordnung der Relation R2 ∩ S2 . Sind [R] und [S] zwei typ-kompatible Symmetrieklassen von Relationen und R, S ⊂ M1 × M2 × · · · × Mn zwei typ-kompatible Relationen Dann ist INTERSECT([R],[S]) gerade die Symmetrieklasse [R] ∩ [S]. Wir schreiben kurz: R ∩ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 12 / 45 Durchschnitt Durchschnitt - Fort. Example Sei [R] die Menge aller Studenten, die mindestens zwei Semester studierten und [S] die Menge aller Studenten, die höchstens zehn Semester studierten: dann stellt die folgende Tabelle alle Studenten von INTERSECT([R],[S]) dar: MatrNr. 26120 26830 27550 28106 29120 29555 Josef F. Bürgler (HSLU T&A) Name Fichte Aristoxenos Schopenhauer Carnap Theophratos Feuerbach Relationale Algebra Semester 10 8 6 3 2 2 HTA.DMG 13 / 45 Differenz Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 14 / 45 Differenz Differenz (Difference) Definition (Differenz (Difference)) Die Differenz (Difference) zweier typ-kompatibler Relationen R und S (in der Datenbanksprache solche mit gleichem Schema), ist Menge aller Tupel die in R aber nicht in S vorkommen, d.h. R \ S = {x ∈ R |x ∈ / S }. Wir schreiben dafür kurz R \ S und meinen “R ohne S” Wir wählen hier eine Definition, die nicht auf der Theorie relationaler Datenbanken fundiert Der theoretische Hintergrund wird im 3. Teil klarer Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 15 / 45 Differenz Differenz (Difference) Definition (Differenz (Difference)) Die Differenz (Difference) zweier typ-kompatibler Relationen R und S (in der Datenbanksprache solche mit gleichem Schema), ist Menge aller Tupel die in R aber nicht in S vorkommen, d.h. R \ S = {x ∈ R |x ∈ / S }. Wir schreiben dafür kurz R \ S und meinen “R ohne S” Wir wählen hier eine Definition, die nicht auf der Theorie relationaler Datenbanken fundiert Der theoretische Hintergrund wird im 3. Teil klarer Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 15 / 45 Differenz Differenz (Difference) Definition (Differenz (Difference)) Die Differenz (Difference) zweier typ-kompatibler Relationen R und S (in der Datenbanksprache solche mit gleichem Schema), ist Menge aller Tupel die in R aber nicht in S vorkommen, d.h. R \ S = {x ∈ R |x ∈ / S }. Wir schreiben dafür kurz R \ S und meinen “R ohne S” Wir wählen hier eine Definition, die nicht auf der Theorie relationaler Datenbanken fundiert Der theoretische Hintergrund wird im 3. Teil klarer Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 15 / 45 Differenz Differenz (Difference) Definition (Differenz (Difference)) Die Differenz (Difference) zweier typ-kompatibler Relationen R und S (in der Datenbanksprache solche mit gleichem Schema), ist Menge aller Tupel die in R aber nicht in S vorkommen, d.h. R \ S = {x ∈ R |x ∈ / S }. Wir schreiben dafür kurz R \ S und meinen “R ohne S” Wir wählen hier eine Definition, die nicht auf der Theorie relationaler Datenbanken fundiert Der theoretische Hintergrund wird im 3. Teil klarer Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 15 / 45 Differenz Differenz - Fort. Example Es soll die Menge der Studenten (bzw. deren Matrikelnummern) ermittelt werden, die noch keine Prüfungen abgelegt haben. Lösung: Man stellt sofort fest, dass die beiden Relation Studenten und prüfen nicht typ-kompatibel sind (in der Datenbanksprache unterschiedliches Schema aufweisen). Mit einer Projektion extrahieren wir die korrekte Komponenten und bilden danach die Mengendifferenz ΠMatrNr (Studenten) \ ΠMatrNr (prüfen). Josef F. Bürgler (HSLU T&A) Relationale Algebra MatrNr 24002 26120 26830 29120 29555 HTA.DMG 16 / 45 Differenz Differenz - Fort. Example Es soll die Menge der Studenten (bzw. deren Matrikelnummern) ermittelt werden, die noch keine Prüfungen abgelegt haben. Lösung: Man stellt sofort fest, dass die beiden Relation Studenten und prüfen nicht typ-kompatibel sind (in der Datenbanksprache unterschiedliches Schema aufweisen). Mit einer Projektion extrahieren wir die korrekte Komponenten und bilden danach die Mengendifferenz ΠMatrNr (Studenten) \ ΠMatrNr (prüfen). Josef F. Bürgler (HSLU T&A) Relationale Algebra MatrNr 24002 26120 26830 29120 29555 HTA.DMG 16 / 45 Differenz Differenz - Fort. Example Es soll die Menge der Studenten (bzw. deren Matrikelnummern) ermittelt werden, die noch keine Prüfungen abgelegt haben. Lösung: Man stellt sofort fest, dass die beiden Relation Studenten und prüfen nicht typ-kompatibel sind (in der Datenbanksprache unterschiedliches Schema aufweisen). Mit einer Projektion extrahieren wir die korrekte Komponenten und bilden danach die Mengendifferenz ΠMatrNr (Studenten) \ ΠMatrNr (prüfen). Josef F. Bürgler (HSLU T&A) Relationale Algebra MatrNr 24002 26120 26830 29120 29555 HTA.DMG 16 / 45 Differenz Differenz - Fort. Example Es soll die Menge der Studenten (bzw. deren Matrikelnummern) ermittelt werden, die noch keine Prüfungen abgelegt haben. Lösung: Man stellt sofort fest, dass die beiden Relation Studenten und prüfen nicht typ-kompatibel sind (in der Datenbanksprache unterschiedliches Schema aufweisen). Mit einer Projektion extrahieren wir die korrekte Komponenten und bilden danach die Mengendifferenz ΠMatrNr (Studenten) \ ΠMatrNr (prüfen). Josef F. Bürgler (HSLU T&A) Relationale Algebra MatrNr 24002 26120 26830 29120 29555 HTA.DMG 16 / 45 Differenz Differenz - Fort. Example Kann man den Durchschnitt zweier Relationen R ∩ S durch andere Mengenoperationen ausdrücken und wenn ja wie? Man versuche nur die nachfolgend definierte Difference zu verwenden und zwei verschiedene Darstellungen zu finden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 17 / 45 Differenz Differenz - Fort. Example Kann man den Durchschnitt zweier Relationen R ∩ S durch andere Mengenoperationen ausdrücken und wenn ja wie? Man versuche nur die nachfolgend definierte Difference zu verwenden und zwei verschiedene Darstellungen zu finden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 17 / 45 Kreuzprodukt Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 18 / 45 Kreuzprodukt Kreuzprodukt Definition (Kreuzprodukt) Das Kreuzprodukt zweier n- und m-stelliger Relationen R und S, ist die Relation mit dem Schema sch(R) ∪ sch(S). Deren Elemente bestehen aus (n + m)-Tupeln, wobei die ersten n Komponenten aus R und die letzten m Komponenten aus S stammen. In R und S gleich lautende Attribute werden durch qualifizierte Attributnamen, bestehend aus Relationsname und Attributname (durch Punkt getrennt), ersetzt. Jede Zeile von R wird mit jeder Zeile von S kombiniert. Dadurch entsteht eine Relation mit |R| · |S| Zeilen. Analog kann man auch mehrfache Kreuzprodukte definieren. Das Kreuzprodukt ist ein Spezialfall eines speziellen Joins (siehe unten). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 19 / 45 Kreuzprodukt Kreuzprodukt Definition (Kreuzprodukt) Das Kreuzprodukt zweier n- und m-stelliger Relationen R und S, ist die Relation mit dem Schema sch(R) ∪ sch(S). Deren Elemente bestehen aus (n + m)-Tupeln, wobei die ersten n Komponenten aus R und die letzten m Komponenten aus S stammen. In R und S gleich lautende Attribute werden durch qualifizierte Attributnamen, bestehend aus Relationsname und Attributname (durch Punkt getrennt), ersetzt. Jede Zeile von R wird mit jeder Zeile von S kombiniert. Dadurch entsteht eine Relation mit |R| · |S| Zeilen. Analog kann man auch mehrfache Kreuzprodukte definieren. Das Kreuzprodukt ist ein Spezialfall eines speziellen Joins (siehe unten). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 19 / 45 Kreuzprodukt Kreuzprodukt Definition (Kreuzprodukt) Das Kreuzprodukt zweier n- und m-stelliger Relationen R und S, ist die Relation mit dem Schema sch(R) ∪ sch(S). Deren Elemente bestehen aus (n + m)-Tupeln, wobei die ersten n Komponenten aus R und die letzten m Komponenten aus S stammen. In R und S gleich lautende Attribute werden durch qualifizierte Attributnamen, bestehend aus Relationsname und Attributname (durch Punkt getrennt), ersetzt. Jede Zeile von R wird mit jeder Zeile von S kombiniert. Dadurch entsteht eine Relation mit |R| · |S| Zeilen. Analog kann man auch mehrfache Kreuzprodukte definieren. Das Kreuzprodukt ist ein Spezialfall eines speziellen Joins (siehe unten). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 19 / 45 Kreuzprodukt Kreuzprodukt Definition (Kreuzprodukt) Das Kreuzprodukt zweier n- und m-stelliger Relationen R und S, ist die Relation mit dem Schema sch(R) ∪ sch(S). Deren Elemente bestehen aus (n + m)-Tupeln, wobei die ersten n Komponenten aus R und die letzten m Komponenten aus S stammen. In R und S gleich lautende Attribute werden durch qualifizierte Attributnamen, bestehend aus Relationsname und Attributname (durch Punkt getrennt), ersetzt. Jede Zeile von R wird mit jeder Zeile von S kombiniert. Dadurch entsteht eine Relation mit |R| · |S| Zeilen. Analog kann man auch mehrfache Kreuzprodukte definieren. Das Kreuzprodukt ist ein Spezialfall eines speziellen Joins (siehe unten). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 19 / 45 Kreuzprodukt Kreuzprodukt Definition (Kreuzprodukt) Das Kreuzprodukt zweier n- und m-stelliger Relationen R und S, ist die Relation mit dem Schema sch(R) ∪ sch(S). Deren Elemente bestehen aus (n + m)-Tupeln, wobei die ersten n Komponenten aus R und die letzten m Komponenten aus S stammen. In R und S gleich lautende Attribute werden durch qualifizierte Attributnamen, bestehend aus Relationsname und Attributname (durch Punkt getrennt), ersetzt. Jede Zeile von R wird mit jeder Zeile von S kombiniert. Dadurch entsteht eine Relation mit |R| · |S| Zeilen. Analog kann man auch mehrfache Kreuzprodukte definieren. Das Kreuzprodukt ist ein Spezialfall eines speziellen Joins (siehe unten). Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 19 / 45 Kreuzprodukt Kreuzprodukt - Fort. Example Bestimme das Kreuzprodukt Professoren×hören. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 20 / 45 Kreuzprodukt Kreuzprodukt - Fort. Example Bestimme das Kreuzprodukt Professoren×hören. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 20 / 45 Selektion Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 21 / 45 Selektion Selektion Definition (Selektion) Die Selektion σF (R) wählt die jenigen Tupel der Relation R aus, d.h. selektiert sie, die das Selektionsprädikat erfüllen. Das Selektionsprädikat ist meist ein Ausdruck bestehend aus den Attributnamen der Argumentenrelation R oder Konstanten als Operanden arithmetischen Vergleichsoperationen <, ≤, =, >, ≥, 6= logischen Operanden ∧, ∨, ¬ Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 22 / 45 Selektion Selektion Definition (Selektion) Die Selektion σF (R) wählt die jenigen Tupel der Relation R aus, d.h. selektiert sie, die das Selektionsprädikat erfüllen. Das Selektionsprädikat ist meist ein Ausdruck bestehend aus den Attributnamen der Argumentenrelation R oder Konstanten als Operanden arithmetischen Vergleichsoperationen <, ≤, =, >, ≥, 6= logischen Operanden ∧, ∨, ¬ Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 22 / 45 Selektion Selektion Definition (Selektion) Die Selektion σF (R) wählt die jenigen Tupel der Relation R aus, d.h. selektiert sie, die das Selektionsprädikat erfüllen. Das Selektionsprädikat ist meist ein Ausdruck bestehend aus den Attributnamen der Argumentenrelation R oder Konstanten als Operanden arithmetischen Vergleichsoperationen <, ≤, =, >, ≥, 6= logischen Operanden ∧, ∨, ¬ Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 22 / 45 Selektion Selektion Definition (Selektion) Die Selektion σF (R) wählt die jenigen Tupel der Relation R aus, d.h. selektiert sie, die das Selektionsprädikat erfüllen. Das Selektionsprädikat ist meist ein Ausdruck bestehend aus den Attributnamen der Argumentenrelation R oder Konstanten als Operanden arithmetischen Vergleichsoperationen <, ≤, =, >, ≥, 6= logischen Operanden ∧, ∨, ¬ Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 22 / 45 Selektion Selektion (Fort.) Example Stellen sie σSemester>10 (Studenten) dar? Lösung: Das Resultat sind die jenigen Studenten, die bereits länger als 10 Semester an der Uni sind. MatrNr 24002 25403 Josef F. Bürgler (HSLU T&A) Name Xenokrates Jonas Relationale Algebra Semester 18 12 HTA.DMG 23 / 45 Selektion Selektion (Fort.) Example Stellen sie σSemester>10 (Studenten) dar? Lösung: Das Resultat sind die jenigen Studenten, die bereits länger als 10 Semester an der Uni sind. MatrNr 24002 25403 Josef F. Bürgler (HSLU T&A) Name Xenokrates Jonas Relationale Algebra Semester 18 12 HTA.DMG 23 / 45 Selektion Selektion (Fort.) Example Im Beispiel zur Vereinigung von zwei Relationen betrachteten wir die Menge der Studenten die mindestens zehn oder höchstens zwei Semester studierten. Stellen sie die entstehende Relation mit Hilfe der Operationen Vereinigung und Selektion dar. Lösung: Die Menge der Studenten, welche mindestens zehn Semester studierten ist gegeben durch σSemester≥10 (Studenten). Analog ist die Menge der Studenten, welche höchstens zwei Semester studierten gegeben durch σSemester≤2 (Studenten). Damit ergibt sich die Vereinigung σSemester≥10 (Studenten) ∪ σSemester≤2 (Studenten). Die Relation in Tabellenform ist oben ersichtlich! Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 24 / 45 Projektion Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 25 / 45 Projektion Projektion Definition (Projektion) Die Projektion ΠA (R) wählt die jenigen Attribute der Relation R aus, die in der Menge der Attributnamen A aufgeführt sind. Während bei einer Selektion einzelne Tupel einer Relation (Zeilen einer Tabelle) ausgewählt werden, werden bei der Projektion Attribute (Spalten) der Argumentenrelation extrahiert. Subscript ist die Menge A der Attributnamen, die extrahiert werden sollen. Meist lässt man die Mengenklammern im Subscript weg. Es kann im Resultat Duplikate geben. Duplikate müssen allenfalls gesondert eliminiert werden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 26 / 45 Projektion Projektion Definition (Projektion) Die Projektion ΠA (R) wählt die jenigen Attribute der Relation R aus, die in der Menge der Attributnamen A aufgeführt sind. Während bei einer Selektion einzelne Tupel einer Relation (Zeilen einer Tabelle) ausgewählt werden, werden bei der Projektion Attribute (Spalten) der Argumentenrelation extrahiert. Subscript ist die Menge A der Attributnamen, die extrahiert werden sollen. Meist lässt man die Mengenklammern im Subscript weg. Es kann im Resultat Duplikate geben. Duplikate müssen allenfalls gesondert eliminiert werden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 26 / 45 Projektion Projektion Definition (Projektion) Die Projektion ΠA (R) wählt die jenigen Attribute der Relation R aus, die in der Menge der Attributnamen A aufgeführt sind. Während bei einer Selektion einzelne Tupel einer Relation (Zeilen einer Tabelle) ausgewählt werden, werden bei der Projektion Attribute (Spalten) der Argumentenrelation extrahiert. Subscript ist die Menge A der Attributnamen, die extrahiert werden sollen. Meist lässt man die Mengenklammern im Subscript weg. Es kann im Resultat Duplikate geben. Duplikate müssen allenfalls gesondert eliminiert werden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 26 / 45 Projektion Projektion Definition (Projektion) Die Projektion ΠA (R) wählt die jenigen Attribute der Relation R aus, die in der Menge der Attributnamen A aufgeführt sind. Während bei einer Selektion einzelne Tupel einer Relation (Zeilen einer Tabelle) ausgewählt werden, werden bei der Projektion Attribute (Spalten) der Argumentenrelation extrahiert. Subscript ist die Menge A der Attributnamen, die extrahiert werden sollen. Meist lässt man die Mengenklammern im Subscript weg. Es kann im Resultat Duplikate geben. Duplikate müssen allenfalls gesondert eliminiert werden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 26 / 45 Projektion Projektion Definition (Projektion) Die Projektion ΠA (R) wählt die jenigen Attribute der Relation R aus, die in der Menge der Attributnamen A aufgeführt sind. Während bei einer Selektion einzelne Tupel einer Relation (Zeilen einer Tabelle) ausgewählt werden, werden bei der Projektion Attribute (Spalten) der Argumentenrelation extrahiert. Subscript ist die Menge A der Attributnamen, die extrahiert werden sollen. Meist lässt man die Mengenklammern im Subscript weg. Es kann im Resultat Duplikate geben. Duplikate müssen allenfalls gesondert eliminiert werden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 26 / 45 Projektion Projektion Definition (Projektion) Die Projektion ΠA (R) wählt die jenigen Attribute der Relation R aus, die in der Menge der Attributnamen A aufgeführt sind. Während bei einer Selektion einzelne Tupel einer Relation (Zeilen einer Tabelle) ausgewählt werden, werden bei der Projektion Attribute (Spalten) der Argumentenrelation extrahiert. Subscript ist die Menge A der Attributnamen, die extrahiert werden sollen. Meist lässt man die Mengenklammern im Subscript weg. Es kann im Resultat Duplikate geben. Duplikate müssen allenfalls gesondert eliminiert werden. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 26 / 45 Projektion Projektion (Fort.) Example Stellen sie Projektion ΠRang (Professoren) dar? Lösung: Der Operator extrahiert das Rang-Attribut aus der Tabelle der Professoren und es entsteht die Relation, welche durch die folgende Tabelle dargestellt wird. Rang C4 C3 Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 27 / 45 Projektion Projektion (Fort.) Example Stellen sie Projektion ΠRang (Professoren) dar? Lösung: Der Operator extrahiert das Rang-Attribut aus der Tabelle der Professoren und es entsteht die Relation, welche durch die folgende Tabelle dargestellt wird. Rang C4 C3 Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 27 / 45 Umbenennung Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 28 / 45 Umbenennung Umbenennung Werden Relationen in Anfragen mehrfach verwendet, muss mindestens eine (Kopie) davon umbenannt werden. Dazu wird der Operator ρ verwendet, dessen Subscript den neuen Namen der Relation angibt. Mit ρV (R) wird die Relation R umbenannt in V . Will man nur einzelne Attribute umbenennen verwendet man die Bezeichnung ρAnew ←Aold (R) und erreicht damit, dass Attribut Aold umbenannt wird in Anew . Analog kann man auch mehrere Attributumbenennungen vornehmen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 29 / 45 Umbenennung Umbenennung Werden Relationen in Anfragen mehrfach verwendet, muss mindestens eine (Kopie) davon umbenannt werden. Dazu wird der Operator ρ verwendet, dessen Subscript den neuen Namen der Relation angibt. Mit ρV (R) wird die Relation R umbenannt in V . Will man nur einzelne Attribute umbenennen verwendet man die Bezeichnung ρAnew ←Aold (R) und erreicht damit, dass Attribut Aold umbenannt wird in Anew . Analog kann man auch mehrere Attributumbenennungen vornehmen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 29 / 45 Umbenennung Umbenennung Werden Relationen in Anfragen mehrfach verwendet, muss mindestens eine (Kopie) davon umbenannt werden. Dazu wird der Operator ρ verwendet, dessen Subscript den neuen Namen der Relation angibt. Mit ρV (R) wird die Relation R umbenannt in V . Will man nur einzelne Attribute umbenennen verwendet man die Bezeichnung ρAnew ←Aold (R) und erreicht damit, dass Attribut Aold umbenannt wird in Anew . Analog kann man auch mehrere Attributumbenennungen vornehmen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 29 / 45 Umbenennung Umbenennung Werden Relationen in Anfragen mehrfach verwendet, muss mindestens eine (Kopie) davon umbenannt werden. Dazu wird der Operator ρ verwendet, dessen Subscript den neuen Namen der Relation angibt. Mit ρV (R) wird die Relation R umbenannt in V . Will man nur einzelne Attribute umbenennen verwendet man die Bezeichnung ρAnew ←Aold (R) und erreicht damit, dass Attribut Aold umbenannt wird in Anew . Analog kann man auch mehrere Attributumbenennungen vornehmen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 29 / 45 Umbenennung Umbenennung Werden Relationen in Anfragen mehrfach verwendet, muss mindestens eine (Kopie) davon umbenannt werden. Dazu wird der Operator ρ verwendet, dessen Subscript den neuen Namen der Relation angibt. Mit ρV (R) wird die Relation R umbenannt in V . Will man nur einzelne Attribute umbenennen verwendet man die Bezeichnung ρAnew ←Aold (R) und erreicht damit, dass Attribut Aold umbenannt wird in Anew . Analog kann man auch mehrere Attributumbenennungen vornehmen. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 29 / 45 Umbenennung Umbenennung (Fort.) Example Gesucht sind die indirekten Vorgänger 2. Stufe (also die Vorgänger der Vorgänger) der Vorlesung mit Nummer 5216. Lösung: ΠV1.Vorgänger σV2.Nachfolger =5216∧V1.Nachfolger=V2.Vorgänger ρV1 (voraussetzen) × ρV2 (voraussetzen) Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 30 / 45 Relationenalgebra Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 31 / 45 Relationenalgebra Relationenalgebra Allgemeine Relationenalgebra-Ausdrücke werden aus einfacheren, kleineren konstruiert. Sind E1 und E2 relationale Algebraausdrücke, dann sind auch die folgenden gültige Algebraausdrücke: E1 ∪ E2 , falls sch(E1 ) = sch(E2 ). E1 \ E2 , falls sch(E1 ) = sch(E2 ). E1 × E2 . σP (E1 ), falls P ein Prädikat über den Attributen von E1 ist. ΠS (E1 ) mit einer Attributliste S, deren Attribute im Schema von E1 vorkommen. ρV (E1 ) und ρA←B (E1 ), falls B ein Attributname der Relation E1 ist, und A nicht als Attributname in E1 vorkommt. Die nachfolgend eingeführten relationalen Operatoren wären nicht nötig: sie machen das Leben aber leichter und süsser wie “syntaktischer Zucker”! Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 32 / 45 Relationenalgebra Relationenalgebra Allgemeine Relationenalgebra-Ausdrücke werden aus einfacheren, kleineren konstruiert. Sind E1 und E2 relationale Algebraausdrücke, dann sind auch die folgenden gültige Algebraausdrücke: E1 ∪ E2 , falls sch(E1 ) = sch(E2 ). E1 \ E2 , falls sch(E1 ) = sch(E2 ). E1 × E2 . σP (E1 ), falls P ein Prädikat über den Attributen von E1 ist. ΠS (E1 ) mit einer Attributliste S, deren Attribute im Schema von E1 vorkommen. ρV (E1 ) und ρA←B (E1 ), falls B ein Attributname der Relation E1 ist, und A nicht als Attributname in E1 vorkommt. Die nachfolgend eingeführten relationalen Operatoren wären nicht nötig: sie machen das Leben aber leichter und süsser wie “syntaktischer Zucker”! Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 32 / 45 Relationenalgebra Relationenalgebra Allgemeine Relationenalgebra-Ausdrücke werden aus einfacheren, kleineren konstruiert. Sind E1 und E2 relationale Algebraausdrücke, dann sind auch die folgenden gültige Algebraausdrücke: E1 ∪ E2 , falls sch(E1 ) = sch(E2 ). E1 \ E2 , falls sch(E1 ) = sch(E2 ). E1 × E2 . σP (E1 ), falls P ein Prädikat über den Attributen von E1 ist. ΠS (E1 ) mit einer Attributliste S, deren Attribute im Schema von E1 vorkommen. ρV (E1 ) und ρA←B (E1 ), falls B ein Attributname der Relation E1 ist, und A nicht als Attributname in E1 vorkommt. Die nachfolgend eingeführten relationalen Operatoren wären nicht nötig: sie machen das Leben aber leichter und süsser wie “syntaktischer Zucker”! Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 32 / 45 Relationenalgebra Relationenalgebra Allgemeine Relationenalgebra-Ausdrücke werden aus einfacheren, kleineren konstruiert. Sind E1 und E2 relationale Algebraausdrücke, dann sind auch die folgenden gültige Algebraausdrücke: E1 ∪ E2 , falls sch(E1 ) = sch(E2 ). E1 \ E2 , falls sch(E1 ) = sch(E2 ). E1 × E2 . σP (E1 ), falls P ein Prädikat über den Attributen von E1 ist. ΠS (E1 ) mit einer Attributliste S, deren Attribute im Schema von E1 vorkommen. ρV (E1 ) und ρA←B (E1 ), falls B ein Attributname der Relation E1 ist, und A nicht als Attributname in E1 vorkommt. Die nachfolgend eingeführten relationalen Operatoren wären nicht nötig: sie machen das Leben aber leichter und süsser wie “syntaktischer Zucker”! Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 32 / 45 Relationenalgebra Relationenalgebra Allgemeine Relationenalgebra-Ausdrücke werden aus einfacheren, kleineren konstruiert. Sind E1 und E2 relationale Algebraausdrücke, dann sind auch die folgenden gültige Algebraausdrücke: E1 ∪ E2 , falls sch(E1 ) = sch(E2 ). E1 \ E2 , falls sch(E1 ) = sch(E2 ). E1 × E2 . σP (E1 ), falls P ein Prädikat über den Attributen von E1 ist. ΠS (E1 ) mit einer Attributliste S, deren Attribute im Schema von E1 vorkommen. ρV (E1 ) und ρA←B (E1 ), falls B ein Attributname der Relation E1 ist, und A nicht als Attributname in E1 vorkommt. Die nachfolgend eingeführten relationalen Operatoren wären nicht nötig: sie machen das Leben aber leichter und süsser wie “syntaktischer Zucker”! Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 32 / 45 Relationenalgebra Relationenalgebra Allgemeine Relationenalgebra-Ausdrücke werden aus einfacheren, kleineren konstruiert. Sind E1 und E2 relationale Algebraausdrücke, dann sind auch die folgenden gültige Algebraausdrücke: E1 ∪ E2 , falls sch(E1 ) = sch(E2 ). E1 \ E2 , falls sch(E1 ) = sch(E2 ). E1 × E2 . σP (E1 ), falls P ein Prädikat über den Attributen von E1 ist. ΠS (E1 ) mit einer Attributliste S, deren Attribute im Schema von E1 vorkommen. ρV (E1 ) und ρA←B (E1 ), falls B ein Attributname der Relation E1 ist, und A nicht als Attributname in E1 vorkommt. Die nachfolgend eingeführten relationalen Operatoren wären nicht nötig: sie machen das Leben aber leichter und süsser wie “syntaktischer Zucker”! Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 32 / 45 Verbund (Join) Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 33 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Definition Definition (Natürlicher Verbund (natural Join)) Sei R eine m- und S eine n-stellige Relation. Dann ist für p ≤ min(m, n) der Verbund Jp (R, S) die (m + n − p)-stellige Relation, die aus allen (m + n − p)-Tupeln (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) besteht, wobei (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp ) ∈ R und (c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) ∈ S. Aus zwei Relationen R und S wird eine neue Relation Jp (R, S) Alle m-Tupel aus R werden mit allen n-Tupeln aus S kombiniert Nur falls die letzten p Komponenten des m-Tupels mit den ersten p Komponenten des n-Tupels übereinstimmen, liegt das (m + n − p)-Tupel im Verbund Jp (R, S) Für p = 0 erhält man das kartesische oder Kreuzprodukt der beiden Mengen R und S, geschrieben R × S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 34 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Definition Definition (Natürlicher Verbund (natural Join)) Sei R eine m- und S eine n-stellige Relation. Dann ist für p ≤ min(m, n) der Verbund Jp (R, S) die (m + n − p)-stellige Relation, die aus allen (m + n − p)-Tupeln (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) besteht, wobei (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp ) ∈ R und (c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) ∈ S. Aus zwei Relationen R und S wird eine neue Relation Jp (R, S) Alle m-Tupel aus R werden mit allen n-Tupeln aus S kombiniert Nur falls die letzten p Komponenten des m-Tupels mit den ersten p Komponenten des n-Tupels übereinstimmen, liegt das (m + n − p)-Tupel im Verbund Jp (R, S) Für p = 0 erhält man das kartesische oder Kreuzprodukt der beiden Mengen R und S, geschrieben R × S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 34 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Definition Definition (Natürlicher Verbund (natural Join)) Sei R eine m- und S eine n-stellige Relation. Dann ist für p ≤ min(m, n) der Verbund Jp (R, S) die (m + n − p)-stellige Relation, die aus allen (m + n − p)-Tupeln (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) besteht, wobei (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp ) ∈ R und (c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) ∈ S. Aus zwei Relationen R und S wird eine neue Relation Jp (R, S) Alle m-Tupel aus R werden mit allen n-Tupeln aus S kombiniert Nur falls die letzten p Komponenten des m-Tupels mit den ersten p Komponenten des n-Tupels übereinstimmen, liegt das (m + n − p)-Tupel im Verbund Jp (R, S) Für p = 0 erhält man das kartesische oder Kreuzprodukt der beiden Mengen R und S, geschrieben R × S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 34 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Definition Definition (Natürlicher Verbund (natural Join)) Sei R eine m- und S eine n-stellige Relation. Dann ist für p ≤ min(m, n) der Verbund Jp (R, S) die (m + n − p)-stellige Relation, die aus allen (m + n − p)-Tupeln (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) besteht, wobei (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp ) ∈ R und (c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) ∈ S. Aus zwei Relationen R und S wird eine neue Relation Jp (R, S) Alle m-Tupel aus R werden mit allen n-Tupeln aus S kombiniert Nur falls die letzten p Komponenten des m-Tupels mit den ersten p Komponenten des n-Tupels übereinstimmen, liegt das (m + n − p)-Tupel im Verbund Jp (R, S) Für p = 0 erhält man das kartesische oder Kreuzprodukt der beiden Mengen R und S, geschrieben R × S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 34 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Definition Definition (Natürlicher Verbund (natural Join)) Sei R eine m- und S eine n-stellige Relation. Dann ist für p ≤ min(m, n) der Verbund Jp (R, S) die (m + n − p)-stellige Relation, die aus allen (m + n − p)-Tupeln (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) besteht, wobei (a1 , a2 , . . . , am−p , c1 , c2 , . . . , cp ) ∈ R und (c1 , c2 , . . . , cp , bp+1 , bp+2 , . . . , bn ) ∈ S. Aus zwei Relationen R und S wird eine neue Relation Jp (R, S) Alle m-Tupel aus R werden mit allen n-Tupeln aus S kombiniert Nur falls die letzten p Komponenten des m-Tupels mit den ersten p Komponenten des n-Tupels übereinstimmen, liegt das (m + n − p)-Tupel im Verbund Jp (R, S) Für p = 0 erhält man das kartesische oder Kreuzprodukt der beiden Mengen R und S, geschrieben R × S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 34 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Beispiel Example Berechne den Verbund J2 der beiden Relationen Teaching-assignments und Class-schedule. Teaching-assignments Prof. Depart. C-No Cruz Zoology 335 Cruz Zoology 412 Farber Psychology 501 Farber Psychology 617 Grammer Physics 544 Grammer Physics 551 Rosen CS 518 Rosen Math. 575 Josef F. Bürgler (HSLU T&A) Class-assignments Depart. C-No Room CS 518 N521 Math. 575 N502 Math. 611 N521 Physics 544 B505 Psychology 501 A100 Psychology 617 A110 Zoology 335 A100 Zoology 412 A100 Relationale Algebra Time 14:00 15:00 16:00 16:00 15:00 11:00 9:00 8:00 HTA.DMG 35 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Beispiel Example Berechne den Verbund J2 der beiden Relationen Teaching-assignments und Class-schedule. Teaching-assignments Prof. Depart. C-No Cruz Zoology 335 Cruz Zoology 412 Farber Psychology 501 Farber Psychology 617 Grammer Physics 544 Grammer Physics 551 Rosen CS 518 Rosen Math. 575 Josef F. Bürgler (HSLU T&A) Class-assignments Depart. C-No Room CS 518 N521 Math. 575 N502 Math. 611 N521 Physics 544 B505 Psychology 501 A100 Psychology 617 A110 Zoology 335 A100 Zoology 412 A100 Relationale Algebra Time 14:00 15:00 16:00 16:00 15:00 11:00 9:00 8:00 HTA.DMG 35 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Beispiel Example Berechne den Verbund J2 der beiden Relationen Teaching-assignments und Class-schedule. Teaching-assignments Prof. Depart. C-No Cruz Zoology 335 Cruz Zoology 412 Farber Psychology 501 Farber Psychology 617 Grammer Physics 544 Grammer Physics 551 Rosen CS 518 Rosen Math. 575 Josef F. Bürgler (HSLU T&A) Class-assignments Depart. C-No Room CS 518 N521 Math. 575 N502 Math. 611 N521 Physics 544 B505 Psychology 501 A100 Psychology 617 A110 Zoology 335 A100 Zoology 412 A100 Relationale Algebra Time 14:00 15:00 16:00 16:00 15:00 11:00 9:00 8:00 HTA.DMG 35 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Beispiel Example Berechne den Verbund J2 der beiden Relationen Teaching-assignments und Class-schedule. Teaching-assignments Prof. Depart. C-No Cruz Zoology 335 Cruz Zoology 412 Farber Psychology 501 Farber Psychology 617 Grammer Physics 544 Grammer Physics 551 Rosen CS 518 Rosen Math. 575 Josef F. Bürgler (HSLU T&A) Class-assignments Depart. C-No Room CS 518 N521 Math. 575 N502 Math. 611 N521 Physics 544 B505 Psychology 501 A100 Psychology 617 A110 Zoology 335 A100 Zoology 412 A100 Relationale Algebra Time 14:00 15:00 16:00 16:00 15:00 11:00 9:00 8:00 HTA.DMG 35 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Beispiel Example Berechne den Verbund J2 der beiden Relationen Teaching-assignments und Class-schedule. Teaching-assignments Prof. Depart. C-No Cruz Zoology 335 Cruz Zoology 412 Farber Psychology 501 Farber Psychology 617 Grammer Physics 544 Grammer Physics 551 Rosen CS 518 Rosen Math. 575 Josef F. Bürgler (HSLU T&A) Class-assignments Depart. C-No Room CS 518 N521 Math. 575 N502 Math. 611 N521 Physics 544 B505 Psychology 501 A100 Psychology 617 A110 Zoology 335 A100 Zoology 412 A100 Relationale Algebra Time 14:00 15:00 16:00 16:00 15:00 11:00 9:00 8:00 HTA.DMG 35 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Beispiel Example Kann man die vorige Aufgabe mit Hilfe von anderen Operationen lösen? Also ist der Join eigentlich überflüssig! Lösung: Falls die erste Relation mit R(P, D, C) und die zweite mit S(D, C, Ro, T ) bezeichnet wird, hat man R ⊲⊳{D, C} S = ΠP,D,C,Ro,T (σR.D=S.D∧R.C=S.C (R × S)) . Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 36 / 45 Verbund (Join) Natürlicher Verbund (natural Join): Beispiel Example Kann man die vorige Aufgabe mit Hilfe von anderen Operationen lösen? Also ist der Join eigentlich überflüssig! Lösung: Falls die erste Relation mit R(P, D, C) und die zweite mit S(D, C, Ro, T ) bezeichnet wird, hat man R ⊲⊳{D, C} S = ΠP,D,C,Ro,T (σR.D=S.D∧R.C=S.C (R × S)) . Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 36 / 45 Verbund (Join) Verschiedene Joins Cross Join (Kreuzprodukt oder kartesisches Produkt) verbindet jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle Inner Join (= equivalent join) verbindet Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält. Natural Join verknüpft zwei Relationen R und S über die Gleichheit aller gleich lautenden Spalten die nur einmal angezeigt werden: geschrieben R ⊲⊳ S. Left outer join = left join via linke Inklusionsverknüpfung, d.h. Datensätze aus der linken Tabelle sind eingeschlossen auch wenn keine entsprechende Werte für die Datensätze in der rechten Tabelle existieren. θ-Join zweier Relation R und S, geschreiben R ⊲⊳θ S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 37 / 45 Verbund (Join) Verschiedene Joins Cross Join (Kreuzprodukt oder kartesisches Produkt) verbindet jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle Inner Join (= equivalent join) verbindet Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält. Natural Join verknüpft zwei Relationen R und S über die Gleichheit aller gleich lautenden Spalten die nur einmal angezeigt werden: geschrieben R ⊲⊳ S. Left outer join = left join via linke Inklusionsverknüpfung, d.h. Datensätze aus der linken Tabelle sind eingeschlossen auch wenn keine entsprechende Werte für die Datensätze in der rechten Tabelle existieren. θ-Join zweier Relation R und S, geschreiben R ⊲⊳θ S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 37 / 45 Verbund (Join) Verschiedene Joins Cross Join (Kreuzprodukt oder kartesisches Produkt) verbindet jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle Inner Join (= equivalent join) verbindet Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält. Natural Join verknüpft zwei Relationen R und S über die Gleichheit aller gleich lautenden Spalten die nur einmal angezeigt werden: geschrieben R ⊲⊳ S. Left outer join = left join via linke Inklusionsverknüpfung, d.h. Datensätze aus der linken Tabelle sind eingeschlossen auch wenn keine entsprechende Werte für die Datensätze in der rechten Tabelle existieren. θ-Join zweier Relation R und S, geschreiben R ⊲⊳θ S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 37 / 45 Verbund (Join) Verschiedene Joins Cross Join (Kreuzprodukt oder kartesisches Produkt) verbindet jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle Inner Join (= equivalent join) verbindet Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält. Natural Join verknüpft zwei Relationen R und S über die Gleichheit aller gleich lautenden Spalten die nur einmal angezeigt werden: geschrieben R ⊲⊳ S. Left outer join = left join via linke Inklusionsverknüpfung, d.h. Datensätze aus der linken Tabelle sind eingeschlossen auch wenn keine entsprechende Werte für die Datensätze in der rechten Tabelle existieren. θ-Join zweier Relation R und S, geschreiben R ⊲⊳θ S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 37 / 45 Verbund (Join) Verschiedene Joins Cross Join (Kreuzprodukt oder kartesisches Produkt) verbindet jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle Inner Join (= equivalent join) verbindet Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält. Natural Join verknüpft zwei Relationen R und S über die Gleichheit aller gleich lautenden Spalten die nur einmal angezeigt werden: geschrieben R ⊲⊳ S. Left outer join = left join via linke Inklusionsverknüpfung, d.h. Datensätze aus der linken Tabelle sind eingeschlossen auch wenn keine entsprechende Werte für die Datensätze in der rechten Tabelle existieren. θ-Join zweier Relation R und S, geschreiben R ⊲⊳θ S Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 37 / 45 Verbund (Join) θ-Join: Beispiel Example Berechne Account ⊲⊳Number=Account and Amount>700 Deposit, falls: Account Number 101 102 103 104 105 Owner J. Smith W. Wei J. Smith M. Jones H. Martin Deposit Account 102 102 104 105 T-id 1 2 3 4 Josef F. Bürgler (HSLU T&A) Balance 1’000.00 2’000.00 5’000.00 1’000.00 10’000.00 Date 10/22/05 10/29/05 10/29/05 11/02/05 Type checking checking savings checking checking Amount 500.00 200.00 1’000.00 10’000.00 Relationale Algebra HTA.DMG 38 / 45 Verbund (Join) θ-Join (Fort.) θ-Join: R ⊲⊳θ S = σθ (R × S) Resultatschema ist das selbe wie beim Kreuzprodukt Weniger Tupel als im Kreuzprodukt, da Selektion: kann effizienter berechnet werden Auch conditional join genannt Beim Equi-Join sind alle Bedingungen Gleichheit Natural Join ist gleich dem Equi-Join auf den gemeinsamen Attributen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 39 / 45 Verbund (Join) θ-Join (Fort.) θ-Join: R ⊲⊳θ S = σθ (R × S) Resultatschema ist das selbe wie beim Kreuzprodukt Weniger Tupel als im Kreuzprodukt, da Selektion: kann effizienter berechnet werden Auch conditional join genannt Beim Equi-Join sind alle Bedingungen Gleichheit Natural Join ist gleich dem Equi-Join auf den gemeinsamen Attributen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 39 / 45 Verbund (Join) θ-Join (Fort.) θ-Join: R ⊲⊳θ S = σθ (R × S) Resultatschema ist das selbe wie beim Kreuzprodukt Weniger Tupel als im Kreuzprodukt, da Selektion: kann effizienter berechnet werden Auch conditional join genannt Beim Equi-Join sind alle Bedingungen Gleichheit Natural Join ist gleich dem Equi-Join auf den gemeinsamen Attributen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 39 / 45 Verbund (Join) θ-Join (Fort.) θ-Join: R ⊲⊳θ S = σθ (R × S) Resultatschema ist das selbe wie beim Kreuzprodukt Weniger Tupel als im Kreuzprodukt, da Selektion: kann effizienter berechnet werden Auch conditional join genannt Beim Equi-Join sind alle Bedingungen Gleichheit Natural Join ist gleich dem Equi-Join auf den gemeinsamen Attributen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 39 / 45 Verbund (Join) θ-Join (Fort.) θ-Join: R ⊲⊳θ S = σθ (R × S) Resultatschema ist das selbe wie beim Kreuzprodukt Weniger Tupel als im Kreuzprodukt, da Selektion: kann effizienter berechnet werden Auch conditional join genannt Beim Equi-Join sind alle Bedingungen Gleichheit Natural Join ist gleich dem Equi-Join auf den gemeinsamen Attributen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 39 / 45 Verbund (Join) θ-Join (Fort.) θ-Join: R ⊲⊳θ S = σθ (R × S) Resultatschema ist das selbe wie beim Kreuzprodukt Weniger Tupel als im Kreuzprodukt, da Selektion: kann effizienter berechnet werden Auch conditional join genannt Beim Equi-Join sind alle Bedingungen Gleichheit Natural Join ist gleich dem Equi-Join auf den gemeinsamen Attributen Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 39 / 45 Verbund (Join) Natural-, Outer-, Left- and Right-Join Example Berechne den natural-, outer-, left- und right-join der beiden Relationen L und R: Josef F. Bürgler (HSLU T&A) L A 1 2 Relationale Algebra B 2 3 R B 3 4 C 4 5 HTA.DMG 40 / 45 Verbund (Join) Natural-, Outer-, Left- and Right-Join Example Berechne den natural-, outer-, left- und right-join der beiden Relationen L und R: Josef F. Bürgler (HSLU T&A) L A 1 2 Relationale Algebra B 2 3 R B 3 4 C 4 5 HTA.DMG 40 / 45 Verbund (Join) Natural-, Outer-, Left- and Right-Join Example Berechne den natural-, outer-, left- und right-join der beiden Relationen L und R: Josef F. Bürgler (HSLU T&A) L A 1 2 Relationale Algebra B 2 3 R B 3 4 C 4 5 HTA.DMG 40 / 45 Verbund (Join) Natural-, Outer-, Left- and Right-Join Example Berechne den natural-, outer-, left- und right-join der beiden Relationen L und R: Josef F. Bürgler (HSLU T&A) L A 1 2 Relationale Algebra B 2 3 R B 3 4 C 4 5 HTA.DMG 40 / 45 Verbund (Join) Natural-, Outer-, Left- and Right-Join Example Berechne den natural-, outer-, left- und right-join der beiden Relationen L und R: L A 1 2 B 2 3 R B 3 4 C 4 5 Lösung: Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 40 / 45 Verbund (Join) Natural-, Outer-, Left- and Right-Join Example Berechne den natural-, outer-, left- und right-join der beiden Relationen L und R: L A 1 2 B 2 3 R B 3 4 C 4 5 Lösung: Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 40 / 45 Division Outline 1 Einführung 2 Vereinigung 3 Durchschnitt 4 Differenz 5 Kreuzprodukt 6 Selektion 7 Projektion 8 Umbenennung 9 Relationenalgebra 10 Verbund (Join) 11 Division Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 41 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Umkehrung des Kreuzprodukts (Joins) Wir berechnen R ÷ S wobei R(r1 , r2 , r3 , r4 ) und S(s1 , s2 ) Da S zwei Attribute hat, muss es zwei gleich benannte Attribute (sagen wir r3 und r4 ) in R geben; d.h. (r3 , r4 ) und (s1 , s2 ) sind typ-kompatibel. Die Division R ÷ S enthält die verbleibenden Attribute (r1 , r2 ): das Tupel (r1 , r2 ) liegt in R ÷ S, falls (r1 , r2 ) in R für jedes S-Tupel. Sinnvoll zur Beantwortung von Fragen wie: find costumers who have all types of accounts (saving and checking). Für R(x, y) und S(y) hat man: R ÷ S = {(x) |∃(x, y) ∈ R ∧ ∀(y) ∈ S } = R/S R ÷ S enthält alle (x)-Tupel so, dass für jedes (y)-Tupel aus S ein (x, y)-Tupel in R existiert. Falls die Menge der (y)-Werte, assoziert mit einem (x)-Wert in R alle (y)-Werte in S enthält, dann ist (x) in R ÷ S. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 42 / 45 Division Division Example Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 43 / 45 Division Division Example Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 43 / 45 Division Zusammenfassung Gewöhnliche Mengeoperationen wurden auf Relationen übertragen: Vereinigung, Durchschnitt und Differenz Selektion und Projektion entfernen Teile der Relation Kreuzprodukt und Verbund kombinieren Tupel zweier Relationen Jede der Operationen liefert wieder eine Relation Operationen können zusammengesetzt werden Die relationale Algebra ist abgeschlossen (man bewegt sich nicht aus dem Bereich der Relationen raus) Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 44 / 45 Division Zusammenfassung Gewöhnliche Mengeoperationen wurden auf Relationen übertragen: Vereinigung, Durchschnitt und Differenz Selektion und Projektion entfernen Teile der Relation Kreuzprodukt und Verbund kombinieren Tupel zweier Relationen Jede der Operationen liefert wieder eine Relation Operationen können zusammengesetzt werden Die relationale Algebra ist abgeschlossen (man bewegt sich nicht aus dem Bereich der Relationen raus) Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 44 / 45 Division Zusammenfassung Gewöhnliche Mengeoperationen wurden auf Relationen übertragen: Vereinigung, Durchschnitt und Differenz Selektion und Projektion entfernen Teile der Relation Kreuzprodukt und Verbund kombinieren Tupel zweier Relationen Jede der Operationen liefert wieder eine Relation Operationen können zusammengesetzt werden Die relationale Algebra ist abgeschlossen (man bewegt sich nicht aus dem Bereich der Relationen raus) Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 44 / 45 Division Zusammenfassung Gewöhnliche Mengeoperationen wurden auf Relationen übertragen: Vereinigung, Durchschnitt und Differenz Selektion und Projektion entfernen Teile der Relation Kreuzprodukt und Verbund kombinieren Tupel zweier Relationen Jede der Operationen liefert wieder eine Relation Operationen können zusammengesetzt werden Die relationale Algebra ist abgeschlossen (man bewegt sich nicht aus dem Bereich der Relationen raus) Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 44 / 45 Division Zusammenfassung Gewöhnliche Mengeoperationen wurden auf Relationen übertragen: Vereinigung, Durchschnitt und Differenz Selektion und Projektion entfernen Teile der Relation Kreuzprodukt und Verbund kombinieren Tupel zweier Relationen Jede der Operationen liefert wieder eine Relation Operationen können zusammengesetzt werden Die relationale Algebra ist abgeschlossen (man bewegt sich nicht aus dem Bereich der Relationen raus) Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 44 / 45 Division Zusammenfassung Gewöhnliche Mengeoperationen wurden auf Relationen übertragen: Vereinigung, Durchschnitt und Differenz Selektion und Projektion entfernen Teile der Relation Kreuzprodukt und Verbund kombinieren Tupel zweier Relationen Jede der Operationen liefert wieder eine Relation Operationen können zusammengesetzt werden Die relationale Algebra ist abgeschlossen (man bewegt sich nicht aus dem Bereich der Relationen raus) Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 44 / 45 Division Zusammenfassung (Fort.) Selektion (σ) wählt eine Menge von Tupeln (Zeilen) aus. Projektion (Π) löscht ungewollte Komponenten (Spalten). Kreuzprodukt (×) ermöglicht die Kombination zweier Relationen. Differenz (\) Tupel (Zeilen) sind in Relation 1 aber nicht in Relation 2. Vereinigung (∪) Tupel (Zeilen) sind in Relation 1 und in Relation 2. Weitere nicht wesentliche aber besonders nützliche Verknüpfungen sind: Durchschnitt, Verbund und Umbenennung. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 45 / 45 Division Zusammenfassung (Fort.) Selektion (σ) wählt eine Menge von Tupeln (Zeilen) aus. Projektion (Π) löscht ungewollte Komponenten (Spalten). Kreuzprodukt (×) ermöglicht die Kombination zweier Relationen. Differenz (\) Tupel (Zeilen) sind in Relation 1 aber nicht in Relation 2. Vereinigung (∪) Tupel (Zeilen) sind in Relation 1 und in Relation 2. Weitere nicht wesentliche aber besonders nützliche Verknüpfungen sind: Durchschnitt, Verbund und Umbenennung. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 45 / 45 Division Zusammenfassung (Fort.) Selektion (σ) wählt eine Menge von Tupeln (Zeilen) aus. Projektion (Π) löscht ungewollte Komponenten (Spalten). Kreuzprodukt (×) ermöglicht die Kombination zweier Relationen. Differenz (\) Tupel (Zeilen) sind in Relation 1 aber nicht in Relation 2. Vereinigung (∪) Tupel (Zeilen) sind in Relation 1 und in Relation 2. Weitere nicht wesentliche aber besonders nützliche Verknüpfungen sind: Durchschnitt, Verbund und Umbenennung. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 45 / 45 Division Zusammenfassung (Fort.) Selektion (σ) wählt eine Menge von Tupeln (Zeilen) aus. Projektion (Π) löscht ungewollte Komponenten (Spalten). Kreuzprodukt (×) ermöglicht die Kombination zweier Relationen. Differenz (\) Tupel (Zeilen) sind in Relation 1 aber nicht in Relation 2. Vereinigung (∪) Tupel (Zeilen) sind in Relation 1 und in Relation 2. Weitere nicht wesentliche aber besonders nützliche Verknüpfungen sind: Durchschnitt, Verbund und Umbenennung. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 45 / 45 Division Zusammenfassung (Fort.) Selektion (σ) wählt eine Menge von Tupeln (Zeilen) aus. Projektion (Π) löscht ungewollte Komponenten (Spalten). Kreuzprodukt (×) ermöglicht die Kombination zweier Relationen. Differenz (\) Tupel (Zeilen) sind in Relation 1 aber nicht in Relation 2. Vereinigung (∪) Tupel (Zeilen) sind in Relation 1 und in Relation 2. Weitere nicht wesentliche aber besonders nützliche Verknüpfungen sind: Durchschnitt, Verbund und Umbenennung. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 45 / 45 Division Zusammenfassung (Fort.) Selektion (σ) wählt eine Menge von Tupeln (Zeilen) aus. Projektion (Π) löscht ungewollte Komponenten (Spalten). Kreuzprodukt (×) ermöglicht die Kombination zweier Relationen. Differenz (\) Tupel (Zeilen) sind in Relation 1 aber nicht in Relation 2. Vereinigung (∪) Tupel (Zeilen) sind in Relation 1 und in Relation 2. Weitere nicht wesentliche aber besonders nützliche Verknüpfungen sind: Durchschnitt, Verbund und Umbenennung. Josef F. Bürgler (HSLU T&A) Relationale Algebra HTA.DMG 45 / 45