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

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

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

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Das relationale Modell

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Vorlesung Datenbanksysteme vom

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

Das relationale Modell

Wiederholung: Relationale Algebra

Datenbanksysteme 2009

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

Grundlagen des relationalen Modells

Datenbanksysteme SS 2007

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

Datenbanksysteme SS 2007

Grundlagen des relationalen l Modells

Fortsetzung: Projektion Selektion. NULL Werte

Das Relationale Modell

Das Relationale Modell

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

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

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

Relationale Anfragesprachen

DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL UND DAS RELATIONALE MODELL

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

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

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

Rückblick: Datenbankentwurf

Software-Engineering

Relationales Datenmodell Relationale Algebra

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

Software-Engineering

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

Architektur eines DBMS Logische Optimierung

Kapitel 8: Datenintegrität

Das relationale Modell (Teil 1)

Datenbanksysteme 2013

Wiederholung VU Datenmodellierung

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

Transaktionsverwaltung read write read write

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

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

Datenmodellierung. VU , SS 2016 Relationale Abfragesprachen SQL. Nysret Musliu, Sebastian Skritek

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

Datenmodellierung VU Einführung SS 2016

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

Rückblick: Relationales Modell

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

Diskussion: Personal (1)

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Referentielle Integrität

Relationale Abfragesprachen

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

Datenbankentwurf. VO Datenmodellierung. Katrin Seyr. Institut für Informationssysteme Technische Universität Wien.

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

Referentielle Integrität

Schema: konkrete Beschreibung einer bestimmten. (unter Verwendung eines Datenmodells)

Wie definieren wir das Relationen-

Einführung in Datenbanksysteme

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

Query Languages (QL) Relationale Abfragesprachen/Relational

Objektorientierte Datenbanken

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken SQL. Dr. Gerd Gröner Wintersemester 2013/14

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Grundlagen: Datenbanken

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Kapitel 1: Einführung 1.1 Datenbanken?

Informationssysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Sommersemester

Rückblick: Entity-Relationship-Modell

Kap. 3 Relationenmodell mit relationaler Algebra

3. Das Relationale Datenmodell

Termin 12: Datenbanksysteme (2) - Einführung in SQL

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenintegrität. Bisherige Integritätsbedingungen

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 14. Mai 2007 σ KID= 11a (Schüler) π S Name (σ KID= 11a (Schüler))

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14

Einführung, Entity-Relationship Modell 9. DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL

Konzeptuelle Modellierung

Rückblick: Relationales Modell

Das relationale Datenmodell

Datenbanksysteme (1)

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

Relationen-Algebra. Prof. Dr. T. Kudraß 1

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Kapitel 8 Dr. Jérôme Kunegis. SQL Continued. WeST Institute for Web Science & Technologies

Kapitel 3: Datenbanksysteme

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

3. Das Relationale Datenmodell

Kapitel 1: Einführung 1.1 Datenbanken?

Relationenkalkül. Prof. Dr. T. Kudraß 1

Relationale Algebra Datenbanken I (Systemorientierte Informatik IV) Sommersemester Mengenoperationen

Kapitel 2: Das Relationale Modell

Transkript:

Das relationale Modell Datenmodellierung VU 184.685, WS 2016 Das relationale Modell Nysret Musliu, Sebastian Skritek Institut für Informationssysteme Technische Universität Wien Nysret Musliu, Sebastian Skritek Seite 1

Das relationale Modell Acknowledgments Die Folien sind eine kleine Erweiterung der Folien von Katrin Seyr. Nysret Musliu, Sebastian Skritek Seite 2

Das relationale Modell Übersicht Das relationale Modell Umsetzung eines konzeptuellen in ein logisches Schema Übersetzung von EER in relationales Schema Eigenschaften relationaler Schemata Datenabfragesprachen Relationale Algebra Relationenkalkül Ausdruckskraft von Abfragesprachen Nysret Musliu, Sebastian Skritek Seite 3

Das relationale Modell 1. Begriffsklärung Das Relationale Modell: Begriffsklärung Attribute Name Tupel (Zeile) Telefonbuch Name: string Adresse: string TelNr: integer Mickey Mouse Main Street 4711 Minnie Mouse Broadway 94725 Donald Duck Highway 95672......... Schema Ausprägung Feld Nysret Musliu, Sebastian Skritek Seite 4

Das relationale Modell 1. Begriffsklärung Das Relationale Modell: Begriffsklärung Schema: Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Ausprägung { ( Mickey Mouse, Main Street, 4711), ( Minnie Mouse, Broadway, 94725), ( Donald Duck, Highway, 95672) } ACHTUNG: Keine Ordnung! Nysret Musliu, Sebastian Skritek Seite 5

Das relationale Modell 1. Begriffsklärung Relationes Modell: Begriffsklärung Definition (Relation) Seien D 1, D 2,..., D n Domänen (Wertebereiche). Eine Relation (Tabelle) R über D 1, D 2,..., D n ist eine Teilmenge des kartesischen Produkts der Domänen: R D 1 D n n... Stelligkeit der Relation Relationale Datenbank: Menge von Relationen Nysret Musliu, Sebastian Skritek Seite 6

Das relationale Modell 1. Begriffsklärung Relationes Modell: Begriffsklärung Beispiel R string string integer Mickey Mouse Main Street 4711 Minnie Mouse Broadway 94725 Donald Duck Highway 95672......... Nysret Musliu, Sebastian Skritek Seite 7

Das relationale Modell 1. Begriffsklärung Relationes Modell: Begriffsklärung Definition (Tupel) Ein Tupel t (=Zeile) ist ein Element der Relation t R Beispiel t = ( Mickey Mouse, Main Street, 4711) Nysret Musliu, Sebastian Skritek Seite 8

Das relationale Modell 1. Begriffsklärung Relationes Modell: Begriffsklärung Definition (Relationenschema) Das Schema einer Relation besteht aus Name der Relation Liste der Attribute RelName: {[Attr 1 : dom 1,..., Attr n : dom n ]} Beispiel Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Nysret Musliu, Sebastian Skritek Seite 9

Das relationale Modell 1. Begriffsklärung Schlüssel Definition (Schlüssel) Ein Schlüssel ist eine minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren. Anmerkung: Im Allgemeinen mehrere Schlüssel möglich. Ein Schlüsselkandidat wird als Primärschlüssel ausgewählt (Kennzeichnung durch Unterstreichung). Beispiel Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Nysret Musliu, Sebastian Skritek Seite 10

Das relationale Modell 1. Begriffsklärung Begriffsklärung: Fremdschlüssel Fremdschlüssel Ein Fremdschlüssel ist eine Menge von Attributen welche auf den Schlüssel einer (anderen) Relation verweist. Beispiel Raum: {[RaumNr: integer, Bezeichnung: string, Ort: string]} Mitarbeiter: {[PNR: int, Name: string, Raum.RaumNr: integer]} Nysret Musliu, Sebastian Skritek Seite 11

