Datenbanksysteme SS 2007



Ähnliche Dokumente
Datenbanksysteme 2009

Datenbanksysteme SS 2007

Entity Relationship Modell

Vorlesung Datenbanksysteme vom

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

Wiederholung: Relationale Algebra

Wiederholung: Relationale Algebra

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.

Fortsetzung: Projektion Selektion. NULL Werte

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

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

Grundlagen des relationalen Modells

Das relationale Modell

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

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.

Grundlagen des relationalen Modells

Architektur eines DBMS Logische Optimierung

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

Aufgabensammlung SQL SW4 1. Einfache Anfragen

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

Relationale Anfragesprachen

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

Grundlagen des relationalen Modells

Das relationale Modell

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

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

Das Relationale Modell

DATENBANKSYSTEME: SQL

Teil 1: Deduktive Datenbanken Gerd Stumme Christoph Schmitz

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

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

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

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

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

Datenbanksysteme SS 2007

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

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

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

Anfragebearbeitung 1. Vorlesung Datenbanksysteme vom

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

Referentielle Integrität

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

Transaktionsverwaltung read write read write

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

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

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

Grundlagen des relationalen l Modells

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

Referentielle Integrität

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

Datenintegrität. Kapitel 5 1

Diskussion: Personal (1)

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

Datenintegrität. Bisherige Integritätsbedingungen

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

Datenbanksysteme 2013

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

Wiederholung VU Datenmodellierung

Software-Engineering

Wiederholung VU Datenmodellierung

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

Software-Engineering

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

Diskussion: Personal (1)

Kapitel 8: Datenintegrität

Datenmodellierung. VU , SS 2015 Relationale Abfragesprachen SQL. Sebastian Skritek

DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL UND DAS RELATIONALE MODELL

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

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

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

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

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Übungen zu Datenbanksysteme

Datenintegrität. Kapitel 5 1

Das Relationale Modell

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

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

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

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

Datenbanksysteme (2) Einführung in SQL

Datenbanksysteme (1)

Objektorientierte Datenbanken

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

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

Transkript:

Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück

Kapitel 6b: Das relationale Modell

Das Relationale Modell (vgl. Lerneinheit 6a) Wertebereiche (Domänen): D 1, D 2,,..., D n Relation: R D 1 D 2... D n Wertebereich von Attribut A: dom(a) Relation: R dom (A 1 ) dom (A 2 )... dom (A n ) Element von R: Tupel Schema der Relation: sch(r) = A 1, A 2,..., A n aktuelle Ausprägung: R Bei DBS zusätzlich zum Wertebereich noch Bezeichner: Telefonbuch : { [Name : string, Adresse: string, TelefonNr : integer] } Telefonbuch : { [Name, Adresse, TelefonNr ] }

Konzeptuelles Schema Universität (vgl. Lerneinheit 6a) voraussetzen Vorgänger N Nachfolger M MatrNr N M VorlNr Name Studenten hören Vorlesungen SWS Sem M N N Titel Note prüfen lesen 1 1 Fachgebiet Assistenten N arbeitenfür 1 Professoren Rang Raum is-a PersNr Name Angestellte

Studenten :{[ MatrNr : integer, Name : string, Semester : integer ]} Vorlesungen Professoren Assistenten :{[ VorlNr : integer, Titel : string, SWS : integer, gelesenvon : integer ]} :{[ PersNr : integer, Name : string, Rang : string, Raum : integer ]} :{[ PersNr : integer, Name : string,fachgebiet : string, Boss : integer ]} hören :{[ MatNr : integer, VorlNr : integer ]} voraussetzen : {[ Vorgänger : integer, Nachfolger : integer ]} prüfen Relationenschema (vgl. Lerneinheit 6a) :{[ MatrNr : integer, VorlNr : integer, PersNr : integer, Note : decimal ]}

Ausprägung: Professoren und Assistenten (vgl. Lerneinheit 6a) Professoren Assistenten 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 PersNr Name Fachgebiet Boss 3002 Platon Ideenlehre 2125 3003 Aristoteles Syllogistik 2125 3004 Wittgenstein Sprachtheorie 2126 3005 Rhetikus Planetenbewegung 2127 3006 Newton Keplersche Gesetze 2127 3007 Spinoza Gott und Natur 2134

