Grundlagen des relationalen Modells

Ähnliche Dokumente
Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Das relationale Modell

Grundlagen des relationalen Modells

Historische Entwicklung relationaler DBMS. Ted Codd: A Relational Model of Data for Large Shared Data Banks, Comm. ACM, Juni 1970, S.

Relationale Darstellung von Entitytypen. Uni-Schema. Grundlagen des relationalen Modells

Wiederholung: Relationale Algebra

Vorlesung Datenbanksysteme vom

Grundlagen des relationalen Modells Seien D 1 ;D 2 ;:::;D n Domänen (Wertebereiche) Relation: R D 1 :::D n Bsp.: Telefonbuch string string integer Tup

Vorlesungen. Studenten. hören. Grundzüge. Fichte Glaube und Wissen Jonas

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Wiederholung: Relationale Algebra

Uni-Schema. Grundlagen des relationalen Modells N M. 1 Professoren. Bsp.: Telefonbuch string x string x integer

Übung 3. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Grundlagen des relationalen l Modells

Datenbanksysteme 2009

Entity Relationship Modell

Datenbanksysteme SS 2007

Vorlesungen. Studenten. hören. Grundzüge. Fichte Glaube und Wissen Jonas

Datenmodellierung. VU , SS 2015 Das relationale Modell. Sebastian Skritek. Institut für Informationssysteme Technische Universität Wien

Acknowledgments. Datenmodellierung VU , WS Das Relationale Modell: Begriffsklärung. Übersicht. Das relationale Modell

Datenbanksysteme SS 2007

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Datenmodellierung. VU , WS 2016 Das relationale Modell. Nysret Musliu, Sebastian Skritek

Teil 1: Deduktive Datenbanken Gerd Stumme Christoph Schmitz

Fortsetzung: Projektion Selektion. NULL Werte

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Relationale Anfragesprachen

DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL UND DAS RELATIONALE MODELL

Das Relationale Modell

Das relationale Modell

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Acknowledgments. Datenmodellierung. Übersicht. Das Relationale Modell: Begriffsklärung VU , WS Das relationale Modell

DATENBANKSYSTEME: SQL

Das Relationale Modell

Transaktionsverwaltung read write read write

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Anfragebearbeitung 1. Vorlesung Datenbanksysteme vom

SWE4 Slide 1. Software-Engineering. Vorlesung 4 vom Sebastian Iwanowski FH Wedel

Informatik II Vorlesung am D-BAUG der ETH Zürich

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Dr. Felix Friedrich und Dr. Hermann Lehner

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Informatik II Vorlesung am D-BAUG der ETH Zürich

Relationale Algebra. Thomas Heimrich. Rel. Algebra. Grundlagen. Beispielrelationen. rel. Algebra. Definition der rel. Algebra.

Datenintegrität. Kapitel 5 1

Software-Engineering

Software-Engineering

Relationales Datenmodell Relationale Algebra

Diskussion: Personal (1)

Architektur eines DBMS Logische Optimierung

Fortsetzung: Kreuzprodukt, Inner Join. Sortierung. Existenzquantor, Mengenvergleich Gruppierung, Aggregate Cast-Operator

Relationales Datenmodell Relationale Algebra

<is web> Information Systems & Semantic Web University of Koblenz Landau, Germany

Datenintegrität. Kapitel 5 1

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Datenbanken Das Relationale Datenmodell. Ralf Möller Universität zu Lübeck Institut für Informationssysteme

Literatur. Informatik II Vorlesung am D-BAUG der ETH Zürich. Ziele. Datenbankverwaltungssysteme

Datenbanken Das Relationale Datenmodell. Ralf Möller Universität zu Lübeck Institut für Informationssysteme

Objektorientierte Datenbanken

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenintegrität. Referentielle Integrität. Referentielle Integrität in SQL. Bisherige Integritätsbedingungen

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Datenmodelle und Datenbanken 1 Internet-Datenbanken

Diskussion: Personal (1)

3. Relationales Modell & Algebra

3. Relationales Modell & Algebra

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Rückblick: Datenbankentwurf

Kapitel 8: Datenintegrität

Einführung in Datenbanksysteme

Das relationale Modell (Teil 1)

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Referentielle Integrität

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Rückblick: Relationales Modell

Rückblick: Relationale Normalisierung