Das relationale Modell 2. Von EER zum relationalen Schema Umsetzung eines konzeptuellen Schemas in ein logisches Schema EER relationales Schema Nysret Musliu, Sebastian Skritek Seite 12

Das relationale Modell 2. Von EER zum relationalen Schema Zusammenfassung: Konzepte Entitytypen Attribute Beziehungstypen Schwache Entities Generalisierung Schlüssel Relationen(schema) Schlüssel Fremdschlüssel schwache Schlüssel Kardinalitäten Nysret Musliu, Sebastian Skritek Seite 13

Das relationale Modell 2. Von EER zum relationalen Schema Von EER zum relationalen Schema: Unischema Beispiel (Unischema) MatrNr Name Semester N voraussetzen M Vorgänger Nachfolger Studenten N hören M Vorlesungen VorlNr SWS N Titel PersNr Fachgebiet N prüfen M lesen Name 1 1 PersNr Name Assistenten Professoren N 1 arbeitenfür Rang Raum Nysret Musliu, Sebastian Skritek Seite 14

Das relationale Modell 2. Von EER zum relationalen Schema 2.1. Entitytypen Relationale Darstellung von Entitytypen E A 1... A i A i+1... A k E: {[ A 1 : typ 1,..., A i : typ i, A i+1 : typ i+1,..., A k : typ k ]} Nysret Musliu, Sebastian Skritek Seite 15

Das relationale Modell 2. Von EER zum relationalen Schema 2.1. Entitytypen Unischema Beispiel (Unischema) MatrNr Name Semester N voraussetzen M Vorgänger Nachfolger Studenten N hören M Vorlesungen VorlNr SWS N Titel PersNr Fachgebiet N prüfen M lesen Name 1 1 PersNr Name Assistenten Professoren N 1 arbeitenfür Rang Raum Nysret Musliu, Sebastian Skritek Seite 16

Das relationale Modell 2. Von EER zum relationalen Schema 2.1. Entitytypen Relationale Darstellung von Entitytypen Relationale Darstellung der vier Entitytypen aus dem Unischema 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]} Nysret Musliu, Sebastian Skritek Seite 17

Das relationale Modell 2. Von EER zum relationalen Schema 2.2. Beziehungstypen Relationale Darstellung von Beziehungstypen A 1 1 E 1... AR 1... R... A 1 k 1 AR kr E n A n k n... A n 1 R : {[E 1.A 1 1,..., E 1.A 1 k }{{} 1,..., E n.a1,..., E n.a n k n, AR 1,..., AR kr ]} }{{}}{{} Schlüssel von E 1 Attribute von R n Schlüssel von E n Nysret Musliu, Sebastian Skritek Seite 18

Das relationale Modell 2. Von EER zum relationalen Schema 2.2. Beziehungstypen Von EER zum relationalen Schema: Unischema Beispiel (Unischema) MatrNr Name Semester N voraussetzen M Vorgänger Nachfolger Studenten N hören M Vorlesungen VorlNr SWS N Titel PersNr Fachgebiet N prüfen M lesen Name 1 1 PersNr Name Assistenten Professoren N 1 arbeitenfür Rang Raum Nysret Musliu, Sebastian Skritek Seite 19

Das relationale Modell 2. Von EER zum relationalen Schema 2.2. Beziehungstypen Relationale Darstellung von Beziehungstypen Relationale Darstellung der Beziehungstypen aus dem Unischema hören: {[MatrNr: integer, VorlNr: integer]} (N:M) lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenfür: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) voraussetzen: {[Vorgänger: integer, Nachfolger: integer]} (N:M) prüfen: {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} (N:M:1) Schlüssel? Nysret Musliu, Sebastian Skritek Seite 20

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen N:M Beziehung (hören) MatrNr Name Semester Titel SWS VorlNr Studenten N hören M Vorlesungen Studenten MatrNr Name 24002 Xenokrates 25403 Jonas 26120 Fichte 26830 Aristoxenos 28106 Carnap 29555 Feuerbach...... hören MatrNr VorlNr 26120 5001 24002 5001 24002 4052...... Vorlesungen VorlNr Titel 5001 Grundzüge 5041 Ethik 5049 Mäeutik 4052 Logik 5216 Bioethik...... Nysret Musliu, Sebastian Skritek Seite 21

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Schlüssel von N:M Beziehungen Schlüssel einer Relation, die aus einer N:M Beziehung entstanden ist, beinhaltet alle Fremdschlüsselattribute der an der Beziehung beteiligten Entities. Beispiele hören: {[MatrNr: integer, VorlNr: integer]} (N:M) voraussetzen: {[Vorgänger: integer, Nachfolger: integer]} (N:M) Nysret Musliu, Sebastian Skritek Seite 22

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen 1:N Beziehung (lesen) PersNr Name Rang Raum Titel SWS VorlNr Professoren 1 N lesen Vorlesungen Professoren PersNrNr Name 2125 Sokrates 2126 Russel 2127 Kopernikus 2133 Popper 2134 Augustinus 2136 Curie lesen PersNr VorlNr 2137 5001 2125 5041 2125 5049 2125 4052 2126 5216...... Vorlesungen VorlNr Titel 5001 Grundzüge 5041 Ethik 5049 Mäeutik 4052 Logik 5216 Bioethik...... Nysret Musliu, Sebastian Skritek Seite 23

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Schlüssel von 1:N Beziehungen Schlüssel einer Relation, die aus einer 1:N Beziehung entstanden ist, beinhaltet jene Fremdschlüsselattribute, die von der N Seite der an der Beziehung beteiligten Entity stammen. Beispiele lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenfür: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) prüfen: {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} (N:M:1) Nysret Musliu, Sebastian Skritek Seite 24

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Verfeinerung von 1:N Beziehungen Wir hatten: Professoren: {[PersNr: integer, Name: string, Rang: string, Raum: integer]} Vorlesungen: {[VorlNr: integer, Titel: string, SWS: integer]} lesen: {[VorlNr: integer, PersNr: integer]} Verfeinerung durch Zusammenfassung von Relationen: Professoren: {[PersNr: integer, Name: string, Rang: string, Raum: integer]} Vorlesungen: {[VorlNr: integer, Titel: string, SWS: integer, Prof.PersNr: integer]} Nur Relationen mit gleichem Schlüssel zusammenfassen! Nysret Musliu, Sebastian Skritek Seite 25

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Ergebnis der richtigen Zusammenfassung PersNr Name Rang Raum Titel SWS VorlNr Professoren 1 N lesen Vorlesungen Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309 2136 Curie C4 36 Vorlesungen VorlNr Titel SWS PersNr 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5049 Mäeutik 2 2125 4052 Logik 4 2125 5216 Bioethik 2 2126............ Nysret Musliu, Sebastian Skritek Seite 26

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Falsches Zusammenfassen führt zu Anomalien Professoren PersNr Name Rang Raum liest 2125 Sokrates C4 226 5041 2125 Sokrates C4 226 5049 2125 Sokrates C4 226 4052 2126 Russel C4 232 5216............... 2136 Curie C4 36??? Vorlesungen VorlNr Titel SWS 5001 Grundzüge 4 5041 Ethik 4 5049 Mäeutik 2 4052 Logik 4 5216 Bioethik 2......... Problem Schlüssel: Relation Professoren braucht neuen Schlüssel Update-Anomalie: Sokrates zieht um Einfüge-Anomalie: Curie ist neu und hält noch keine Vorlesung. Was ist der Schlüssel? Lösch-Anomalie: Vorlesung Ethik fällt weg Nysret Musliu, Sebastian Skritek Seite 27

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Nullwerte und deren Vermeidung Beispiel Studierende, die als StudienassistentInnen arbeiten, bekommen einen Arbeitsraum. Es gibt 25.000 Studierende und 200 StudienassistentInnen. MatrNr Name Semester RaumNr m2 Lage Studenten (0,1) N 1 sitzen Raum Studenten: {[MatrNr, Name, Semester]} sitzen: {[Studenten.MatrNr, Raum.RaumNr]} Raum: {[RaumNr, m2, Lage]} Studenten: {[MatrNr, Name, Semester, Raum.RaumNr]} Hier nicht zusammenfassen um Nullwerte zu vermeiden Nysret Musliu, Sebastian Skritek Seite 28

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen 1:1 Beziehung (sitzen) PersNr Name Rang RaumNr m2 Lage Professoren 1 1 sitzen (1,1) (0,1) Raum Professoren: {[ PersNr, Name, Rang ]} Raum: {[ RaumNr, m2, Lage ]} sitzen: {[ Professoren.PersNr, Raum.RaumNr]} oder {[ Professoren.PersNr, Raum.RaumNr ]} Professoren: {[ PersNr, Name, Rang, Raum.RaumNr ]} Raum: {[ RaumNr, m2, Lage ]} Professoren: {[ PersNr, Name, Rang ]} Raum: {[ RaumNr, m2, Lage, Professoren.PersNr ]} Achtung: Nullwertvermeidung Nysret Musliu, Sebastian Skritek Seite 29

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Verfeinerung bei (min,max)-notation........................ E2.. E1 R En R E 1 E 2 E n Übersetzung ins Relationale Schema: R s : {[key(e 1 ), key(e 2 ),..., key(e n )]} (min,max)-notation: Für jede Entity e i vom Typ E i gilt: min i #Tupel der Art (..., e i,... ) R max i Nysret Musliu, Sebastian Skritek Seite 30

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Verfeinerung bei (min,max)-notation PersNr Name Rang Lage m2 RaumNr Professoren (1,1) (0,1) sitzen Raum Professoren: {[ PersNr, Name, Rang]} Raum: {[ RaumNr, m2, Lage]} sitzen: {[ Professoren.PersNr, Raum.RaumNr]} Professoren: {[PersNr, Name, Rang, Raum.RaumNr]} Raum: {[RaumNr, m2, Lage]} Nysret Musliu, Sebastian Skritek Seite 31