Ausprägung: Vorlesungen und Studenten (vgl. Lerneinheit 6a) Vorlesungen VorlNr Titel SWS gelesenvon 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 3 Kritiken 4 2137 Studenten MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 27550 Schopenhauer 6 28106 Carnap 3 29120 Theophrastos 2 29555 Feuerbach 2

Ausprägung: hören, voraussetzen und prüfen (vgl. Lerneinheit 6a) voraussetzen hören Vorgänger Nachfolger MatrNr VorlNr 26120 5001 27550 5001 27550 4052 27550 5041 28106 4052 28106 5216 28106 5259 27550 4630 29120 5041 29120 5049 29555 5022 25403 5022 29555 5001 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5052 5259 prüfen MatrNr VorlNr PersNr Note 28106 5001 2126 1.0 25403 5041 2125 2.0 27550 4630 2137 2.0

Relationenalgebra (vgl. Lerneinheit 6a) Operanden = Relationen Operatoren: Selektion (σ) Projektion (Π) Vereinigung ( ) Mengendifferenz ( ) Kartesisisches Produkt ( ) Umbenennung (ρ) abgeleitete Operatoren: Verbund (, θ,,, ) Durchschnitt ( ) Division ( ) minimale Operatormenge (vgl. folgende Argumentation)

Relationenalgebra (Warum ist Operatormenge σ, Π,,,, ρ minimal? Argumentation kein Beweis!) Die Umbenennung (ρ) kann nicht durch eine der anderen fünf Operatoren ersetzt werden. ρ hat zudem keinen Einfluss auf die Darstellung eines der anderen Operatoren mithilfe der noch verbleibenden fünf. Daher wird auf ρ im Folgenden nicht weiter eingegangen. es verbleiben also die Operatoren σ, π,,,. Das kartesische Produkt ( ) kann nicht von den anderen vier Operatoren simuliert werden, da σ, π, und ein Schema nicht erweitern können. Analoges Argument gilt für die Projektion (π), da keiner der Operatoren σ, und ein Schema reduzieren kann.

Relationenalgebra (Warum ist Operatormenge σ, Π,,,, ρ minimal? Argumentation kein Beweis!) Die Selektion (σ) kann höchstens durch simuliert werden, jedoch testet dieser Operator nur auf Gleichheit ganzer Tupel und nicht auf beliebige Vergleiche durch Formeln, die sich auf Komponenten von Tupeln beziehen. σ kann umgekehrt das Minus ( ) nicht simulieren, da σ die "Negation" auf Relationen nicht darstellen kann. Es gibt keine Möglichkeit, die Vereinigung ( ) von z.b. zwei einelementigen Relationen durch die Operatoren σ, π, und darzustellen.

Relationenkalkül relationale Algebra (konstruktiv) relationale Kalküle (deklarativ) Der relationale Tupelkalkül (binde freie Variable an Tupel) Der relationale Domänenkalkül (binde freie Variable an Domäne)

Der relationale Tupelkalkül Sei t eine Tupelvariable (repräsentiert ein Tupel einer Relation) und P ein Prädikat unter Verwendung von Ein Ausdruck im relationalen Tupelkalkül hat die Form { t P(t) } t ist eine freie Variable, die unter Berücksichtigung des Prädikats sukzessive an die Tupel einer Relation gebunden wird.

Der relationale Tupelkalkül Alle C4-Professoren: { p p Professoren p.rang = 'C4' } Alle Professoren mit den Personalnummern ihrer Assistenten: { [ p.name, a.persnr ] p Professoren a Assistenten p.persnr = a.boss } Alle Studenten, die sämtliche 4-stündigen Vorlesungen hören: { s s Studenten v Vorlesungen ( v.sws=4 h hören ( h.vorlnr = v.vorlnr h.matrnr = s.matrnr ) ) }

Tupelkalkül vs. Relationenalgebra Sicherer Ausdruck: Resultat ist wieder Teilmenge der Domäne. Beispielsweise nicht sicher: { n (n Professoren) } Bei Beschränkung auf sichere Ausdrücke sind Tupelkalkül und relationale Algebra gleichmächtig.

