Das Datenmodell Ausschnitt der Realen Miniwelt Manuelle/intellektuelle Modellierung Konzeptuelles Schema (E/R- oder UML-Schema) Halbautomatische Transformation Relationales S h Schema XML S h Schema Netzwerk S h Schema Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 Objektorientiertes S h Schema 08.11.2016 Das as relationale e at o a e Datenmodell ate ode MatrNr VorlNr Name Studenten Studenten MatrNr Name 26120 Fichte 25403 Jonas ... ... N hören hören MatrNr VorlNr 25403 5022 26120 5001 ... ... M Vorlesungen Titel Vorlesungen VorlNr Titel 5001 Grundzüge 5022 Glaube und Wissen ... ... Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Historische Entwicklung relationaler DBMS • Codasyl, Anfang 1960: netzwerkartiges Datenmodell • IMS, Mitte 1960: hierarchisches Datenmodell • Ted Codd, 1970: Grundlage relationales Datenmodell • System R, Mitte 1970: relationales Datenbanksystem ( (Forschungsprototyp) g p yp) • Genealogie-Poster: www.hpi.de/naumann/projects/rdbms-genealogy.html p p j g gy Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Historische Entwicklung relationaler DBMS Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Historische Entwicklung relationaler DBMS Kommerzielle relationale Datenbanksysteme, y Fokus OLTP • • • • • Oracle V2, Ende 1970 Ingres g ((Berkeley), y) Ende 1970 PostgreSQL g SQL/DS, Anfang 1980: IBM DB2 MS SQL Server, 1990 ((aus Sybase) y ) MySQL, Ende 1990 ab Ende 1990: Objektrelationale Erweiterungen Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Historische Entwicklung DBMS Spezialisierte Systeme: • Objektorientierte j DBMS ((ab Ende 1980)) • XML DBMS (ab Ende 1990) • Hauptspeicherdatenbanksysteme p p y ((ab Ende 1990)) • Analytische Datenbanksysteme (Fokus OLAP) ((ab Anfang g 2000)) Hybride y Systeme: y • OLTP & OLAP: HyPer, SAP HANA ((Hauptspeicher-DBS, p p Mehrprozessorarchitektur) p ) Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 G Grundlagen dl des d relationalen l ti l Modells M d ll Seien D1, D2, ..., Dn Domänen (~Wertebereiche) ( Wertebereiche) Relation: R D1 x ... x Dn Bsp.: Telefonbuch string x string x integer T Tupel: l tR Bsp.: p t = („ („Mickey y Mouse“,, „Main „ Street“,, 4711)) Schema: legt die Struktur der gespeicherten Daten fest Bsp.: Telefonbuch: {[Name: string, Adresse: string, Telefon#: integer]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relation Telefonbuch Name Straße Mickey Mouse Main Street Minnie Mouse Broadway Donald Duck Broadway ... ... Telefon# 4711 94725 95672 ... • Ausprägung: der aktuelle Zustand der Datenbasis • Schlüssel: minimale Menge von Attributen, deren Werte ein p eindeutig g identifizieren Tupel • Primärschlüssel: wird unterstrichen • Einer e de der Schlüsselkandidaten Sc üsse a d date wird da als s Primärschlüssel ä sc üsse ausge ausgewählt ä t • Hat eine besondere Bedeutung bei der Referenzierung von Tupeln Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Uni-Schema voraussetzen Nachf l folger Vorgänger MatrNr N N Name Semester Studenten N hören M M Note Name Fachgebiet 1 Assistenten N arbeitenFür N SWS Titel lesen prüfen PersNr M Vorlesungen N VorlNr 1 1 Professoren PersNr Name Rang Raum Abbildungsregeln (1) Entitymengen auf Relationen: Entitymenge E tit E mit it Attributen Att ib t Ai aus Domänen D ä Di (1 ≤ i ≤ k) k-stellige Relation E(A1:D1, ..., Ak:Dk). Übernahme der Schlüsselattribute Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relationale Darstellung von E tit Entitymengen Studenten: {[MatrNr:integer, {[MatrNr:integer Name: string, string Semester: integer]} Vorlesungen: {[VorlNr:integer, Titel: string, SWS: integer]} Professoren: {[ {[PersNr:integer, g , Name: string, g, Rang: string, Raum: integer]} Assistenten: {[PersNr:integer, Name: string, Fachgebiet: g string]} g]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relationale Darstellung von Beziehungen A11 E1 A1k 1 ... AR1 R A A21 E2 A2 k 2 ... ... A11,...., A1k , A21,..., A2k R:{[ 1 Schlüsselvon E1 R kR En An1 ... A nk n R 1 R kR ,..., An1 ,..., Ankn , A ,..., A ]} 2 Schlüsselvon E 2 Schlüsselvon E n Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 Attributevon R 08.11.2016 Beziehungen unseres Beispiel-Schemas MatrNr VorlNr Name Studenten Semester N hören M Vorlesungen SWS Titel hören (N:M): {[MatrNr: integer, VorlNr: integer]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Ausprägung Beziehung hören Studenten MatrNr ... 26120 ... 27550 ... ... ... MatrNr Studenten N hören MatrNr VorlNr 26120 5001 27550 5001 27550 4052 28106 5041 28106 5052 28106 5216 28106 5259 29120 5001 29120 5041 29120 5049 29555 5022 25403 5022 29555 5001 Vorlesungen VorlNr ... 5001 ... 4052 ... ... ... VorlNr hören Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 M Vorlesungen 08.11.2016 Beziehungen unseres Beispiel-Schemas Professoren 1 l lesen N Vorlesungen lesen (1:N): {[PersNr: integer, VorlNr: integer]} arbeitenFür (N:1): {[AssistentenPersNr: integer, integer ProfPersNr: integer]} voraussetzen t (N M) {[Vorgänger: (N:M): {[V ä iinteger, t N Nachfolger: hf l iinteger]} t ]} prüfen (N:M:1): {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Frage: 1:1 Beziehung? Männer 1 h i t heiraten 1 PersNr Frauen PersNr heiraten (1:1): {[???]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Verfeinerte Abbildungsregeln Relationships auf Relationen (cont‘d): (cont d): 1:1-Beziehung: Relationship R zwischen 2 Entities E und F F. keine Relation aus R, stattdessen Primärschlüssel von E in Relation in F oder umgekehrt. 1:n-Beziehung: Relationship R zwischen 2 Entities E und F. Keine Relation R, statt dessen Primärschlüssel von E in Relation F als Fremdschlüssel aufnehmen. Fall R eigene Attribute hat, müssen diese auch in F aufgenommen werden. Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Verfeinerung des relationalen S h Schemas Professoren 1 l lesen N Vorlesungen 1:N-Beziehung 1 NB i h Initial-Entwurf Professoren : {[PersNr, Name, Rang, Raum]} Vorlesungen : {[VorlNr, Titel, SWS]} lesen: {[PersNr , VorlNr]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Verfeinerung des relationalen Schemas 1:N-Beziehung Initial Entwurf Initial-Entwurf Professoren : {[PersNr, Name, Rang, Raum]} Vorlesungen : {[VorlNr, {[VorlNr Titel, Titel SWS]} lesen: {[PersNr , VorlNr]} Verfeinerung V f i durch d hZ Zusammenfassung f Professoren : {[PersNr, Name, Rang, Raum]} Vorlesungen : {[VorlNr, Titel, SWS, g gelesenVon]} } Regel: Relationen mit gleichem Schlüssel kann man zusammenfassen ... aber nur diese und keine anderen! Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Ausprägung von Professoren und Vorlesung PersNr 2125 2126 2127 2133 2134 2136 2137 Professoren Name Rang Raum Sokrates C4 226 Russel C4 232 Kopernikus C3 310 P Popper C3 52 Augustinus C3 309 Curie C4 36 Kant C4 7 Professoren 1 Vorlesungen V lN VorlNr Tit l Titel SWS G Gelesen l Von 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mä tik Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheorie 3 2126 5216 Bioethik 5259 Der Wiener Kreis 5022 Glaube und Wissen 4630 Die 3 Kritiken lesen Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 N 2 2 2 4 2126 2133 2134 2137 Vorlesungen l 08.11.2016 Warum nicht andersherum? PersNr 2125 2125 2125 ... 2134 2136 Professoren Name Rang Raum Sokrates C4 226 Sokrates C4 226 Sokrates C4 226 ... ... ... Augustinus C3 309 Curie C4 36 Professoren 1 liest 5041 5049 4052 ... 5022 ?? lesen VorlNr V lN 5001 5041 5043 5049 4052 5052 5216 5259 5022 4630 Vorlesungen Tit l Titel SWS Grundzüge 4 Ethik 4 Erkenntnistheorie 3 Mäeutik 2 Logik 4 Wissenschaftstheorie 3 Bi thik Bioethik 2 Der Wiener Kreis 2 Glaube und Wissen 2 Die 3 Kritiken 4 N Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 Vorlesungen l 08.11.2016 FolgenAnomalien PersNr 2125 2125 2125 ... 2134 2136 Professoren Name Rang Raum Sokrates C4 226 Sokrates C4 226 Sokrates C4 226 ... ... ... Augustinus C3 309 Curie C4 36 liest 5041 5049 4052 ... 5022 ?? VorlNr 5001 5041 5043 5049 4052 5052 5216 5259 5022 4630 Vorlesungen Titel SWS Grundzüge 4 Ethik 4 Erkenntnistheorie 3 Mäeutik 2 Logik 4 Wissenschaftstheorie 3 Bioethik 2 Der Wiener Kreis 2 Glaube und Wissen 2 Di 3 Kritiken Die K itik 4 Update-Anomalie: Was passiert wenn Sokrates umzieht Lösch-Anomalie: Lösch Anomalie: Was passiert wenn „Glaube Glaube und Wissen“ Wissen wegfällt Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Umsetzung Generalisierung Geb-Tag Person Name is_a Patient Kassen-Nr Arzt Urlaubstage Di k Diskussion i Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relationale Modellierung der Generalisierung Fachgebiet c geb e Assistenten i iss_a Professoren Raum Rang Angestellte g PersNr Name Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten {[PersNr, Assistenten: Pe sN Fachgebiet]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relationale Modellierung schwacher Entitytypen St denten 1 Studenten Note N Prüfungen Prüf ngen ablegen bl PrüfTeil MatrNr V lN VorlNr N umfassen M Vorlesungen N abhalten M PersNr Professoren Entity-Mengen Studenten, Prüfungen: Studenten: {[MatrNr: integer, … ]} Prüfungen: {[MatrNr: integer, PrüfTeil: string, Note: integer]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relationale Modellierung schwacher Entitytypen St denten 1 Studenten Note N Prüfungen Prüf ngen ablegen bl PrüfTeil MatrNr V lN VorlNr N umfassen M Vorlesungen N abhalten M PersNr Professoren RelShips umfassen und abhalten: Global eindeutiger Schlüssel der Relation Prüfung = MatrNr und PrüfTeil muss als Fremdschlüssel in die Relationen umfassen und abhalten übernommen werden Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relationale Modellierung schwacher Entitytypen Studenten 1 ablegen N Note Prüfungen PrüfTeil N MatrNr umfassen VorlNr M Vorlesungen N abhalten M PersNr Professoren umfassen: {[MatrNr: integer, PrüfTeil: string, VorlNr: integer]} abhalten: bh lt {[MatrNr: {[M t N integer, i t P üfT il string, PrüfTeil: t i PersNr: P N integer]} i t ]} Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Relationale Modellierung schwacher Entitytypen Studenten 1 ablegen N Note Prüfungen PrüfTeil N MatrNr umfassen VorlNr M Vorlesungen N abhalten M PersNr Professoren R lShi ablegen RelShip bl ? Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 08.11.2016 Professoren Vorlesungen Studenten Rang Raum MatrNr Name Semester VorlNr PersNr Name 2125 Sokrates C4 226 24002 Xenokrates 18 2126 Russel C4 232 25403 Jonas 12 2127 Kopernikus C3 310 26120 Fichte 10 2133 C3 52 26830 Aristoxenos 8 2134 Augustinus C3 309 27550 Schopenhauer 6 2136 Curie C4 36 28106 3 2137 Kant C4 7 29120 Theophrastos 2 29555 2 Popper hören Carnap Feuerbach Titel SWS gelesen Von 5001 00 G d Grundzüge 4 2 3 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mä tik Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheorie 3 2126 5216 Bi thik Bioethik 2 2126 MatrNr VorlNr voraussetzen 5259 Der Wiener Kreis 2 2133 26120 5001 Vorgänger Nachfolger 5022 Glaube und Wissen 2 2134 27550 5001 5001 5041 4630 Di 3 Kritiken Die K itik 4 2137 27550 4052 5001 5043 28106 5041 5001 5049 PersNr Name Fachgebiet Boss 28106 5052 5041 5216 3002 Platon Ideenlehre 2125 28106 5216 5043 5052 3003 Aristoteles Syllogistik 2125 28106 5259 5041 5052 3004 Wittgenstein Sprachtheorie 2126 29120 5001 5052 5259 3005 Rhetikus Planetenbewegung 2127 29120 5041 prüfen 3006 Newton Keplersche Gesetze 2127 29120 5049 MatrNr VorlNr PersNr Note 3007 Spinoza Gott und Natur 2126 25403 5022 28106 5001 2126 1 29555 5022 25403 5041 2125 2 29555 5001 27550 4630 2137 2 Assistenten