Das relationale Modell 2. Von EER zum relationalen Schema 2.3. Schlüssel von Beziehungstypen Verfeinerung bei (min,max)-notation Die (min,max)-notation gibt an, wie oft eine Entity (des Typs E) in einer Ausprägung eines Beziehungstyps auftreten kann. (0,1) Maximal Einmal Identifiziert Tupel der Beziehung eindeutig. Schlüssel enthält die Fremdschlüsselattribute von E. Zusammenfassen kann zu NULL-Werten führen. (1,1) Genau Einmal Identifiziert Tupel der Beziehung eindeutig. Jede Entity vom Typ E steht in einer Beziehung. Schlüssel enthält die Fremdschlüsselattribute von E. Fasse Beziehung mit der Relation E zusammen. Nysret Musliu, Sebastian Skritek Seite 32

Das relationale Modell 2. Von EER zum relationalen Schema 2.4. Schwache Entitytypen Relationale Darstellung schwacher Entitytypen W 1... W j A 1 W j+1... E R W... A i W k E: {[ A 1,..., A i,a i+1,..., A n ]} W: {[ E.A 1,..., E.A i,w 1,..., W j, W j+1,..., W k ]} Nysret Musliu, Sebastian Skritek Seite 33

Das relationale Modell 2. Von EER zum relationalen Schema 2.4. Schwache Entitytypen Relationale Darstellung schwacher Entitytypen MatrNr Name Semester Note 1 N ablegen Prüfungen PrüfTeil Studenten N N PersNr VorlNr umfassen abhalten Name SWS M M Rang Titel Vorlesungen Professoren Raum Prüfungen: {[Student.MatrNr, PrüfTeil, Note]} umfassen: {[Prüfungen.MatrNr, Prüfungen.PrüfTeil, VorlNr]} abhalten: {[Prüfungen.MatrNr, Prüfungen.PrüfTeil, PersNr]} Nysret Musliu, Sebastian Skritek Seite 34

Das relationale Modell 2. Von EER zum relationalen Schema 2.5. Generalisierung Relationale Darstellung der Generalisierung A i+1... A n A 1 S 1... E S... A i S k E: {[ A 1 : typ 1,..., A i : typ i, A i+1 : typ i+1,..., A k : typ k ]} S: {[ E.A 1 : typ 1,..., E.A i : typ i, S 1 : typ s1,..., S k : typ sk ]} Nysret Musliu, Sebastian Skritek Seite 35

Das relationale Modell 2. Von EER zum relationalen Schema 2.5. Generalisierung Relationale Darstellung der Generalisierung Relationale Darstellung der Generalisierung aus dem Uni Schema Angestellte PersNr is-a Name Rang Fach Assistenten Professoren Raum Angestellte: {[PersNr, Name]} Professoren: {[Angestellte.PersNr, Rang, Raum]} Assistenten: {[Angestellte.PersNr, Fach]} Nysret Musliu, Sebastian Skritek Seite 36

Das relationale Modell 2. Von EER zum relationalen Schema 2.5. Generalisierung Von EER zum relationalen Schema: Unischema Beispiel (Unischema) MatrNr Name Semester N voraussetzen M Vorgänger Nachfolger Studenten N hören M Vorlesungen VorlNr SWS N Titel PersNr Fachgebiet N prüfen M lesen Name 1 1 PersNr Name Assistenten Professoren N 1 arbeitenfür Rang Raum Nysret Musliu, Sebastian Skritek Seite 37