Wie definieren wir das Relationen-

Datenbanksysteme 2013

Referentielle Integrität

Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert:

<is web> Information Systems & Semantic Web University of Koblenz Landau, Germany

Grundlagen: Datenbanken

Transkript:

Grundlagen des relationalen Modells Das relationale Modell Verfeinerung des relationalen Schemas Relationale Algebra Relationenkalkül Kapitel 3 1

Grundlagen des relationalen Modells Seien D 1, D,, D n Domänen (Wertebereiche, Mengen) Eine Relation ist eine Teilmenge R D 1 x x D n Bsp.: Telefonbuch string x string x integer Ein Tupel ist jedes Element t R von R Bsp.: t = ( Mickey Mouse, Main Street, 4711) Schema: legt die Struktur der gespeicherten Daten fest Bsp.: Telefonbuch: {[Name: string, Adresse: string, Telefon#:integer]}

Name Mickey Mouse Mini Mouse Donald Duck Telefonbuch Straße Main Street Broadway Broadway Telefon# 4711 9475 9567 Ausprägung: der aktuelle Zustand der Datenbasis Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren Primärschlüssel: wird unterstrichen Einer der Schlüsselkandidaten wird als Primärschlüssel ausgewählt Hat eine besondere Bedeutung bei der Referenzierung von Tupeln 3

Name Mickey Mouse Mini Mouse Donald Duck Telefonbuch Straße Main Street Broadway Broadway Telefon# 4711 9475 9567 Die Festlegung eines (Primär-)Schlüssels ist eine Designentscheidung. Bei einer gegebenen Datenbank wird dann bei einer Konsistenzprüfung überprüft, ob sie dieser Einschränkung gehorcht. 4

Uni-Schema MatrNr Name Studenten Semester N N voraus setzen Nachfolger Vorgänger hör en M N Vorlesunge n M M N VorlNr SWS Titel Note prüfen lesen PersNr Name Assistenten N arbeit enfür 1 1 1 Professoren Rang Raum Fachgebiet PersNr Name 5

Relationale Darstellung von Entitytypen Studenten: {[MatrNr:integer, Name: string, Semester: integer]} Vorlesungen: {[VorlNr:integer, Titel: string, SWS: integer]} Professoren: {[PersNr:integer, Name: string, Rang: string, Raum: integer]} Assistenten: {[PersNr:integer, Name: string, Fachgebiet: string]} 6

Relationale Darstellung von Beziehungen A 1 A k A 11 E 1 E R E n A 1k1 A R 1 A R kr A n1 A nk n A 11,.,A 1k1,A,,A 1 k,,a,,a n1 nk,a R n 1,,A kr Schlüssel von E 1 Schlüssel von E Schlüssel von E n Attribute von R R:{[ ]} R 7

8 Ausprägung der Beziehung hören MatrNr 610 7550 Studenten 9555 50 5403 50 9555 5049 910 5041 910 910 559 8106 516 8106 505 8106 5041 8106 VorlNr MatrNr 610 405 7550 7550 hören VorlNr 405 Vorlesungen Studenten hören Vorlesungen M N MatrNr VorlNr

Beziehungen unseres Beispiel- Schemas hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenfür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} 9

Schlüssel der Relationen hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenfür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} 10

Verfeinerung des relationalen Schemas Professoren lesen 1 N Vorlesungen 1:N-Beziehung Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]} 11