Der relationale Domänenkalkül Seien v 1, v 2,..., v n Domänenvariable (repräsent. Attributwerte) Sei P ein Prädikat unter Verwendung von Ein Ausdruck im relationalen Domänenkalkül hat die Form { [v 1, v 2,..., v n ] P (v 1, v 2,..., v n ) } v 1, v 2,..., v n sind freie Domänenvariablen, die sukzessive unter Berücksichtigung des Prädikats an Wertebereiche der Attribute gebunden werden.

Der relationale Domänenkalkül Alle Namen der Professoren mit den Personalnummern ihrer Assistenten: { [n,a] p, r, t ( [p, n, r, t ] Professoren v, w ( [a, v, w, p ] Assistenten ) ) } Bei Beschränkung auf sichere Ausdrücke sind die relationale Algebra und der relationale Domänenkalkül gleichmächtig.

QBE Fordere Tabellenskelett an und fülle es exemplarisch: Vorlesungen VorlNr Titel SWS gelesenvon p._t >3 Grundzüge Ethik Logik Die 3 Kritiken Im Domänenkalkül: { [t] v, s, r ( [v, t, s, r] Vorlesungen s > 3 ) }

QBE (Verbund) Liste alle Professoren, die Logik lesen: Vorlesungen VorlNr Titel SWS gelesenvon Logik _otto Professoren PersNr Name Rang Raum _otto p._n Sokrates

QBE (Condition Box) Liste alle Studenten, die in einem höheren Semester sind als Feuerbach: Studenten MatrNr Name Semester p._s _a Feuerbach _b conditions _a > _b

QBE (Gruppierung) Gruppierung: g. Aggregatfunktionen: sum. avg. min. max. (all.) Liste für jede Gehaltsgruppe die maximale Personalnummer und den Namen des zugehörigen Professors: Professoren PersNr Name Rang Raum p.max._x p._x p.g. 2137 Kant C4 2134 Augustinus C3 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

QBE (Gruppierung) 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 3 Kritiken 4 2137 Liste für jeden Professor die Summe seiner Vorlesungsstunden: Vorlesungen VorlNr Titel SWS gelesenvon p.sum.all._x p.g. 10 2125 8 2126 2 2133 2 2134 8 2137

QBE (Einfügen) Füge neuen Studenten ein: Studenten MatrNr Name Semester i. 4711 Wacker 5

QBE (Ändern) Setze Semesterzahl von Feuerbach auf 3: Studenten MatrNr Name Semester Feuerbach u.3

QBE (Löschen) Entferne Sokrates und seine Vorlesungen: Professoren PersNr Name Rang Raum d. _x Sokrates Vorlesungen VorlNr Titel SWS gelesenvon d. _y _x hören VorlNr MatrNr d. _y

SQL Liste die Namen der Studenten, die 4-stündige Vorlesungen hören: select s.name from studenten s, hoeren h, vorlesungen v where s.matrnr = h.matrnr and h.vorlnr = v.vorlnr and v.sws = 4

Der relationale Tupelkalkül Die Namen der Studenten, die jeweils alle 4-stündige Vorlesungen hören: { s.name s Studenten v Vorlesungen ( v.sws=4 h hören ( h.vorlnr = v.vorlnr h.matrnr = s. MatrNr ) ) }

Äquivalenzen t R ( P(t) ) ( t R ( P(t) ) A B A B (A B) A B

Der relationale Tupelkalkül Die Namen der Studenten, die jeweils alle 4-stündige Vorlesungen hören: { s.name s Studenten v Vorlesungen { s.name s Studenten ( v Vorlesungen (v.sws=4 h hoeren (v.sws=4 h hoeren ( v.sws=4 h hoeren ( v.sws=4 h hoeren (h.vorlnr = v.vorlnr h.matrnr = s. MatrNr)) } (h.vorlnr = v.vorlnr h.matrnr = s. MatrNr)) }

SQL Die Namen der Studenten, die jeweils alle 4-stündige Vorlesungen hören: { s.name s Studenten ( v Vorlesungen (v.sws=4 h hoeren ( h.vorlnr = v.vorlnr h.matrnr = s. MatrNr ) ) } select s.name from Studenten s where not exists (select * from vorlesungen v where sws=4 and not exists (select * from hoeren h where h.vorlnr = v.vorlnr and h.matrnr = s.matrnr))

Datenbanksysteme SS 2007 Ende von Kapitel 6b: Das relationale Modell