Rückblick: Datenbankentwurf

Ähnliche Dokumente
3. Relationales Modell & Algebra

3. Relationales Modell & Algebra

2. Relationale Datenbanken

3. Relationales Modell & Algebra

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Rückblick: Relationales Modell

Rückblick: Entity-Relationship-Modell

5. Relationale Entwurfstheorie

Rückblick: Relationale Normalisierung

Grundlagen des relationalen l Modells

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

Inhalt. 2.1 Datenbankentwurf. 2.2 Relationales Modell. 2.3 Relationale Entwurfstheorie. 2.4 Relationale Algebra. 2.5 Structured Query Language (SQL)

Rückblick: Relationale Entwurfstheorie

Relationales Datenmodell Relationale Algebra

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung

Das relationale Datenmodell

Datenmodelle und Datenbanken 1 Internet-Datenbanken

Abstraktionsebenen des Datenbankentwurfs

Datenbanken & Informationssysteme (WS 2016/2017)

Kapitel DB:IV (Fortsetzung)

E-R-Modell zu Relationenschema

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

Datenbankentwurf. Abstraktionsebenen des Datenbankentwurfs. 1. Konzeptuelle Ebene. 2. Implementationsebene (Logische Ebene) 3.

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme

Kapitel 2: Das Relationale Modell

Informations-, Daten- und Wissensmanagement

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

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

Datenbankentwurf. Kapitel 3. Datenbankentwurf 76 / 508

Grundlagen von Datenbanken SS 2010

3. Grundlagen relationaler Datenbanksysteme

Übung zur Vorlesung Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW) IN8003, SS 2011 Prof. Dr. J. Schlichter

Medizininformatik Software Engineering

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

Entity Relationship Modell

Datenmodelle. Einführung in das Entity-Relationship-Modell. Datenbankmodelle. Beispiel für ein ER-Schema. Kunde( Meier, , ) 41, Meier

Datenmodelle dienen der Darstellung der Informationsstruktur, nicht der Darstellung der Informationen selbst. Motivation

3. Das Relationale Datenmodell

Datenintegrität. Kapitel 5 1

Datenmodellierung. Ausschnitt der Realen Miniwelt. Manuelle/intellektuelle Modellierung. Konzeptuelles Schema (E/R- oder UML-Schema)

Kapitel 2: Das Relationale Modell

Kapitel 3: Datenbanksysteme

Kapitel 1: Einführung 1.1 Datenbanken?

Datenbanksysteme: Entwurf

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

PD Dr.-Ing. F. Lobeck. Seite 6

Konzeptuelle Modellierung

Datenintegrität. Kapitel 5 1

Kapitel DB:III (Fortsetzung)

Kapitel DB:IV (Fortsetzung)

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Vorlesung Datenbanksysteme vom

Datenbankentwurf. Abstraktionsebenen des Datenbankentwurfs: 3. Konzeptuelle Ebene. 5. Implementationsebene. 7. Physische Ebene.

Relationales Datenmodell

Kapitel DB:III (Fortsetzung)

Java Database Connectivity (JDBC) zum Zugriff aus in z.b. in Java geschriebenen Applikationen

Das Relationale Modell

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell

Das relationale Modell

Vorlesung Datenbankmanagementsysteme

Grundlagen des relationalen Modells

Transkript:

Rückblick: Datenbankentwurf Entity-Relationship-Modell für konzeptuellen Entwurf Entitytypen (entity types) (z.b. Studenten) Beziehungstypen (relationships) (z.b. hören) Attribute beschreiben Gegenstände oder Beziehungen Schlüssel identifizieren Gegenstände eindeutig Kardinalitäten charakterisieren Beziehungstypen 1:1-, 1:N- (N:1-), N:M-Beziehungstypen 38

2.2 Relationales Modell Relationales Modell (auch: Relationenmodell) als das Datenmodell hinter den heute vorherrschenden relationalen Datenbanksystemen (RDBMS) vorgeschlagen im Jahr 1970 durch Edgar F. Codd [2], der u.a. dafür den A. M. Turing Award gewonnen hat mengenorientierte Verarbeitung von Daten, die in sogenannten Relationen (Tabellen) gespeichert werden Quelle: http://amturing.acm.org Studenten MatrNr Vorname Name Semester 13765 Moritz Müller 1 18877 Peter Parker 7 18879 Marty McFly 3 39

Wertebereiche Wertebereiche (auch: Domäne) (domain) können alle Mengen sein, die nur atomare Werte enthalten, z.b. ganze Zahlen (integer) Kommazahlen (float oder real) Zeichenketten (string) Datentypen wie z.b. Datumsangaben, die eine eigene Struktur haben (Tag, Monat, Jahr) sind also nicht erlaubt (später: RDBMSs erlauben jedoch solche Datentypen) 40