Das relationale Modell 2. Von EER zum relationalen Schema 2.6. Relationale Universitätsdatenbank Relationale Universitätsdatenbank Studenten MatrNr Name Sem 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 27550 Schopenhauer 6 28106 Carnap 3 29120 Theophrastos 2 29555 Feuerbach 2 Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309 2136 Curie C4 36 2137 Kant C4 7 Nysret Musliu, Sebastian Skritek Seite 38

Das relationale Modell 2. Von EER zum relationalen Schema 2.6. Relationale Universitätsdatenbank Relationale Universitätsdatenbank Vorlesungen VorlNr Titel SWS PersNr 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheorie 3 2126 5216 Bioethik 2 2126 5259 Der Wiener Kreis 2 2133 5022 Glaube und Wissen 2 2134 4630 Die drei Kritiken 4 2137 voraussetzen VorgNr NachfNr 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5052 5259 Nysret Musliu, Sebastian Skritek Seite 39

Das relationale Modell 2. Von EER zum relationalen Schema 2.6. Relationale Universitätsdatenbank Relationale Universitätsdatenbank hören MatrNr VorlNr 26120 5001 27550 5001 27550 4052 28106 5041 28106 5001 28106 4052 28106 4630 29120 5001 29120 5041 29120 5049 29555 5022 25403 5022 Assistenten PersNr Name Fachgebiet Boss 3002 Platon Ideenlehre 2125 3003 Aristoteles Syllogistik 2125 3004 Wittgenstein Sprachtheorie 2126 3005 Rhetikus Planetenbewegung 2127 3006 Newton Kepler Gesetze 2127 3007 Spinoza Gott und Natur 2126 prüfen MatrNr VorlNr PersNr Note 28106 5001 2126 1 25403 5041 2125 2 27550 4630 2137 2 Nysret Musliu, Sebastian Skritek Seite 40

Das relationale Modell 3. Datenabfragesprachen Datenabfragesprachen Nysret Musliu, Sebastian Skritek Seite 41