Verfeinerung des relationalen Schemas 1:N-Beziehung Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]} Verfeinerung durch Zusammenfassung Vorlesungen : {[VorlNr, Titel, SWS, gelesenvon]} Professoren : {[PersNr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen! 1

Ausprägung von Professoren und Vorlesung Vorlesungen PersNr 15 16 17 133 134 136 137 Professoren Name Rang Raum Sokrates C4 6 Russel C4 3 Kopernikus C3 310 Popper C3 5 Augustinus C3 309 Curie C4 36 Kant C4 7 VorlNr 5041 5043 5049 405 505 516 559 50 Titel Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen SWS 4 4 3 4 3 Gelesen Von 137 15 16 15 15 16 16 133 134 4630 Die 3 Kritiken 4 137 Professoren lesen 1 N Vorlesungen 13

Vorsicht: So geht es NICHT Vorlesungen VorlNr Titel SWS Professoren Grundzüge 4 PersNr Name Rang Raum liest 5041 Ethik 4 15 Sokrates C4 6 5041 5043 Erkenntnistheorie 3 15 Sokrates C4 6 5049 5049 Mäeutik 15 Sokrates C4 6 405 405 Logik 4 505 Wissenschaftstheorie 3 134 Augustinus C3 309 50 516 Bioethik 136 Curie C4 36?? 559 Der Wiener Kreis 50 Glaube und Wissen 4630 Die 3 Kritiken 4 Professoren lesen 1 N Vorlesungen 14

Vorsicht: So geht es NICHT: Folgen Anomalien PersNr 15 15 15 134 136 Professoren Name Rang Raum Sokrates C4 6 Sokrates C4 6 Sokrates C4 6 Augustinus Curie C3 C4 309 36 liest 5041 5049 405 50?? VorlNr 5041 5043 5049 405 505 516 559 50 4630 Vorlesungen Titel Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Update-Anomalie: Was passiert wenn Sokrates umzieht? Lösch-Anomalie: Was passiert wenn Glaube und Wissen wegfällt? Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen? ( Funktionale Abhängigkeiten) SWS 4 4 3 4 3 4 15

Relationale Modellierung der Generalisierung Fachge biet Assistenten is_a Angestellte Professoren PersNr Name Raum Rang Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten: {[PersNr, Fachgebiet]} 16

Relationale Modellierung schwacher Entitytypen Studenten MatrNr VorlNr 1 ableg N Note Prüfungen en PrüfTeil N N umfas abhalt sen en M M PersNr Vorlesungen Professoren Prüfungen: {[MatrNr: integer, PrüfTeil: string, Note: integer]} umfassen: {[MatrNr: integer, PrüfTeil: string, VorlNr: integer]} abhalten: {[MatrNr: integer, PrüfTeil: string, PersNr: integer]} 17

Man beachte, dass in diesem Fall der (global eindeutige) Schlüssel der Relation Prüfung nämlich MatrNr und PrüfTeil als Fremdschlüssel in die Relationen umfassen und abhalten übernommen werden muss. 18

19 Die relationale Uni-DB Raum Rang Name PersNr 6 C4 Sokrates 15 7 C4 Kant 137 36 C4 Curie 136 309 C3 Augustinus 134 5 C3 Popper 133 310 C3 Kopernikus 17 3 C4 Russel 16 Professoren Semester Name MatrNr 18 Xenokrates 400 Feuerbach 9555 Theophrastos 910 3 Carnap 8106 6 Schopenhauer 7550 8 Aristoxenos 6830 10 Fichte 610 1 Jonas 5403 Studenten 137 4 Die 3 Kritiken 4630 134 Glaube und Wissen 50 133 Der Wiener Kreis 559 gelesen von SWS Titel VorlNr 137 4 Grundzüge 16 Bioethik 516 16 3 Wissenschaftstheorie 505 15 4 Logik 405 15 Mäeutik 5049 16 3 Erkenntnistheorie 5043 15 4 Ethik 5041 Vorlesungen Nachfolger Vorgänger 5041 559 505 505 5041 505 5043 516 5041 5049 5043 voraussetzen 516 8106 50 5403 50 9555 5049 910 5041 910 VorlNr MatrNr 610 910 559 8106 505 8106 5041 8106 405 7550 7550 hören Boss Fachgebiet Name PerslNr 15 Ideenlehre Platon 300 16 Gott und Natur Spinoza 3007 17 Keplersche Gesetze Newton 3006 17 Planetenbewegung Rhetikus 3005 16 Sprachtheorie Wittgenstein 3004 15 Syllogistik Aristoteles 3003 Assistenten Note PersNr VorlNr MatrNr 1 16 8106 137 4630 7550 15 5041 5403 prüfen

0 Rang Raum Name ersnr 6 C4 Sokrates 15 7 C4 Kant 137 36 C4 Curie 136 309 C3 Augustinus 134 5 C3 Popper 133 310 C3 Kopernikus 17 3 C4 Russel 16 Professoren Semester Name MatrNr 18 Xenokrates 400 Feuerbach 9555 Theophrastos 910 3 Carnap 8106 6 Schopenhauer 7550 8 Aristoxenos 6830 10 Fichte 610 1 Jonas 5403 Studenten 137 4 Die 3 Kritiken 4630 134 Glaube und Wissen 50 133 Der Wiener Kreis 559 gelesen Von SWS Titel VorlNr 137 4 Grundzüge 16 Bioethik 516 16 3 Wissenschaftstheorie 505 15 4 Logik 405 15 Mäeutik 5049 16 3 Erkenntnistheorie 5043 15 4 Ethik 5041 Vorlesungen Nachfolger Vorgänger 5041 559 505 505 5041 505 5043 516 5041 5049 5043 voraussetzen 516 8106 50 5403 50 9555 5049 910 5041 910 VorlNr MatrNr 610 910 559 8106 505 8106 5041 8106 405 7550 7550 hören Boss Fachgebiet Name PerslNr 15 Ideenlehre Platon 300 16 Gott und Natur Spinoza 3007 17 Keplersche Gesetze Newton 3006 17 Planetenbewegung Rhetikus 3005 16 Sprachtheorie Wittgenstein 3004 15 Syllogistik Aristoteles 3003 Assistenten Note PersNr VorlNr MatrNr 1 16 8106 137 4630 7550 15 5041 5403 prüfen

Die relationale Algebra σ Selektion π Pojektion x Kreuzprodukt A Join (Verbund) ρ Umbenennung Mengendifferenz Division Vereinigung Mengendurchschnitt F Semi-Join (linker) E Semi-Join (rechter) C linker äußerer Join D rechter äußerer Join 1

Die relationalen Algebra- Operatoren Selektion σ Semester > 10 (Studenten) σ Semester > 10 (Studenten) MatrNr Name Semester 400 Xenokrates 18 5403 Jonas 1 In der Selektion σ F (R) ist das Selektionsprädikat F eine Formel, die aufgebaut ist aus Attributnamen von R und Konstanten =, <, >,,, den logischen Operatoren,, Das Ergebnis von σ F (R) besteht aus allen Tupeln t R, die F erfüllen, wenn jedes Auftreten eines Attributes A durch den Wert t.a ersetzt wird.

Die relationalen Algebra- Operatoren Projektion Π Rang (Professoren) Π Rang (Professoren) Rang C4 C3 Die Projektion wählt (eine oder mehrere) Spalten der Relation aus. Duplikate im Ergebnis werden nur einmal gelistet (aufgrund der Mengensemantik des Relationenkalküls) 3

Die relationalen Algebra- Operatoren MatrNr Studenten Name Semester Vereinigung 400 5403 610 Xenokrates Jonas Fichte Studenten 18 1 10 = MatrNr 400 5403 610 6830 Studenten Name Xenokrates Jonas Fichte Aristoxenos Semester 18 1 10 8 MatrNr Name Semester 7550 Schopenhauer 6 6830 Aristoxenos 8 8106 Carnap 3 7550 Schopenhauer 6 910 Theophrastos 8106 Carnap 3 9555 Feuerbach 910 Theophrastos 9555 Feuerbach Relationen mit gleichem Schema können vereinigt werden. 4

MatrNr 400 5403 610 6830 7550 8106 910 9555 MatrNr 6830 7550 8106 910 9555 1345 Die relationalen Algebra- Studenten Name Semester Xenokrates 18 Jonas 1 Fichte 10 Aristoxenos 8 Schopenhauer 6 Carnap 3 Theophrastos Feuerbach - Studenten Name Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach Waalkes Operatoren Differenz = Studenten MatrNr Name Semester 400 Xenokrates 18 5403 Jonas 1 610 Fichte 10 Semester 8 6 3 Von Relationen mit gleichem Schema kann die Mengendifferenz gebildet werden. 5

Die relationalen Algebra- Operatoren Kartesisches Produkt Professoren x hören PersNr 15 15 137 Professoren hören Name Rang Raum MatrNr VorlNr Sokrates C4 6 610 Sokrates C4 6 9555 Kant C4 7 9555 Das Schema enthält alle Attribute beider Relationen. Die Relation enthält alle n m möglichen Kombinationen der jeweiligen Tupel der beiden Relationen. 6

Die relationalen Algebra- Operatoren Kartesisches Produkt Professoren x hören PersNr 15 15 137 Professoren hören Name Rang Raum MatrNr VorlNr Sokrates C4 6 610 Sokrates C4 6 9555 Kant C4 7 9555 Problem: riesige Zwischenergebnisse Beispiel: (Professoren x hören) "bessere" Operation: Join (siehe unten) 7

Umbenennung Die relationalen Algebra- Operatoren Umbenennung von Relationen Beispiel: Ermittlung indirekter Vorgänger. Stufe der Vorlesung 516 Π V1. Vorgänger( σ V. Nachfolger=516 V1.Nachfolger = V.Vorgänger ( ρ V1 (voraussetzen) x ρ V (voraussetzen))) Umbenennung von Attributen ρ Voraussetzung Vorgänger (voraussetzen) 8

Formale Definition der Algebra Basisausdrücke Relation der Datenbank oder konstante Relationen Operationen Selektion: σ p (E 1 ) Projektion: Π S (E 1 ) Kartesisches Produkt: E 1 x E Umbenennung: ρ V (E 1 ), ρ A B (E 1 ) Vereinigung: E 1 E Differenz: E 1 -E Weitere Operationen können aus diesen zusammengesetzt werden 9

Der natürliche Verbund (Join) Gegeben seien: R(A 1,, A m, B 1,, B k ) S(B 1,, B k, C 1,, C n ) R A S = Π A1,, Am, R.B1,, R.Bk, C1,, Cn (σ R.B1=S. B1 R.Bk = S.Bk (RxS)) A 1 R S A A m B 1 R A S R S B B k C 1 S R C C n 30

Drei-Wege-Join (Studenten A hören) A Vorlesungen (Studenten A hören) A Vorlesungen MatrNr Name Semester VorlNr Titel SWS gelesenvon 610 Fichte 10 Grundzüge 4 137 7550 Jonas 1 50 Glaube und Wissen 134 8106 Carnap 3 405 Wissenschftstheorie 3 16 31

Allgemeiner Join (Theta-Join) Gegeben seien folgende Relationen(-Schemata) R(A1,, An) und S(B1,, Bm) R A θ S = σ θ (R x S) R A θ S A 1 R A A n R A θ S B 1 S B B m 3

natürlicher Join Andere Join-Arten A a 1 L B C b 1 b a c 1 c e 1 R C D E A c 1 = c 3 d 1 d e A a 1 Resultat B C D b 1 c 1 d 1 E e 1 linker äußerer Join A a 1 L B C b 1 b a c 1 c e 1 R C D E C c 1 d 1 = c 3 d e A Resultat B C D E a 1 b 1 c 1 d 1 e 1 a b c - - 33

rechter äußerer Join A a 1 L B C b 1 b a c 1 c e 1 R C D E D c 1 d 1 = c 3 d e A a 1 - Resultat B C D b 1 - c 1 d 1 c 3 d E e 1 e 34

Andere Join-Arten A a 1 äußerer Join L B C b 1 b a c 1 c e 1 R C D E B c 1 d 1 = c 3 d e A Resultat B C D E a 1 b 1 c 1 d 1 e 1 a b c - - - - c 3 d e Semi-Join von L mit R A a 1 L B C b 1 b a c 1 c e 1 R C D E E c 1 = c 3 d 1 d e Resultat A B C a 1 b 1 c 1 35

Andere Join-Arten (Forts.) Semi-Join von R mit L A a 1 L B C b 1 b a c 1 c e 1 R C D E F c 1 = c 3 d 1 d e Resultat C D E c 1 d 1 e 1 36

Die relationale Division Bsp.: Finde MatrNr der Studenten, die alle vierstündigen Vorlesungen hören L := Π VorlNr (σ SWS=4 (Vorlesungen)) L hören Π VorlNr (σ SWS=4 (Vorlesungen)) 37

Definition der Division t R S, falls für jedes ts S ein tr R existiert, so dass gilt: tr.s = ts.s tr.(r-s) = t M m 1 m 1 R V v 1 v m 1 v 3 m v m v 3 S V = v 1 v R S M m 1 Die Division R S kann auch durch Differenz, Kreuzprodukt und Projektion ausgedrückt werden. R S = Π (R S) (R) Π (R S) ((Π (R S) (R) x S) R) 38

Mengendurchschnitt Als Beispielanwendung für den Mengendurchschnitt (Operatorsymbol ) betrachten wir folgende Anfrage: Finde die PersNr aller C4-Professoren, die mindestens eine Vorlesung halten. Π PersNr (ρ PersNr gelesenvon (Vorlesungen)) Π PersNr (σ Rang=C4 (Professoren)) Mengendurchschnitt nur auf zwei Argumentrelationen mit gleichem Schema anwendbar Deshalb ist die Umbenennung des Attribute gelesenvon in PersNr in der Relation Vorlesungen notwendig Der Mengendurchschnitt zweier Relationen R S kann durch die Mengendifferenz wie folgt ausgedrückt weden: R S = R (R S) 39

Der relationale Tupel-kalkül Eine Anfrage im relationalen Tupel-Kalkül hat die Form {t P(t)} mit P(t) Formel. Beispiele: C4-Professoren {p p Professoren p.rang = 'C4'} Studenten mit mindestens einer Vorlesung von Curie {s s Studenten h hören(s.matrnr=h.matrnr v Vorlesungen(h.VorlNr=v.VorlNr p Professoren(p. PersNr=v.gelesenVon p.name = 'Curie')))} 40

Wer hat alle vierstündigen Vorlesungen gehört {s s Studenten v Vorlesungen (v.sws=4 h hören(h.vorlnr=v.vorlnr h.matrnr= s.matrnr))} 41

Definition des Tupelkalküls Atome s R, mit s Tupelvariable und R Relationenname s.a φt.b, mit s und t Tupelvariablen, A und B Attributnamen und φ Vergleichsperator (=,,, ) s. A φ c mit c Konstante Formeln Alle Atome sind Formeln Ist P Formel, so auch P und (P) Sind P 1 und P Formeln, so auch P 1 P, P 1 P und P 1 P Ist P(t) Formel mit freier Variable t, so auch t R(P(t)) und t R(P(t)) 4

Sicherheit Einschränkung auf Anfragen mit endlichem Ergebnis. Die folgende Beispielanfrage {n (n Professoren)} ist nicht sicher, denn das Ergebnis ist unendlich. Lösung durch Zusatzbedingung: Das Ergebnis des Ausdrucks muss Teilmenge der Domäne der Formel sein. Die Domäne einer Formel enthält - alle in der Formel vorkommenden Konstanten - alle Attributwerte von Relationen, die in der Formel referenziert werden 43

Der relationale Domänenkalkül Ein Ausdruck des Domänenkalküls hat die Form {[v 1, v,, v n ] P (v 1,, v n )} mit v 1,, v n Domänenvariablen und P Formel. Beispiel: MatrNr und Namen der Prüflinge von Curie {[m, n] s ([m, n, s] Studenten v, p, g ([m, v, p,g] prüfen a,r, b([p, a, r, b] Professoren a = 'Curie')))} 44

Sicherheit des Domänenkalküls Sicherheit ist analog zum Tupelkakkül zum Beispiel ist {[p,n,r,o] ([p,n,r,o] Professoren) } nicht sicher. Ein Ausdruck {[x 1, x,, x n ] P(x 1, x,, x n )} ist sicher, falls folgende drei Bedingungen gelten: 45

1. Falls Tupel [c 1, c,, c n ] mit Konstante c i im Ergebnis enthalten ist, so muss jedes c i (1 i n) in der Domäne von P enthalten sein.. Für jede existenz-quantifizierte Teilformel x(p 1 (x)) muss gelten, dass P 1 nur für Elemente aus der Domäne von P 1 erfüllbar sein kann - oder evtl. für gar keine. Mit anderen Worten, wenn für eine Konstante c das Prädikat P 1 (c) erfüllt ist, so muss c in der Domäne von P 1 enthalten sein. 3. Für jede universal-quantifizierte Teilformel x(p 1 (x)) muss gelten, dass sie dann und nur dann erfüllt ist, wenn P 1 (x) für alle Werte der Domäne von P 1 erfüllt ist- Mit anderen Worten, P 1 (d) muss für alle d, die nicht in der Domäne von P 1 enthalten sind, auf jeden Fall erfüllt sein. 46

Ausdruckskraft Die drei Sprachen 1. relationale Algebra,. relationaler Tupelkalkül, eingeschränkt auf sichere Ausdrücke und 3. relationaler Domänenkalkül, eingeschränkt auf sichere Ausdrücke sind gleich mächtig. 47