Relationen Relation R ist Untermenge des kartesischen Produkts (Kreuzprodukts) von n Wertebereichen D 1,, D n R D 1... D n Beispiel: Relation Studenten mit vier Komponenten (Matrikelnummer, Vorname, Name und Semester) Studenten integer string string integer Ein Element der Relation R heißt (n-stelliges) Tupel Beispiel: (13765, Moritz, Müller, 1) als Tupel in Studenten 41

Attribute und Schlüssel Komponenten werden zur besseren Identifikation benannt Attribute einer Relationen setzen sich zusammen aus je einem Attributnamen A i (z.b. MatrNr) einem Wertebereich dom(a i ) (z.b. integer) Attributnamen einer Relationen müssen eindeutig sein Jede Relation verfügt über einen Schlüssel, d.h. eine Menge von Attributen, die Tupel eindeutig identifizieren 42

Relationen Relationen werden nach folgendem Muster spezifiziert R : {[ A 1 : D 1,...,A n : D n ]} dabei werden alle Schlüsselattribute unterstrichen Beispiel: Relation Studenten Studenten : [ MatrNr : integer, Vorname : string, Name : string, Semester : integer ] mit eindeutig identifizierendem Schlüsselattribut MatrNr 43

Relationen als Tabellen Relationen meist als Tabellen in RDBMSs bezeichnet mit Attributen als Spalten der Tabelle mit Tupeln als Zeilen der Tabelle Beispiel: Relation Studenten Studenten MatrNr Vorname Name Semester 13765 Moritz Müller 1 18877 Peter Parker 7 18879 Marty McFly 3 mit vier Attributen und drei Tupeln 44

Ausprägung vs. Schema Unterscheidung zwischen Ausprägung (konkreten Daten) und Schema (Attributnamen A i mit Domänen D i ) Schema der Relation sch(r) ist die Menge aller Attribute sch(r) ={A 1,...,A n } dom(a i ) bezeichnet die Domäne des Attributs A i dom(a i )=D i 45

2.3 Relationale Entwurfstheorie Wie können wir ein konzeptuelles Modell in Form eines Entity-Relationship-Diagramms in ein Relationenschema übersetzen? Welche Eigenschaften hat ein gutes Relationenschema und wie können wir diese erreichen? 46

2.3.1 Übersetzung eines konzeptuellen Modells Wie können wir ein konzeptuelles Modell in Form eines Entity-Relationship-Diagramms in Relationen übersetzen? Jetzt: Initiale Übersetzung von Entitytypen und Beziehungstypen in möglichst wenige Relationen Danach: Weitere Optimierung des Relationenschemas anhand von Normalformen zur Vermeidung von Redundanzen und Anomalien 47

ER-Diagramm für Hochschule MatrNr VorlNr Vorname Name Studenten N N hören M M Vorlesungen N SWS Titel Semester prüfen lesen Note PersNr Vorname Assistenten N arbeiten für 1 1 1 Professoren Name Tätigkeit PersNr Fach Vorname Name 48

Entitytypen als Relationen Jeder Entitytyp wird zu eigener Relation mit entsprechenden Attributen und Schlüssel Beispiel: Für unser ER-Diagramm Hochschule erhalten wir Studenten : [ MatrNr : integer, Vorname : string, Name : string, Semester : integer ] Vorlesungen : [ VorlNr : integer, SWS : integer, Titel : string ] Professoren : [ PersNr : integer, Vorname : string, Name : string, Fach : string ] Assistenten : [ PersNr : integer, Vorname : string, Name : string, Tätigkeit : string ] 49

Beziehungstypen als Relationen Jeder Beziehungstyp wird zu eigener Relation übernimmt Schlüsselattribute verbundener Entitytypen, diese werden dann als Fremdschlüssel bezeichnet eigene Attribute des Beziehungstyps bleiben erhalten evtl. ist eine Umbenennung von Attributen notwendig Beispiel: Beziehungstyp prüfen wird zur Relation prüfen : [ MatrNr : integer, VorlNr : integer, PersNr : integer, Note : integer ] Schlüssel der Relation ist von der Kardinalität des Beziehungstyps abhängig 50

N:M-Beziehungstypen als Relationen Schlüssel der Relation zu einem N:M-Beziehungstyp beinhaltet übernommene Attribute aus allen Fremdschlüsseln Beispiel: Studenten hören Vorlesungen hören : [ MatrNr : integer, VorlNr : integer ] Wäre nämlich nur eines der übernommenen Attribute im Schlüssel, könnte jeder Student nur eine Vorlesung hören (bei MatrNr) bzw. jede Vorlesung könnte nur von einem Studenten besucht werden (bei VorlNr) 51

