Einführung, Entity-Relationship Modell 9. DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL 304 Literatur, Quellen Literatur: Kemper, Eickler: Datenbanksysteme: Eine Einführung. Oldenbourg Verlag, 9. Auflage, 2013. Quellen: Nachfolgende Folien wurden von Prof. Donald Kossmann & Martin Kaufmann freundlicherweise zur Verfügung gestellt. Weitere Quelle: Folien zu Datenbanksysteme: Eine Einführung, Lehrstuhl III Datenbansysteme, Prof. Kemper, TU München 305 Ziele Nutzen von Datenbanksystemen verstehen, Modellierungskenntnisse ER Modell (Modellierung der Weltsicht) Relationales Modell (Modellierung für die DB) Datenbanksystem anwenden SQL Datenbanksystem von einer Programmiersprache und Umgebung heraus ansprechen JDBC (SQL / Java) 306 Datenbankverwaltungssysteme Ein Datenbankverwaltungssystem (DBMS) ist ein Werkzeug zur Erstellung und Ausführung datenintensiver Anwendungen grosse Datenbanken grosse Datenströme 307 Typische Anwendungen Bank “ Bibliothek “ “ Geoinformationssysteme z.B. Topographische Information, "Erzeuge Karte" 308 Wozu Datenbanksysteme? Vermeide Redundanz und Inkonsistenz Deklarativer Zugriff auf die Daten und Unabhängigkeit von der Implementation (physische Datenunabhängigkeit) Synchronisiere gleichzeitigen Datenzugriff Sicherheit, Vertraulichkeit Minimiere Kosten und Aufwand Ähnliche Funktionalität selbst zu implementieren würde Jahre in Anspruch nehmen 309 Abstraktionsebenen eines Datenbanksystems Sicht1 Sicht 2 ... Sicht 3 Logische Ebene Physische Ebene Datenunabhängigkeit: physische Unabhängigkeit logische Datenunabhängigkeit 310 Datenmodellierung Auschnitt der realen Miniwelt intellektuelle Modellierung konzeptuelles Schema (ER-Schema) XML relationales Schema halbautomatische Transformation objektorientiertes Schema 311 Beispiel: konzeptuelle Modellierung Studenten Professoren Vorlesungen reale Welt: Universität konzeptuelle Modellierung MatrNr Name Studenten PersNr Professoren hören Name geben VorlNr Vorlesungen Titel 312 Logisches Modell: relationales Datenmodell Studenten Legi Name 26120 25403 ... Fichte Jonas ... hören Legi VorlNr 25403 26120 ... 5022 5001 ... Vorlesungen VorlNr Titel 5001 Grundzüge 5022 Glaube und Wissen ... ... select Name from Studenten, hören, Vorlesungen where Studenten.Legi= hören.Legi and hören.VorlNr= Vorlesungen.VorlNr and Vorlesungen.Titel = `Grundzüge´; update Vorlesungen set Title = `Grundzüge der Logik´ where VorlNr = 5001; 313 Komponenten eines DBMS* User “ Application Expert User AppDeveloper DBadmin Ad-hoc Query Compiler Management tools DML-Compiler DDL-Compiler Query Optimizer TA Management Recovery DBMS Runtime Schema Storage Manager Logs Indexes DB External Storage Catalogue 314 Entity/Relationship (ER) Modell Entity = Gegenstandstyp Legi Name Semester Studenten Relationship = Beziehungstyp Hörer hören Attribut / Eigenschaft Kurs Schlüssel (Identifikation) Rolle Vorlesungen Nr Titel KP 315 Entity/Relationship (ER) Modell Entity = Gegenstandstyp Relationship = Beziehungstyp Attribut / Eigenschaft Schlüssel (Identifikation) Rolle Studenten hören Name MatrNr Hörer 316 Modell einer Universität vorraussetzen Vorgänger Legi Name Studenten hören Nachfolger KP Vorlesungen Semester Titel Note lesen prüfen PersNr Name Fachgebiet VorlNr Rang Assistent arbeitenFür Professoren PersNr Raum Name 317 ... in natürlicher Sprache Studenten haben LegiNr, Name und Semester. Die LegiNr identifziert einen Studenten eindeutig. Vorlesungen haben eine VorlNr, Kreditpunkte und einen Titel. Die VorlNr identifiziert eine Vorlesung eindeutig. Porfessoren haben PersNr, Name, Rang und Raum. Die PersNr identifiziert einen Professor eindeutig. Assistenten haben PersNr, Name und Fachgebiet. Die PersNr. identifiziert einen Assistenten eindeutig. Studenten hören Vorlesungen Vorlesungen können Voraussetzung für andere Vorlesungen sein. Professoren lesen Vorlesungen. Assistenten arbeiten für Professoren Studenten werden von Professoren über Vorlesungen geprüft. Studenten erhalten Noten als Teil dieser Prüfungen. Ist das die einzig mögliche Interpretation? 318 Warum ER? Vorteile ER Diagramme sind einfach zu erstellen und editieren ER Diagramme sind aufgrund der grafischen Darstellung einfach zu verstehen (vom Laien) ER Diagramme beschreiben alle Informationsanforderungen Allgemeines Viele Tools verfügbar Kontroverse, ob ER/UML in der Praxis von Nutzen ist Keine Kontroverse, dass jeder ER/UML lernen sollte 319 Funktionalitätsangaben E1 ... ... R E2 R E1 x E2 1:1 N:1 E1 E2 1:N N:M 320 Funktionalitäten bei n-stelligen Beziehungen E1 P En N R M E2 1 Ek R : E1 x ... x Ek-1 x Ek+1 x ... x En Ek 321 Beispiel: Seminar 1 Studenten N betreuen 1 Professoren Seminarthemen Note betreuen: Professoren x Studenten Seminarthemen betreuen: Seminarthemen x Studenten Professoren 322 Konsistenzbedingungen des Seminar Einschränkungen 1. Studenten dürfen bei einem Professor nur ein Seminarthema bearbeiten 2. Studenten können dasselbe Seminarthema nur einmal bearbeiten Möglichkeiten 1. Professoren können das Seminarthema für andere Studenten wiederverwenden 2. Dasselbe Thema kann von verschiedenen Professoren verwendet werden 323 Konsistenzbedingungen: graphisch p1 Studenten b1 p2 b2 p3 s2 b3 p4 s3 b4 s1 s4 b5 b6 rot gestrichelte Linien: illegale Ausprägungen Professoren t1 t2 t3 t4 Seminarthemen 324 Universität mit Funktionalitäten vorraussetzen Vorgänger Legi Name N Studenten hören Note Fachgebiet N arbeitenFür VorlNr KP N Titel lesen 1 Assistent M Vorlesungen prüfen PersNr Name N M N Semester M Nachfolger 1 1 Rang Professoren Raum PersNr Name 325 Daumenregeln Wann Attribut, wann Entität? Entität, wenn das Konzept mehr als eine Beziehung hat Attribut, wenn das Konzept nur eine 1:1 Beziehung hat Partitionierung von ER-Modellen Realistische Modelle sind grösser als eine Seite Nach Bereichen / Organisationseinheiten partitionieren Kein gutes automatisches Graphenpartitionierungstool bekannt Tipps Keine Redundanz modellieren, keine vermeintliche Leistungsverbesserung anbringen Je weniger Entitäten desto besser konzis, vollständig, nachvollziehbar, korrekt Schwache (existenzabhängige) Entities Höhe GebNr Gebäude RaumNr Grösse N 1 liegt_in Räume Beziehung ist immer 1:N (oder 1:1) Existenz von Raum hängt ab von der Existenz des zugehörigen Gebäudes, daher kann es keine N:M Beziehung sein Raumnummer nur eindeutig im Gebäude Schlüssel eines Raumes: GebNr und RaumNr 327 Prüfung als schwacher Entitytyp Studenten 1 ablegen N Note Prüfungen PrüfTeil N Legi umfassen VorlNr M Vorlesungen N abhalten M PersNr Professoren Unterschied zur Modellierung mit Beziehung "prüfen"? 328 Generalisierung Name Uni-Mitglieder is-a Angestellte Studenten PersNr is-a Legi Rang Fachgebiet Assistenten Professor Raum 329 Generalisierung Möglich: Angestellte, welche weder Assistent noch Professoren sind Angestellter, welcher auch Assistent ist Angestellter, welcher auch Professor ist Angestellter, welcher auch Professor und Assistent ist Im ER Modell kann dies nicht explizit verhindert werden muss separat beschrieben werden. 330 Universität mit Generalisierung vorraussetzen Vorgänger Legi Name N Studenten hören Note Assistent N arbeitenFür VorlNr KP N Titel lesen prüfen N M Vorlesungen M N Semester M Nachfolger 1 1 1 Rang Professoren Raum Fachgebiet is-a Name Angestellte PersNr 331 Aggregation Fahrräder Teil-von Teil-von Rahmen Räder Teil-von Teil-von Teil-von Teil-von Rohre Lenker Felgen Speichen ... ... ... ... 332 Konsolidierung Verschiedene Anwender haben verschiedene Sichten Sicht 3 Globales Schema Sicht 1 Sicht 4 Sicht 2 Konsolidierung redundanzfrei widerspruchsfrei Synonyme bereinigt Homonyme bereinigt 333 Beispiel Uni-DB, Sicht 1 der Professoren erstellen Studenten Titel Masterarbeiten betreuen Assistenten schreiben Dissertationen Titel Professoren bewerten 334 Beispiel Uni-DB, Sicht 2 der Bibliotheksverwaltung Fakultät Bibliotheken besitzen Signatur Dokumente leiten Autoren entleihen UniMitglieder Titel Jahr Datum 335 Beispiel Uni-DB, Sicht 3 der Dozenten Vorlesungen Bücher Autoren Titel empfehlen Jahr Dozenten Verlag 336 Beobachtungen Dozenten und Professoren sind synonym verwendet Entitytyp UniMitglied ist eine Generalisierung von Student, Professor und Assistent. Bibliotheken werden von Angestellten (nicht z.B. Studenten) geleitet. Sicht 2 ist hier ungenau. Dissertationen, Masterarbeiten und Bücher sind Spezialisierungen von Dokumenten, welche von Bibliotheken verwaltet werden. Erstellen und schreiben sind Synonyme in Sicht 1 Titel erstellen Studenten Masterarbeiten betreuen Assistenten Dissertationen schreiben Titel Professoren bewerten Fakultät Bibliotheken besitzen Signatur Dokumente leiten Autoren entleihen UniMitglieder Titel Jahr Datum Vorlesungen Bücher Autoren Titel empfehlen Jahr Dozenten Verlag 337 Konsolidiertes Schema Bibliotheken Signatur besitzen Titel Fakultät Dokumente Jahr Verlag schreiben Masterarbeiten entleihen betreuen leiten Datum Dissertationen betreuen Assistenten Studenten Bücher empfehlen Professor Angestellte UniMitglieder Vorlesungen Personen 338 ER Modellierung: Zusammenfassung ER beschreibt eine Miniwelt Das "was" und die Regeln ER ist statisch. Es beschreibt keine Übergänge Nützlich zum Erstellen von Software zur Beantwortung von (An)fragen über die Miniwelt es folgt nun: ER-Modell relationales Modell Ähnliche Modellierungsmöglichkeiten bietet UML (mehr auf OOP zugeschnitten) Auch andere graphische Darstellungen des ER Modells gebräuchlich, z.B. "Krähenfussnotation" optisch näher bei UML 339