Das relationale Modell 3. Datenabfragesprachen Datenabfragesprachen (Query Languages) In dieser Einheit: Relationale Algebra Relationenkalkül Beide Sprachen Bilden theoretische Grundlage für SQL Sind gleich ausdrucksstark Sind relational abgeschlossen Nysret Musliu, Sebastian Skritek Seite 42

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die relationale Algebra CODD 1970: A relational model for large shared data banks. Communications of the ACM, 13(6): 377-387 CODD 1972: Relational Completeness of Data Base Sublanguages. In: Rustin, R., Hrsg.: Database Systems, 33-64 Prentice Hall, Englewood Cliffs, NY, USA Relational abgeschlossen: das Ergebnis einer Abfrage ist wieder eine Relation Prozedurale Abfragesprache: Ausdruck beinhaltet implizit Abarbeitungsplan zur Ausführung der Abfrage Mengenorientierte Sprache: Operationen arbeiten auf Mengen von Tupeln Nysret Musliu, Sebastian Skritek Seite 43

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Operatoren der relationalen Algebra Basisoperatoren σ: Selektion π: Projektion : Vereinigung : Mengendifferenz : kartesisches Produkt (Kreuzprodukt) ρ: Umbenennung : Join (Verbund), bzw. : linker, rechter bzw. voller äußerer Join bzw. : linker bzw. rechter Semi-Join : Durchschnitt : Division Nysret Musliu, Sebastian Skritek Seite 44

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Selektion und Projektion Studenten MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 26830 Aristoxenos 8 27550 Schopenhauer 6 26120 Fichte 10 28106 Carnap 3 Studenten MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 Studenten MatrNr 24002 25403 26830 27550 26120 28106 Selektion: Wähle Tupel aus Nysret Musliu, Sebastian Skritek Seite 45 Projektion: Wähle Attribute (Spalten) aus

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Selektion: σ F (R) Beispiel Finde alle Studierenden, die mehr als 10 Semester inskribiert sind. σ Semester>10 (Studenten) Studenten MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 27550 Schopenhauer 6 28106 Carnap 3 σ Semester>10 (Studenten) MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 Nysret Musliu, Sebastian Skritek Seite 46

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Selektion: σ F (R) Auswahl von Zeilen der Relation R mittels der Formel F F verwendet Vergleichsoperatoren (=,,,, >, <), logische Operatoren (,, ), Attributnamen von R und Konstanten Definition (σ F (R)) Schema: sch(σ F (R)) = sch(r) Ausprägung: σ F (R) = {t R terfülltf } Auswertung von F für Tupel t: Ersetze alle Attributnamen in F durch entsprechenden Wert in t Nysret Musliu, Sebastian Skritek Seite 47

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Projektion π Ai (R) Beispiel Finde alle Rangbezeichnungen für Professoren. π Rang (Professoren) Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309 2136 Curie C4 36 π Rang (Professoren) Rang C3 C4 Nysret Musliu, Sebastian Skritek Seite 48

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Projektion π Ai (R) Auswahl einer Menge von Spalten A i einer Relation E Achtung: Duplikate werden eliminiert Definition (π Ai (R)) Sei A i eine Teilmenge der Attribute von R Schema: sch(π Ai (R)) = A i Ausprägung: {t t R : t.a i = t } Nysret Musliu, Sebastian Skritek Seite 49

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Vereinigung R S Beispiel Finde die Namen aller Professoren und Assistenten? π Name (Professoren) π Name (Assistenten) π Name(Professoren) Name Sokrates... Curie π Name(Assistenten) Name Platon... Spinoza π Name (Professoren) π Name (Assistenten) Name Sokrates... Kant Platon... Spinoza Nysret Musliu, Sebastian Skritek Seite 50

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Vereinigung R S Definiert auf zwei Relationen R, S mit gleichem Schema Gibt alle Zeilen aus, die in R oder in S vorkommen Definition (R S) Vorbedingung: sch(r) = sch(s) Schema: sch(r S) = sch(r) Ausprägung: {t t R oder t S} Nysret Musliu, Sebastian Skritek Seite 51

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Mengendifferenz R S Beispiel Finde die (Matrikelnummer der) Studierenden, die noch keine Prüfung absolviert haben. π MatrNr (Studenten) π MatrNr (prüfen) π MatrNr (Studenten) MatrNr 24002 25403 26120 26830 27550 28106 29120 29555 π MatrNr (prüfen) MatrNr 28106 25403 27550 π MatrNr (Studenten) π MatrNr (prüfen) MatrNr 24002 26120 26830 29120 29555 Nysret Musliu, Sebastian Skritek Seite 52

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Mengendifferenz R S Definiert auf zwei Relationen R, S mit gleichem Schema Gibt alle Zeilen aus, die in R aber nicht in S vorkommen Definition (R S) Vorbedingung: sch(r) = sch(s) Schema: sch(r S) = sch(r) Ausprägung: {t t R und t / S} Nysret Musliu, Sebastian Skritek Seite 53

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Das Kartesische Produkt R S Beispiel Finde alle Paare von Studenten und Einträgen in hören Studenten hören Studenten hören MatrNr Name Sem hören.matrnr VorlNr 24002 Xenokrates 18 26120 5001 24002 Xenokrates 18 27550 5001............... 24002 Xenokrates 18 25403 5022 25403 Jonas 12 26120 5001............... 29555 Feuerbach 2 29555 5022 29555 Feuerbach 2 25403 5022 Nysret Musliu, Sebastian Skritek Seite 54

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Das Kartesische Produkt R S Verknüpft jede Zeile von R mit jeder Zeile von S Schema von R S ist die Vereinigung der Attribute von R und S Ergebnisgröße: R S = R S Oftmals bessere Operation ist der Join Definition (R S) Sei sch(r) = {[A 1,..., A m ]} und sch(s) = {[B 1,..., B n ]}. Schema: sch(r S) = {[A 1,..., A m, B 1,..., B n ]} (sicherstellen dass kein Attributename doppelt vorkommt) Ausprägung: {t t 1 R : t.[a 1,..., A m ] = t 1 und t 2 S : t.[b 1,..., B n ] = t 2 } Nysret Musliu, Sebastian Skritek Seite 55

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Umbenennung ρ X (R) Beispiel Finde die VorlNr aller Vorlesungen ohne Voraussetzungen ρ VorlNr NachfNr (voraussetzen) Vorlesungen VorlNr Titel SWS PersNr voraussetzen VorgNr NachfNr ρ VorlNr NachfNr (voraussetzen) VorgNr VorlNr π VorlNr (Vorlesungen) π VorlNr (ρ VorlNr NachfNr (voraussetzen)) Nysret Musliu, Sebastian Skritek Seite 56

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Umbenennung ρ X (R) Beispiel Finde die Vorlesungsnummern der Vorlesungen, die indirekte Vorgänger 2. Stufe der VO 5216 sind (= Vorgänger der Vorgänger von 5216) ρ V1 (voraussetzen) ρ V 2 (voraussetzen) voraussetzen VorgNr NachfNr VorgNr V 1 NachfNr voraussetzen VorgNr NachfNr VorgNr ( σ V1.NachfNr=V 2.VorgNr V 2.NachfNr=5216 ( ρv1 (voraussetzen) ρ V 2 (voraussetzen) )) π V1.VorgNr V 2 NachfNr Nysret Musliu, Sebastian Skritek Seite 57

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die Umbenennung ρ X (R) Die Umbenennung von Attributen ρ A B (R): ρ A B (R) benennt das Attribut B der Relation R neu mit A Die Umbenennung von Relationen ρ V (R) Die Relation R bekommt den neuen Namen V Nysret Musliu, Sebastian Skritek Seite 58

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Definition: Ausdrücke der relationalen Algebra Definition (Relationale Algebra) Die Basisausdrücke der relationalen Algebra sind: Relationen der Datenbank oder konstante Relationen Seien R und S Ausdrücke der relationalen Algebra, so sind: σ F (R) und π Ai (R) R S, R S, und R S ρ A B (R) und ρ V (R) ebenfalls gültige Ausdrücke der relationalen Algebra. Nysret Musliu, Sebastian Skritek Seite 59

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Ausdrücke der relationalen Algebra Beispiel π Name (σ R1.MN=St.MN ((π MN (Student) π MN (hören)) Student)) π Name (Professoren) π Name π Name σ R1.MatrNr=Student.MatrNr Professoren Student π MatrNr Student π MatrNr hören Nysret Musliu, Sebastian Skritek Seite 60

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Ausdrücke der relationalen Algebra Beispiel π Name (σ R1.MN=St.MN ((π MN (Student) π MN (hören)) Student)) π Name (Professoren) π Name π Name (σ R1.MN=St.MN (... )) σ R1.MN=St.MN σ R1.MN=St.MN ((... ) Student) π Name π Name (Professoren) Professoren (π MN (Student) π MN (hören)) Student Student π MatrNr(... π ) π MatrNr(... π ) Student hören Nysret Musliu, Sebastian Skritek Seite 61

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Der natürliche Verbund (Join) R S Beispiel Welche Studenten besuchen welche Vorlesungen? σ Studenten.MatrNr=hören.MatrNr (Studenten hören) Studenten hören Studenten MatrNr Name Sem 24002 Xenokrates 18......... hören MatrNr VorlNr 26120 5001...... Studenten hören MatrNr Name Sem VorlNr 26120 Fichte 10 5001 27550 Schopenhauer 6 5001 27550 Schopenhauer 6 4052 28106 Carnap 3 5041 28106 Carnap 3 5001............ Nysret Musliu, Sebastian Skritek Seite 62

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Der natürliche Verbund (Join) R S Verknüpft zwei Relationen R, S. 1 Bildet das kartesische Produkt der Relationen 2 Selektiert jene Tupel, die auf den gleichnamigen Spalten denselben Wert annehmen 3 Projiziert die doppelt vorkommenden Spalten weg R S R S R S S R A 1 A 2... A m B 1 B 2... B k C 1 C 2... C n.................................... Nysret Musliu, Sebastian Skritek Seite 63

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Der natürliche Verbund (Join) R S Definition (Natürlicher Verbund) Seien R, S mit folgenden Schemata gegeben: R(A 1,..., A m, B 1,... B k ) und S(B 1,... B k, C 1,... C n ). Der natürliche Verbund ist definiert als R S = π A1,...A m,r.b 1,...R.B k,c 1,...C n σ R.B1 =S.B 1 R.B k =S.B k (R S) R S R S R S S R A 1 A 2... A m B 1 B 2... B k C 1 C 2... C n.................................... Nysret Musliu, Sebastian Skritek Seite 64

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Bsp: Der natürliche Join Welche Studierende besuchen welche Vorlesungen? Studenten MatrNr Name Sem 24002 Xenokrates 18 25403 Jonas 12......... hören MatrNr VorlNr 26120 5001 27550 5001...... Vorlesungen VorlNr Titel SWS PersNr 5001 Grundzüge 4 2137 5041 Ethik 4 2125............ Nysret Musliu, Sebastian Skritek Seite 65

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Bsp: Der natürliche Join Studenten hören Vorlesung MatrNr Name Sem VorlNr Titel SWS PersNr 26120 Fichte 10 5001 Grundzüge 4 2137 27550 Schopenhauer 6 5001 Grundzüge 4 2137 27550 Schopenhauer 6 4052 Logik 4 2125 28106 Carnap 3 5041 Ethik 4 2125 28106 Carnap 3 5001 Grundzüge 4 2137 28106 Carnap 3 4052 Logik 4 2125 28106 Carnap 3 4630 Die drei Kritiken 4 2137 29120 Theophrastos 2 5001 Grundzüge 4 2137 29120 Theophrastos 2 5041 Ethik 4 2125 29120 Theophrastos 2 5049 Mäeutik 2 2125 29555 Feuerbach 2 5022 Glaube und Wissen 2 2134 25403 Jonas 12 5022 Glaube und Wissen 2 2134 Nysret Musliu, Sebastian Skritek Seite 66

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Der allgemeine Verbund (Join) R θ S Verknüpft zwei Relationen R, S, auch wenn sie keine gleichnamigen Attribute haben aufgrund einer logischen Bedingung θ. Definition Seien R und S mit folgenden Schemata gegeben: R(A 1,..., A n ) und S(B 1,..., B m ). Sei θ ein Prädikat über den Attributen A 1,..., A n, B 1,..., B m. Der allgemeine Verbund ist definiert als R θ S = σ θ (R S) Nysret Musliu, Sebastian Skritek Seite 67

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Der allgemeine Verbund (Join) R θ S Verknüpft zwei Relationen R, S, auch wenn sie keine gleichnamigen Attribute haben aufgrund einer logischen Bedingung θ. Beispiele (θ) θ = Sem > 10 SWS = 4 PersNr = 2134 θ = Student.MatrNr = hören.matrnr hören.vorlnr = Vorlesungen.VorlNr θ = Vorlesungen.VorlNr = voraussetzen.vorgnr Nysret Musliu, Sebastian Skritek Seite 68

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Andere Join Arten natürlicher Join (Wh): nur jene Tupel bleiben im Ergebnis, die einen Join-Partner gefunden haben. L A B C a 1 b 1 c 1 a 2 b 2 c 2 R C D E c 3 d 2 e 2 c 1 d 1 e 1 = R L A B C D E a 1 b 1 c 1 d 1 e 1 voller äußerer Join: alle Tupel bleiben erhalten L A B C a 1 b 1 c 1 a 2 b 2 c 2 R C D E c 3 d 2 e 2 c 1 d 1 e 1 = R L A B C D E a 1 b 1 c 1 d 1 e 1 a 2 b 2 c 2 NULL NULL NULL NULL c 3 d 2 e 2 Nysret Musliu, Sebastian Skritek Seite 69

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Andere Join Arten: Linker/Rechter äußerer Join linker äußerer Join: Tupel der linken Relation bleiben erhalten L A B C a 1 b 1 c 1 a 2 b 2 c 2 R C D E c 3 d 2 e 2 c 1 d 1 e 1 = R L A B C D E a 1 b 1 c 1 d 1 e 1 a 2 b 2 c 2 NULL NULL rechter äußerer Join: Tupel der rechten Relation bleiben erhalten L A B C a 1 b 1 c 1 a 2 b 2 c 2 R C D E c 3 d 2 e 2 c 1 d 1 e 1 = R L A B C D E a 1 b 1 c 1 d 1 e 1 NULL NULL c 3 d 2 e 2 Nysret Musliu, Sebastian Skritek Seite 70

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Andere Join Arten: Semi-Join Semi-Join von L mit R (bzw. R mit L): alle Tupel der Relation L (bzw. R), die einen Join eingehen können, werden ausgewählt. L A B C a 1 b 1 c 1 a 2 b 2 c 2 R C D E c 3 d 2 e 2 c 1 d 1 e 1 = L R A B C a 1 b 1 c 1 L A B C a 1 b 1 c 1 a 2 b 2 c 2 R C D E c 3 d 2 e 2 c 1 d 1 e 1 = L R C D E c 1 d 1 e 1 Nysret Musliu, Sebastian Skritek Seite 71

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Der Mengendurchschnitt R S Beispiel Definiert auf zwei Relationen R, S mit gleichem Schema Gibt alle Zeilen aus, die in R und in S vorkommen Kann mittels Mengendifferenz ausgedrückt werden: R S = R (R S) Finde die PersNr jener C4 Professoren, die eine Vorlesung halten. π PersNr (Vorlesungen) π PersNr σ Rang=C4 (Professoren) PersNr 2137 2125 2126 2137 Nysret Musliu, Sebastian Skritek Seite 72

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die relationale Division R S Beispiel Welche Studierenden haben alle 4-stündigen Vorlesungen gehört? hören MatrNr VorlNr 26120 5001 27550 5001 27550 4052 28106 5041 28106 5001 28106 4052 28106 4630 29120 5001 29120 5041 29120 5049 hören π VorlNr σ SWS=4 (Vorlesungen) π VorlNr σ SWS=4 (Vorlesungen) VorlNr 5001 5041 4052 4630 = R S MatrNr 28106 Nysret Musliu, Sebastian Skritek Seite 73

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die relationale Division R S Definiert auf zwei Relationen R, S Schema von S muss Teilmenge von Schema von R sein Ergebnisschema: Attribute von R ohne jenen von S Ergebnis enthält alle Tupel von π R S (R) die mit jedem Tupel in S ein Tupel in R bilden Gegenstück zum kartesischen Produkt: T = U V T U = V und T V = U Kann ausgedrückt werden als R S = π R S (R) π R S ((π R S (R) S) R) Nysret Musliu, Sebastian Skritek Seite 74