1:N-Beziehungstypen als Relation Schlüssel der Relation zu einem 1:N-Beziehungstyp beinhaltet übernommene Attribute aus dem Fremdschlüssel des rechten Entitytyps E 2 Beispiel: Professoren lesen Vorlesungen lesen : [ PersNr : integer, VorlNr : integer ] Wären nämlich beide der übernommenen Attribute (PersNr und VorlNr) im Schlüssel, könnte eine Vorlesung von mehreren Professoren gelesen werden 52

N:1-Beziehungstypen als Relationen Schlüssel der Relation zu einem N:1 Beziehungstyp beinhaltet übernommene Attribute aus dem Fremdschlüssel des linken Entitytyps E 1 Beispiel: Assistenten arbeiten für Professor arbeitenfür : [ AssPersNr : integer, ProfPersNr : integer ] In diesem Fall ist eine Umbenennung der übernommenen Attribute notwendig, da beide ursprünglich gleich heißen 53

1:1-Beziehungstypen als Relationen Schlüssel der Relation zu einem 1:1-Beziehungstyp beinhaltet übernommene Attribute aus dem Fremdschlüssel nur eines Entitytyps (E 1 oder E 2 ) Beispiel: Kennzeichen gehören zu Fahrzeug gehörtzu : [ Kennzeichen: integer, FahrzeugNr : integer ] gehörtzu : oder [ Kennzeichen: integer, FahrzeugNr : integer ] Dies garantiert jedoch nicht die Integrität unserer Daten; mehr zum Thema Datenintegrität später 54

Umsetzung der Generalisierung PersNr, Vorname, Name Mitarbeiter ist-ein ist-ein Tätigkeit Assistenten Professoren Fach 55

Umsetzung der Generalisierung Jeder Entitytyp wird zu eigener Relation Relation des Obertyps enthält gemeinsame Attribute Relationen der Untertypen enthalten eigene Attribute alle Relationen haben gemeinsamen Schlüssel Beispiel: Assistenten und Professoren als Mitarbeiter Mitarbeiter : [ PersNr : integer, Vorname : string, Name : string ] Professoren : [ PersNr : integer, Fach : string ] Assistenten : [ PersNr : integer, Tätigkeit : string ] 56

Eliminierung von Relationen Beschriebene Vorgehensweise führt zu vielen Relationen Relationen aus 1:N-, N:1- und 1:1-Beziehungstypen (nicht jedoch N:M) können eliminiert werden, hierbei gilt: Nur Relationen mit gleichem Schlüssel zusammenfassen! 57

Eliminierung von Relationen (1:N) Bei 1:N-Beziehungstypen werden der Schlüssel des linken Entitytyps sowie eventuelle Attribute des Beziehungstyps in Relation des rechten Entitytyps aufgenommen Beispiel: Professoren lesen Vorlesungen lesen : [ PersNr : integer, VorlNr : integer ] Vorlesungen : [ VorlNr : integer, SWS : integer, Titel : string ] wird zu Vorlesungen : [ VorlNr : integer, SWS : integer, Titel : string, PersNr : integer ] 58

Eliminierung von Relationen (N:1) Bei N:1-Beziehungstypen werden der Schlüssel des rechten Entitytyps sowie eventuelle Attribute des Beziehungstyps in Relation des linken Entitytyps aufgenommen Beispiel: Assistenten arbeiten für Professoren Assistenten : [ PersNr : integer, Vorname : string, Name : string, Tätigkeit : string ] arbeitenfür : [ AssPersNr : integer, ProfPersNr : integer ] wird zu Assistenten : [ PersNr : integer,..., ProfPersNr : integer, ] 59

Eliminierung von Relationen (1:1) Bei 1:1-Beziehungstypen werden der Schlüssel des linken (rechten) Entitytyps sowie eventuelle Attribute des Beziehungstyps in Relation des rechten (linken) Entitytyps aufgenommen Beispiel: Kennzeichen gehören zu Fahrzeugen Kennzeichen : [Kennzeichen:integer,...] gehörtzu : [ Kennzeichen: integer, FahrzeugNr : integer ] wird zu Kennzeichen : [ Kennzeichen: integer,..., FahrzeugNr : integer, ] 60

Eliminierung von Relationen (1:1) Beispiel: Kennzeichen gehören zu Fahrzeugen gehörtzu : [ Kennzeichen: integer, FahrzeugNr : integer ] Fahrzeuge : [ FahrzeugNr : integer,...] wird zu Fahrzeuge : [ FahrzeugNr : integer,..., Kennzeichen : integer, ] 61

Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2013 (Kapitel 3) [2] E. F. Codd: A Relational Model of Data for Large Shared Data Banks, CACM 13(6), 1970 [3] G. Saake, K.-U. Sattler und A. Heuer: Datenbanken - Konzepte und Sprachen, mitp Professional, 2013 (Kapitel 4 & 5) 62