Teil III Entity-Relationship-Modell
Entity-Relationship-Modell 1 Datenbankmodell 2 ER-Modell 3 Weitere Konzepte im ER-Modell Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 1
Lernziele für heute... Kenntnis der Konzepte des Entity-Relationship-Modells Fähigkeiten zur koneptuellen Modellierung eines Anwendungsbereichs Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 2
Datenbankmodell Grundlagen von Datenbankmodellen Ein Datenbankmodell ist ein System von Konzepten zur Beschreibung von Datenbanken. Es legt Syntax und Semantik von Datenbankbeschreibungen für ein Datenbanksystem fest. Datenbankbeschreibungen = Datenbankschemata Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 3
Datenbankmodell Ein Datenbankmodell legt fest... 1 statische Eigenschaften 1 Objekte 2 Beziehungen inklusive der Standard-Datentypen, die Daten über die Beziehungen und Objekte darstellen können, 2 dynamische Eigenschaften wie 1 Operationen 2 Beziehungen zwischen Operationen, 3 Integritätsbedingungen an 1 Objekte 2 Operationen Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 4
Datenbankmodell Datenbankmodelle Klassische Datenbankmodelle sind speziell geeignet für große Informationsmengen mit relativ starrer Struktur und die Darstellung statischer Eigenschaften und Integritätsbedingungen (also die Bereiche 1(a), 1(b) und 3(a)) Entwurfsmodelle: (E)ER-Modell, UML,... Realisierungsmodelle: Relationenmodell, objektorientierte Modelle,... Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 5
Datenbankmodell Datenbanken versus Programmiersprachen Datenbankkonzept Datenbankmodell Typsystem einer Programmiersprache Typsystem Relation, Attribut... int, struct... Datenbankschema Variablendeklaration relation WEIN = (...) Datenbank WEIN(4961, Chardonnay, Weiß,... ) var x: int, y: struct Wein Werte 42, Cabernet Sauvignon Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 6
Datenbankmodell Abstraktionsstufen Modelle Daten Algorithmen abstrakt Entity-Relationship-Modell Struktogramme konkret Hierarchisches Modell Pascal Netzwerkmodell C, C++ Relationenmodell Java, C# Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 7
Datenbankmodell Datenbankmodelle im Überblick ab Mitte 1960 implementierungsnah HM abstrakt 1970 NWM SQL RM ER 1980 1990 OODM (C++) ODMG ORDM NF 2 enf 2 OEM UML SDM 2000 SQL:1999 2005 SQL:2003 Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 8
Datenbankmodell Datenbankmodelle im Überblick /2 HM: hierarchisches Modell, NWM: Netzwerkmodell, RM: Relationenmodell NF 2 : Modell der geschachtelten (Non-First-Normal-Form = NF 2 ) Relationen, enf 2 : erweitertes NF 2 -Modell ER: Entity-Relationship-Modell, SDM: semantische Datenmodelle OODM / C++: objektorientierte Datenmodelle auf Basis objektorientierter Programmiersprachen wie C++, OEM: objektorientierte Entwurfsmodelle (etwa UML), ORDM: objektrelationale Datenmodelle Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 9
ER-Modell Das ER-Modell Entity: Objekt der realen oder der Vorstellungswelt, über das Informationen zu speichern sind, z.b. Produkte (Wein, Katalog), Winzer oder Kritiker; aber auch Informationen über Ereignisse, wie z.b. Bestellungen Relationship: beschreibt eine Beziehung zwischen Entities, z.b. ein Kunde bestellt einen Wein oder ein Wein wird von einem Winzer angeboten Attribut: repräsentiert eine Eigenschaft von Entities oder Beziehungen, z.b. Name eines Kunden, Farbe eines Weines oder Datum einer Bestellung Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 10
ER-Modell ER-Beispiel Bezeichnung Gericht [0,*] Beilage Name Farbe Rebsorte [0,*] hergestellt aus Name Anteil Farbe Name Land Region Anbaugebiet sitzt in [1,7] empfiehlt [0,*] Wein produziert von Erzeuger [0,*] Restsüße Jahrgang Weingut Adresse Kritiker besitzt Name LizenzNr Organisation Menge Lizenz Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 11
ER-Modell Werte Werte: primitive Datenelemente, die direkt darstellbar sind Wertemengen sind beschrieben durch Datentypen, die neben einer Wertemenge auch die Grundoperationen auf diesen Werten charakterisieren ER-Modell: vorgegebene Standard-Datentypen, etwa die ganzen Zahlen int, die Zeichenketten string, Datumswerte date etc. jeder Datentyp stellt Wertebereich mit Operationen und Prädikaten dar Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 12
ER-Modell Entities Entities sind die in einer Datenbank zu repräsentierenden Informationseinheiten im Gegensatz zu Werten nicht direkt darstellbar, sondern nur über ihre Eigenschaften beobachtbar Entities sind eingeteilt in Entity-Typen, etwa E 1, E 2... Wein Menge der aktuellen Entities: E = {e 1, e 2,..., e n } Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 13
ER-Modell Attribute Attribute modellieren Eigenschaften von Entities oder auch Beziehungen alle Entities eines Entity-Typs haben dieselben Arten von Eigenschaften; Attribute werden somit für Entity-Typen deklariert Name Farbe Wein Jahrgang textuelle Notation E(A 1 : D 1,..., A m : D m ) Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 14
ER-Modell Identifizierung durch Schlüssel Schlüsselattribute: Teilmenge der gesamten Attribute eines Entity-Typs E(A 1,..., A m ) {S 1,..., S k } {A 1,..., A m } in jedem Datenbankzustand identifizieren die aktuellen Werte der Schlüsselattribute eindeutig Instanzen des Entity-Typs E bei mehreren möglichen Schlüsselkandidaten: Auswahl eines Primärschlüssels Notation: markieren durch Unterstreichung: E(..., S 1,..., S i,...) Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 15
ER-Modell Beziehungstypen Beziehungen zwischen Entities werden zu Beziehungstypen zusammengefasst allgemein: beliebige Anzahl n 2 von Entity-Typen kann an einem Beziehungstyp teilhaben zu jedem n-stelligen Beziehungstyp R gehören n Entity-Typen E 1,..., E n Ausprägung R eines Beziehungstyps R E 1 E 2 E n Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 16
ER-Modell Beziehungstypen /2 Notation Erzeuger produziert Wein textuelle Notation: R(E 1, E 2,..., E n ) wenn Entity-Typ mehrfach an einem Beziehungstyp beteiligt: Vergabe von Rollennamen möglich verheiratet(frau: Person, Mann: Person) Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 17
ER-Modell Beziehungsattribute Beziehungen können ebenfalls Attribute besitzen Attributdeklarationen werden beim Beziehungstyp vorgenommen; gilt auch hier für alle Ausprägungen eines Beziehungstyps Beziehungsattribute Anteil Wein hergestellt aus Rebsorte textuelle Notation: R(E 1,..., E n ; A 1,..., A k ) Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 18
ER-Modell Merkmale von Beziehungen Stelligkeit oder Grad: Anzahl der beteiligten Entity-Typen häufig: binär Beispiel: Lieferant liefert Produkt Kardinalität oder Funktionalität: Anzahl der eingehenden Instanzen eines Entity-Typs Formen: 1:1, 1:n, m:n stellt Integritätsbedingung dar Beispiel: maximal 5 Produkte pro Bestellung Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 19
ER-Modell Zwei- vs. mehrstellige Beziehungen Gericht Gericht G-W empfiehlt Wein G-K Wein Kritiker Kritiker K-W Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 20
ER-Modell Ausprägungen im Beispiel g 1 w 1 g 1 w 1 g 2 w 2 g 2 w 2 Gericht Wein Gericht Wein k 1 k 2 Kritiker k 1 k 2 Kritiker Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 21
ER-Modell Rekonstruktion der Ausprägungen g 1 w 1 g 2 Gericht w 2 Wein g 1 k 1 w 1 g 1 k 2 w 2 g 2 k 2 w 1 aber auch: g 1 k 2 w 1 k 1 k 2 Kritiker Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 22
ER-Modell 1:1-Beziehungen jedem Entity e 1 vom Entity-Typ E 1 ist maximal ein Entity e 2 aus E 2 zugeordnet und umgekehrt Beispiele: Prospekt beschreibt Produkt, Mann ist verheiratet mit Frau E 1 E 2 Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 23
ER-Modell 1:N-Beziehungen jedem Entity e 1 vom Entity-Typ E 1 sind beliebig viele Entities E 2 zugeordnet, aber zu jedem Entity e 2 gibt es maximal ein e 1 aus E 1 Beispiele: Lieferant liefert Produkt, Mutter hat Kinder E 1 E 2 Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 24
ER-Modell N:1-Beziehung invers zu 1:N, auch funktionale Beziehung zweistellige Beziehungen, die eine Funktion beschreiben: Jedem Entity eines Entity-Typs E 1 wird maximal ein Entity eines Entity-Typs E 2 zugeordnet. R : E 1 E 2 Wein produziert von Erzeuger Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 25
ER-Modell 1:1-Beziehung Erzeuger besitzt Lizenz Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 26
ER-Modell M:N-Beziehungen keine Restriktionen Beispiel: Bestellung umfasst Produkte E 1 E 2 Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 27
ER-Modell [min,max]-notation E 1 [min 1, max 1 ] [min R n, max n ] E n [min 2, max 2 ]... E 2 schränkt die möglichen Teilnahmen von Instanzen der beteiligten Entity-Typen an der Beziehung ein, indem ein minimaler und ein maximaler Wert vorgegeben wird Notation für Kardinalitätsangaben an einem Beziehungstyp R(E 1,..., E i [min i, max i ],..., E n ) Kardinalitätsbedingung: min i {r r R r.e i = e i } max i Spezielle Wertangabe für max i ist Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 28
ER-Modell Kardinalitätsangaben [0, ] legt keine Einschränkung fest (default) R(E 1 [0, 1], E 2 ) entspricht einer (partiellen) funktionalen Beziehung R : E 1 E 2, da jede Instanz aus E 1 maximal einer Instanz aus E 2 zugeordnet ist totale funktionale Beziehung wird durch R(E 1 [1, 1], E 2 ) modelliert Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 29
ER-Modell Kardinalitätsangaben: Beispiele partielle funktionale Beziehung lagert_in(produkt[0,1],fach[0,3]) Jedes Produkt ist im Lager in einem Fach abgelegt, allerdings wird ausverkauften bzw. gegenwärtig nicht lieferbaren Produkte kein Fach zugeordnet. Pro Fach können maximal drei Produkte gelagert werden. totale funktionale Beziehung liefert(lieferant[0,*],produkt[1,1]) Jedes Produkt wird durch genau einen Lieferant geliefert, aber ein Lieferant kann durchaus mehrere Produkte liefern. Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 30
ER-Modell Alternative Kardinalitätsangabe Produkt [1,1] geliefert [0,*] von Lieferant Produkt N geliefert 1 von Lieferant Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 31
Weitere Konzepte im ER-Modell Abhängige Entity-Typen abhängiger Entity-Typ: Identifikation über funktionale Beziehung WeinJahrgang gehört-zu Wein Jahr Name Restsüße Farbe Abhängige Entities im ER-Modell: Funktionale Beziehung als Schlüssel Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 32
Weitere Konzepte im ER-Modell Abhängige Entity-Typen /2 Mögliche Ausprägung für abhängige Entities gehört-zu Jahr: 2004 Restsüße: 1,2 Name: Pinot Noir Farbe: Rot gehört-zu Jahr: 2003 Restsüße: 1,4 Name: Zinfandel Farbe: Rot gehört-zu Jahr: 1999 Restsüße: 6,7 Name: Riesling Reserve Farbe: Weiß Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 33
Weitere Konzepte im ER-Modell Abhängige Entity-Typen /3 Alternative Notation WeinJahrgang N gehört-zu 1 Wein Jahr Name Restsüße Farbe Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 34
Weitere Konzepte im ER-Modell Die IST-Beziehung Spezialisierungs-/Generalisierungsbeziehung oder auch IST- Beziehung (engl. is-a relationship) textuelle Notation: E 1 IST E 2 IST-Beziehung entspricht semantisch einer injektiven funktionalen Beziehung Herstellung Name Schaumwein IST Wein Farbe Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 35
Weitere Konzepte im ER-Modell Eigenschaften der IST-Beziehung Jeder Schaumwein-Instanz ist genau eine Wein-Instanz zugeordnet Schaumwein-Instanzen werden durch die funktionale IST- Beziehung identifiziert Nicht jeder Wein ist zugleich ein Schaumwein Attribute des Entity-Typs Wein treffen auch auf Schaumweine zu: vererbte Attribute Schaumwein(Name,Farbe,Herstellung) }{{} von Wein nicht nur die Attributdeklarationen vererben sich, sondern auch jeweils die aktuellen Werte für eine Instanz Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 36
Weitere Konzepte im ER-Modell Ausprägung für IST-Beziehung w 1 w 1 w 2 w 2 w 4 w 3 w 5 w 4 Schaumweine w 6 Weine Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 37
Weitere Konzepte im ER-Modell Alternative Notation für IST-Beziehung Herstellung Name Farbe Schaumwein Wein Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 38
Weitere Konzepte im ER-Modell Kardinalitätsangaben: IST für Beziehung E 1 IST E 2 gilt immer: IST(E 1 [1, 1], E 2 [0, 1]) Jede Instanz von E 1 nimmt genau einmal an der IST-Beziehung teil, während Instanzen des Obertyps E 2 nicht teilnehmen müssen Aspekte wie Attributvererbung werden hiervon nicht erfasst Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 39
Weitere Konzepte im ER-Modell Optionalität von Attributen Weingut Adresse Name Land Region Erzeuger sitzt in Anbaugebiet Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 40
Weitere Konzepte im ER-Modell Konzepte im Überblick Begriff Entity Entity-Typ Beziehungstyp Attribut Schlüssel Kardinalitäten Stelligkeit funktionale Beziehung abhängige Entitys IST-Beziehung Optionalität Informale Bedeutung zu repräsentierende Informationseinheit Gruppierung von Entitys mit gleichen Eigenschaften Gruppierung von Beziehungen zwischen Entitys datenwertige Eigenschaft eines Entitys oder einer Beziehung identifizierende Eigenschaft von Entitys Einschränkung von Beziehungstypen bezüglich der mehrfachen Teilnahme von Entitys an der Beziehung Anzahl der an einem Beziehungstyp beteiligten Entity- Typen Beziehungstyp mit Funktionseigenschaft Entitys, die nur abhängig von anderen Entitys existieren können Spezialisierung von Entity-Typen Attribute oder funktionale Beziehungen als partielle Funktionen Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 41
Weitere Konzepte im ER-Modell Zusammenfassung Datenbankmodell, Datenbankschema, Datenbank(instanz) Entity-Relationship-Modell Weitere Konzepte im ER-Modell Basis: Kapitel 3 von [SSH10] Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 42
Weitere Konzepte im ER-Modell Kontrollfragen Was definiert ein Datenbankmodell? Was unterscheidet Modell und Schema? Welche Konzepte definiert das ER-Modell? Durch welche Eigenschaften sind Beziehungstypen charakterisiert? Was unterscheidet abhängige Entity-Typen von normalen Entity-Typen? Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3 43