Das relationale Modell 3. Datenabfragesprachen 3.1. Die relationale Algebra Die relationale Division R S Definition Seien R, S Relationen, mit S R. Tupel t R S wenn es für jedes Tupel s S ein Tupel r R gibt, mit: r.s = s r.(r S) = t Nysret Musliu, Sebastian Skritek Seite 75

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Übersicht Datenabfragesprachen Relationale Algebra Relationenkalkül Ausdruckskraft von Abfragesprachen Nysret Musliu, Sebastian Skritek Seite 76

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der Relationenkalkül Deklarative Abfragesprache: spezifiziert, welche Daten gefordert sind, nicht, wie sie erhalten werden Mengenorientierte Sprache: Operationen arbeiten auf Mengen von Tupeln Relational abgeschlossen: das Ergebnis einer Abfrage ist wieder eine Relation Die Anfragen im Relationenkalkül sind von der Form: {t P(t)} wobei P(t) eine Formel ist. Es gibt zwei unterschiedliche, aber gleichmächtige Ausprägungen: der relationale Tupelkalkül der relationale Domänenkalkül Nysret Musliu, Sebastian Skritek Seite 77

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Beispiele Professoren(PersNr, Name, Rang, Raum) Finde alle C4-Professoren: {p p Professoren p.rang = C4 } Finde die Namen aller C4-Professoren: {[p.name] p Professoren p.rang = C4 } Nysret Musliu, Sebastian Skritek Seite 78

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Beispiele Professoren(PersNr, Name, Rang, Raum) Assistenten(PersNr, Name, GebDatum, Boss) Finde Paare von Professoren und die ihnen zugeordneten Assistenten: {[p.name, a.persnr] p Professoren a Assistenten p.persnr = a.boss} Nysret Musliu, Sebastian Skritek Seite 79

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Beispiele Studenten(MatrNr, Name, Semester) hören(matrnr, VorlNr) Vorlesungen(VorlNr, Titel, SWS, gelesenvon) Studenten die mindestens eine Vorlesung besuchen: {s s Studenten h hören(s.matrnr = h.matrnr)} MatrNr der Studierenden die alle Vorlesungen besuchen: {[s.matrnr] s Studenten v Vorlesungen( h hören(h.vorlnr = v.vorlnr h.matrnr = s.matrnr))} Nysret Musliu, Sebastian Skritek Seite 80

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Beispiele Studenten(MatrNr, Name, Semester) hören(matrnr, VorlNr) Vorlesungen(VorlNr, Titel, SWS, gelesenvon) Professoren(PersNr, Name, Rang, Raum) Studenten die mindestens eine Vorlesung von Curie besuchen: {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 )))} Nysret Musliu, Sebastian Skritek Seite 81

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Beispiele Studenten(MatrNr, Name, Semester) Vorlesungen(VorlNr, Titel, SWS, gelesenvon) hören(matrnr, VorlNr) Studenten die alle vierstündigen Vorlesungen besuchten: {s s Studenten v Vorlesungen(v.SWS 4 h hören(h.vorlnr = v.vorlnr h.matrnr = s.matrnr))} Nysret Musliu, Sebastian Skritek Seite 82

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Beispiele Studenten(MatrNr, Name, Semester) Assistenten(PersNr, Name, GebDatum, Boss) Professoren(PersNr, Name, Rang, Raum) Personalnummern aller Professoren und Assistenten: {[p.persnr] p Professoren p Assistenten} Namen die sowohl Assistenten als auch Studenten tragen: {[p.name] p Assistenten s Studenten( p.name = s.name)} Nysret Musliu, Sebastian Skritek Seite 83

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Beispiele Assistenten(PersNr, Name, GebDatum, Boss) Professoren(PersNr, Name, Rang, Raum) Alle Assistenten die keine Professoren sind: {a a Assistenten p Professoren( p.persnr = a.persnr)} {a a Assistenten p Professoren( p.persnr a.persnr} Nysret Musliu, Sebastian Skritek Seite 84

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Definition (Syntax) Die Anfragen des relationalen Tupelkalküls sind von der Form: {t P(t)} t... Tupelvariable (oder Tupelkonstruktor); P(t)... Formel. Formeln werden aus Atomen zusammengebaut (siehe Definition). Definition (Semantik) Ein Tupel t ist im Ergebnis, wenn es die Formel P(t) erfüllt. Die Variable t ist eine freie Variable der Formel P(t), ist also nicht durch einen Quantor (, ) gebunden. Nysret Musliu, Sebastian Skritek Seite 85

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Tupelkalkül Definition (Syntax: Atome und Formeln) Atome: t R : s.aφt.b : Formeln: s.aφc : t Tupelvariable; R Relationenname s und t Tupelvariablen; A und B Attributnamen; φ ein Vergleichsperator (=,, <,, >, ) wie oben, aber c Konstante Atome sind Formeln P Formel, so sind auch P und (P) Formeln P 1, P 2 Formeln, so sind auch P 1 P 2, P 1 P 2 und P 1 P 2 Formeln P(t) Formel mit einer freien Variable t, so sind auch t R(P(t)) und t R(P(t)) Formeln Nysret Musliu, Sebastian Skritek Seite 86

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Sichere Ausdrücke im Tupelkalkül Anfragen können unter Umständen eine unendliche Ergebnismenge spezifizieren: Beispiel {n (n Professoren)} gibt alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon können wir uns unendlich viele vorstellen. Nysret Musliu, Sebastian Skritek Seite 87

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Sichere Ausdrücke im Tupelkalkül Definition (Domäne eines Ausdrucks) Die Domäne einer Formel enthält alle in der Formel vorkommenden Konstanten und alle Attributwerte von Relationen, die in der Formel referenziert werden. Definition (Sichere Ausdrücke) Ein Ausdruck des Tupelkalküls heißt sicher, wenn das Ergebnis des Ausdrucks eine Teilmenge der Domäne ist. Nysret Musliu, Sebastian Skritek Seite 88

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Professoren(PersNr, Name, Rang, Raum) Finde alle C4-Professoren: {[p, n, r, o] ([p, n, r, o] Professoren r = C4 )} Finde die Namen aller C4-Professoren: {[n] p, o, r([p, n, r, o] Professoren r = C4 )} Nysret Musliu, Sebastian Skritek Seite 89

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Professoren(PersNr, Name, Rang, Raum) Assistenten(PersNr, Name, GebDatum, Boss) Finde Paare von Professoren und die ihnen zugeordneten Assistenten: {[n, a] p, r, o([p, n, r, o] Professoren m, f ([a, m, f, p] Assistenten))} Nysret Musliu, Sebastian Skritek Seite 90

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Studenten(MatrNr, Name, Semester) hören(matrnr, VorlNr) Vorlesungen(VorlNr, Titel, SWS, gelesenvon) Studierende die mindestens eine Vorlesung besuchen: {[m, n] s([m, n, s] Studenten v([m, v] hören))} MatrNr der Studierenden die alle Vorlesungen besuchen: {[m] n, s([m, n, s] Studenten v, t, s, p ([v, t, s, p] Vorlesungen [m, v] hören)} Nysret Musliu, Sebastian Skritek Seite 91

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Studenten(MatrNr, Name, Semester) hören(matrnr, VorlNr) Vorlesungen(VorlNr, Titel, SWS, gelesenvon) Professoren(PersNr, Name, Rang, Raum) Name und MatrNr von Studenten die mindestens eine Vorlesung von Curie besuchen: {[m, n] s([m, n, s] Studenten v([m, v] hören t, d, p([v, t, d, p] Vorlesungen a, r, u([p, a, r, u] Professoren a = Curie )))} Nysret Musliu, Sebastian Skritek Seite 92

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Studenten(MatrNr, Name, Semester) hören(matrnr, VorlNr) Vorlesungen(VorlNr, Titel, SWS, gelesenvon) Professoren(PersNr, Name, Rang, Raum) Name und MatrNr von Studenten die mindestens eine Vorlesung von Curie besuchen: {[m, n] s, v, t, d, p, r, u([m, n, s] Studenten [m, v] hören [v, t, d, p] Vorlesungen [p, Curie, r, u] Professoren)))} Nysret Musliu, Sebastian Skritek Seite 93

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Studenten(MatrNr, Name, Semester) hören(matrnr, VorlNr) Vorlesungen(VorlNr, Titel, SWS, gelesenvon) Name und MatrNr von Studenten die alle vierstündigen Vorlesungen besuchen: {[m, n] s([m, n, s] Studenten v, t, s, p(([v, t, s, p] Vorlesungen s = 4) [m, v] hören)} Nysret Musliu, Sebastian Skritek Seite 94

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Studenten(MatrNr, Name, Semester) Assistenten(PersNr, Name, GebDatum, Boss) Professoren(PersNr, Name, Rang, Raum) Personalnummern aller Professoren und Assistenten: {[p] ( n, g, b([p, n, g, b] Assistenten) ( r, a([p, n, r, a] Professoren)} Namen die sowohl Assistenten als auch Studenten tragen: {[n] p, g, b, m, s( [p, n, g, b] Assistenten [m, n, s] Studenten)} Nysret Musliu, Sebastian Skritek Seite 95

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Beispiele Assistenten(PersNr, Name, GebDatum, Boss) Professoren(PersNr, Name, Rang, Raum) Alle Assistenten die keine Professoren sind: {[p] n, g, b ([p, n, g, b] Assistenten n, r, a([p, n, r, a] Professoren))} {[p] n, g, b ([p, n, g, b] Assistenten n, r, a( ([p, n, r, a] Professoren)))} Nysret Musliu, Sebastian Skritek Seite 96

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Definition (Syntax) Die Anfragen des relationalen Domänenkalküls sind von der Form: {[v 1, v 2,..., v n ] P(v 1, v 2,..., v n )} v 1, v 2,..., v n... Domänenvariablen, die einen Attributwert repräsentieren; P(v 1, v 2,..., v n ) eine Formel. Formeln werden aus Atomen zusammengebaut (siehe Definition). Definition (Semantik) Ein Tupel [v 1, v 2,..., v n ] ist im Ergebnis, wenn es die Formel P(v 1, v 2,..., v n ) erfüllt. Die Variablen v 1, v 2,..., v n sind freie Variablen der Formel P(v 1, v 2,..., v n ) also nicht durch einen Quantor (, ) gebunden. Nysret Musliu, Sebastian Skritek Seite 97

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Der relationale Domänenkalkül Definition (Syntax: Atome und Formeln) Atome: [v 1,..., v n ] R : v 1, v 2,..., v n Domänenvariablen; R ein n-stelliger Relationenname Formeln: xφy : xφc : x, y Domänenvariablen; φ ein Vergleichsperator (=,, <,, >, ) wie oben, aber c Konstante Atome sind Formeln P Formel, so sind auch P und (P) Formeln P 1, P 2 Formeln, so auch P 1 P 2, P 1 P 2 und P 1 P 2 P(v) Formel mit freien Variablen v, so sind auch v(p(v)) und v(p(v)) Formeln Nysret Musliu, Sebastian Skritek Seite 98

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Sichere Ausdrücke im Domänenkalkül Anfragen können unter Umständen wieder eine unendliche Ergebnismenge spezifizieren: Beispiel {[p, n, r, o] ([p, n, r, o] Professoren)} gibt wieder alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon können wir uns unendlich viele vorstellen. Nysret Musliu, Sebastian Skritek Seite 99

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Sichere Ausdrücke im Domänenkalkül Definition (Sichere Ausdrücke) Ein Ausdruck {[x 1, x 2,..., x n ] P(x 1, x 2,..., x n )} ist sicher, falls: Für jedes Tupel [c 1, c 2,..., c n ] im Ergebnis: c i (1 i n) ist in der Domäne von P enthalten Für jede Teilformel xp 1 (x): Wenn Konstante c das Prädikat P(c) erfüllt, dann ist c in der Domäne von P 1 enthalten Für jede Teilformel xp 1 (x): dann und nur dann erfüllt, wenn P 1 (x) für alle Werte der Domäne von P 1 erfüllt ist (2. und 3. im Tupelkalkül automatisch erfüllt!) Nysret Musliu, Sebastian Skritek Seite 100

Das relationale Modell 3. Datenabfragesprachen 3.2. Der Relationenkalkül Vergleich: Tupel- und Domänenkalkül Beispiel Gesucht sind Studierende, die mindestens eine Vorlesung besuchen: Studenten(MatrNr, Name, Semester) hören(matrnr, VorlNr) Tupelkalkül: {s s Studenten h hören(s.matrnr = h.matrnr)} Domänenkalkül: {[m, n, s] [m, n, s] Studenten v([m, v] hören)} Nysret Musliu, Sebastian Skritek Seite 101

Das relationale Modell 3. Datenabfragesprachen 3.3. Ausdruckskraft der Abfragesprachen Ausdruckskraft der Abfragesprachen Die drei Sprachen relationale Algebra, relationaler Tupelkalkül, eingeschränkt auf sichere Ausdrücke und relationaler Domänenkalkül, eingeschränkt auf sichere Ausdrücke sind gleich mächtig Wichtig: SQL ist ebenfalls gleich mächtig (mit bestimmten Einschränkungen) Nysret Musliu, Sebastian Skritek Seite 102

Das relationale Modell 3. Datenabfragesprachen 3.3. Ausdruckskraft der Abfragesprachen Beispiel: Sport (aus: Formale Modellierung) P F U = {Mensch/1, Sportart/1, Anstrengend/1, Betreibt/2} = {handball/0, laufen/0} = {Maria, Martina, Max, Moritz, Basketball, Fußball, Handball, Schach, Singen, Slackline, Turnen, Laufen} I (Mensch) = {Martina, Max, Moritz } I (Sportart) = {Basketball, Fußball, Schach, Turnen } I (Anstrengend) = {Laufen, Basketball, Handball, Singen } I (Betreibt) I (handball) I (laufen) Beispiel = {(Maria, Handball), (Maria, Singen), (Maria, Fußball), (Martina, Laufen), (Martina, Slackline), (Martina, Basketball), (Max, Schach), (Max, Laufen), (Max, Turnen), (Moritz, Laufen), (Moritz, Handball) } = Handball = laufen x(sportart(x) y(mensch(y) Betreibt(y, x))) Nysret Musliu, Sebastian Skritek Seite 103

Das relationale Modell 3. Datenabfragesprachen 3.3. Ausdruckskraft der Abfragesprachen Beispiel: Sport (aus: Formale Modellierung) P = {Mensch/1, Sportart/1, Anstrengend/1, Betreibt/2} I (Mensch) = {Martina, Max, Moritz } I (Sportart) = {Basketball, Fußball, Schach, Turnen } I (Anstrengend) = {Laufen, Basketball, Handball, Singen } I (Betreibt) = {(Maria, Handball), (Maria, Singen), (Maria, Fußball), (Martina, Laufen), (Martina, Slackline), (Martina, Basketball), (Max, Schach), (Max, Laufen), (Max, Turnen), (Moritz, Laufen), (Moritz, Handball) } Beispiel x(sportart(x) y(mensch(y) Betreibt(y, x))) {(x) (Sportart(x) y(mensch(y) Betreibt(y, x)))} {[x] ([x] Sportart y([y] Mensch ([y, x] Betreibt)))} Nysret Musliu, Sebastian Skritek Seite 104