Post on 18-Sep-2018
transcript
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
Entity-Relationship-Modell
Lernziele für heute . . .
Kenntnis der Konzepte desEntity-Relationship-ModellsFähigkeiten zur koneptuellen Modellierungeines Anwendungsbereichs
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–2
Entity-Relationship-Modell Datenbankmodell
Grundlagen von Datenbankmodellen
Ein Datenbankmodell ist ein System von Konzepten zurBeschreibung von Datenbanken. Es legt Syntax und Semantik vonDatenbankbeschreibungen für ein Datenbanksystem fest.
Datenbankbeschreibungen = Datenbankschemata
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–3
Entity-Relationship-Modell Datenbankmodell
Ein Datenbankmodell legt fest...1 statische Eigenschaften
1 Objekte2 Beziehungen
inklusive der Standard-Datentypen, die Daten über dieBeziehungen und Objekte darstellen können,
2 dynamische Eigenschaften wie1 Operationen2 Beziehungen zwischen Operationen,
3 Integritätsbedingungen an1 Objekte2 Operationen
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–4
Entity-Relationship-Modell Datenbankmodell
Datenbankmodelle
Klassische Datenbankmodelle sind speziell geeignet fürI große Informationsmengen mit relativ starrer Struktur undI die Darstellung statischer Eigenschaften und
Integritätsbedingungen (also die Bereiche 1(a), 1(b) und 3(a))
Entwurfsmodelle: (E)ER-Modell, UML, . . .Realisierungsmodelle: Relationenmodell, objektorientierteModelle, . . .
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–5
Entity-Relationship-Modell Datenbankmodell
Datenbanken versus Programmiersprachen
Datenbankkonzept Typsystem einerProgrammiersprache
Datenbankmodell TypsystemRelation, Attribut . . . int, struct ...
Datenbankschema Variablendeklarationrelation WEIN = (...) var x: int, y: struct Wein
Datenbank WerteWEIN(4961, ’Chardonnay’, ’Weiß’, . . . ) 42, ’Cabernet Sauvignon’
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–6
Entity-Relationship-Modell Datenbankmodell
Abstraktionsstufen
Modelle Daten Algorithmenabstrakt Entity-Relationship-Modell Struktogrammekonkret Hierarchisches Modell Pascal
Netzwerkmodell C, C++Relationenmodell Java, C#
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–7
Entity-Relationship-Modell Datenbankmodell
Datenbankmodelle im Überblick
HM
NWMRM
SQL
NF2
eNF2
ER
SDM
OEM
UMLORDM
SQL:1999
SQL:2003
ODMG
OODM(C++)
implementierungsnah abstrakt
2005
2000
1990
1980
1970
ab Mitte1960
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–8
Entity-Relationship-Modell Datenbankmodell
Datenbankmodelle im Überblick /2
HM: hierarchisches Modell, NWM: Netzwerkmodell, RM:RelationenmodellNF2: Modell der geschachtelten (Non-First-Normal-Form = NF2)Relationen, eNF2: erweitertes NF2-ModellER: Entity-Relationship-Modell, SDM: semantische DatenmodelleOODM / C++: objektorientierte Datenmodelle auf Basisobjektorientierter Programmiersprachen wie C++, OEM:objektorientierte Entwurfsmodelle (etwa UML), ORDM:objektrelationale Datenmodelle
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–9
Entity-Relationship-Modell ER-Modell
Das ER-Modell
Entity: Objekt der realen oder der Vorstellungswelt, über dasInformationen 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. einKunde bestellt einen Wein oder ein Wein wird von einemWinzer angeboten
Attribut: repräsentiert eine Eigenschaft von Entities oderBeziehungen, z.B. Name eines Kunden, Farbe einesWeines oder Datum einer Bestellung
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–10
Entity-Relationship-Modell ER-Modell
ER-BeispielRebsorte
Anbaugebiet
Wein
sitzt in
produziertvon Erzeuger
hergestellt aus
empfiehlt
Gericht
Kritiker
[0,*]
[1,7]
[0,*]
[0,*]
[0,*]
Anteil
NameFarbe
Weingut Adresse
NameRegion
Name
Restsüße
Farbe
Jahrgang
Bezeichnung
Beilage
Name
Organisation
Land
Lizenz
besitzt
LizenzNr
Menge
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–11
Entity-Relationship-Modell ER-Modell
Werte
Werte: primitive Datenelemente, die direkt darstellbar sindWertemengen sind beschrieben durch Datentypen, die nebeneiner Wertemenge auch die Grundoperationen auf diesen WertencharakterisierenER-Modell: vorgegebene Standard-Datentypen, etwa die ganzenZahlen int, die Zeichenketten string, Datumswerte date etc.jeder Datentyp stellt Wertebereich mit Operationen undPrädikaten dar
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–12
Entity-Relationship-Modell ER-Modell
Entities
Entities sind die in einer Datenbank zu repräsentierendenInformationseinheitenim Gegensatz zu Werten nicht direkt darstellbar, sondern nur überihre Eigenschaften beobachtbarEntities sind eingeteilt in Entity-Typen, etwa E1,E2 . . .
Wein
Menge der aktuellen Entities: E = {e1, e2, . . . , en}
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–13
Entity-Relationship-Modell ER-Modell
Attribute
Attribute modellieren Eigenschaften von Entities oder auchBeziehungenalle Entities eines Entity-Typs haben dieselben Arten vonEigenschaften; Attribute werden somit für Entity-Typen deklariert
Wein
Name Farbe
Jahrgang
textuelle Notation E(A1 : D1, . . . ,Am : Dm)
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–14
Entity-Relationship-Modell ER-Modell
Identifizierung durch Schlüssel
Schlüsselattribute: Teilmenge der gesamten Attribute einesEntity-Typs E(A1, . . . ,Am)
{S1, . . . , Sk} ⊆ {A1, . . . ,Am}
in jedem Datenbankzustand identifizieren die aktuellen Werte derSchlüsselattribute eindeutig Instanzen des Entity-Typs E
bei mehreren möglichen Schlüsselkandidaten: Auswahl einesPrimärschlüsselsNotation: markieren durch Unterstreichung:
E(. . . , S1, . . . , Si, . . .)
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–15
Entity-Relationship-Modell ER-Modell
Beziehungstypen
Beziehungen zwischen Entities werden zu Beziehungstypenzusammengefasstallgemein: beliebige Anzahl n ≥ 2 von Entity-Typen kann an einemBeziehungstyp teilhabenzu jedem n-stelligen Beziehungstyp R gehören n Entity-TypenE1, . . . ,En
Ausprägung R eines Beziehungstyps
R ⊆ E1 × E2 × · · · × En
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–16
Entity-Relationship-Modell ER-Modell
Beziehungstypen /2
Notation
WeinErzeuger produziert
textuelle Notation: R(E1,E2, . . . ,En)
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
Entity-Relationship-Modell ER-Modell
Beziehungsattribute
Beziehungen können ebenfalls Attribute besitzenAttributdeklarationen werden beim Beziehungstyp vorgenommen;gilt auch hier für alle Ausprägungen eines Beziehungstyps Beziehungsattribute
RebsorteWeinhergestellt
aus
Anteil
textuelle Notation: R(E1, . . . ,En; A1, . . . ,Ak)
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–18
Entity-Relationship-Modell ER-Modell
Merkmale von Beziehungen
Stelligkeit oder Grad:I Anzahl der beteiligten Entity-TypenI häufig: binärI Beispiel: Lieferant liefert Produkt
Kardinalität oder Funktionalität:I Anzahl der eingehenden Instanzen eines Entity-TypsI Formen: 1:1, 1:n, m:nI stellt Integritätsbedingung darI Beispiel: maximal 5 Produkte pro Bestellung
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–19
Entity-Relationship-Modell ER-Modell
Zwei- vs. mehrstellige Beziehungen
Weinempfiehlt
Gericht
Kritiker
WeinG-K
Gericht
Kritiker
G-W
K-W
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–20
Entity-Relationship-Modell ER-Modell
Ausprägungen im Beispiel
Gericht
Kritiker
Wein
g1
g2
w1
w2
k1 k2
Gericht
Kritiker
Wein
g1
g2
w1
w2
k1 k2
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–21
Entity-Relationship-Modell ER-Modell
Rekonstruktion der Ausprägungen
Gericht
Kritiker
Wein
g1
g2
w1
w2
k1 k2
g1 – k1 – w1
g1 – k2 – w2
g2 – k2 – w1
aber auch: g1 – k2 – w1
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–22
Entity-Relationship-Modell ER-Modell
1:1-Beziehungen
jedem Entity e1 vom Entity-Typ E1 ist maximal ein Entity e2 aus E2zugeordnet und umgekehrtBeispiele: Prospekt beschreibt Produkt, Mann ist verheiratet mitFrau
E1 E2
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–23
Entity-Relationship-Modell ER-Modell
1:N-Beziehungen
jedem Entity e1 vom Entity-Typ E1 sind beliebig viele Entities E2zugeordnet, aber zu jedem Entity e2 gibt es maximal ein e1 aus E1
Beispiele: Lieferant liefert Produkt, Mutter hat Kinder
E1 E2
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–24
Entity-Relationship-Modell ER-Modell
N:1-Beziehung
invers zu 1:N, auch funktionale Beziehungzweistellige Beziehungen, die eine Funktion beschreiben:Jedem Entity eines Entity-Typs E1 wird maximal ein Entity einesEntity-Typs E2 zugeordnet.
R : E1 → E2
Weinproduziert
von Erzeuger
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–25
Entity-Relationship-Modell ER-Modell
1:1-Beziehung
Erzeuger besitzt Lizenz
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–26
Entity-Relationship-Modell ER-Modell
M:N-Beziehungen
keine RestriktionenBeispiel: Bestellung umfasst Produkte
E1 E2
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–27
Entity-Relationship-Modell ER-Modell
[min,max]-Notation
E1 EnR[min1, max1] [minn, maxn]
E2
[min2, max2]...
schränkt die möglichen Teilnahmen von Instanzen der beteiligtenEntity-Typen an der Beziehung ein, indem ein minimaler und einmaximaler Wert vorgegeben wirdNotation für Kardinalitätsangaben an einem Beziehungstyp
R(E1, . . . ,Ei[mini,maxi], . . . ,En)
Kardinalitätsbedingung: mini ≤ |{r | r ∈ R ∧ r.Ei = ei}| ≤ maxi
Spezielle Wertangabe für maxi ist ∗Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–28
Entity-Relationship-Modell ER-Modell
Kardinalitätsangaben
[0, ∗] legt keine Einschränkung fest (default)R(E1[0, 1],E2) entspricht einer (partiellen) funktionalen BeziehungR : E1 → E2, da jede Instanz aus E1 maximal einer Instanz aus E2zugeordnet isttotale funktionale Beziehung wird durch R(E1[1, 1],E2) modelliert
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–29
Entity-Relationship-Modell ER-Modell
Kardinalitätsangaben: Beispiele
partielle funktionale Beziehunglagert_in(Produkt[0,1],Fach[0,3])
„Jedes Produkt ist im Lager in einem Fach abgelegt, allerdingswird ausverkauften bzw. gegenwärtig nicht lieferbaren Produktekein Fach zugeordnet. Pro Fach können maximal drei Produktegelagert werden.“totale funktionale Beziehung
liefert(Lieferant[0,*],Produkt[1,1])
„Jedes Produkt wird durch genau einen Lieferant geliefert, aberein Lieferant kann durchaus mehrere Produkte liefern.“
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–30
Entity-Relationship-Modell ER-Modell
Alternative Kardinalitätsangabe
geliefert vonProdukt Lieferant
[1,1] [0,*]
geliefert vonProdukt Lieferant
N 1
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–31
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Abhängige Entity-Typen
abhängiger Entity-Typ: Identifikation über funktionale Beziehung
WeinJahrgang Weingehört-zu
Jahr
Restsüße
Name
Farbe
Abhängige Entities im ER-Modell: Funktionale Beziehung alsSchlüssel
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–32
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Abhängige Entity-Typen /2
Mögliche Ausprägung für abhängige Entities
Name: Pinot NoirFarbe: Rot
Name: Riesling ReserveFarbe: Weiß
Name: ZinfandelFarbe: Rot
gehört-zu
gehört-zu
gehört-zu
Jahr: 2004Restsüße: 1,2
Jahr: 2003Restsüße: 1,4
Jahr: 1999Restsüße: 6,7
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–33
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Abhängige Entity-Typen /3
Alternative Notation
NWeinJahrgang Weingehört-zu
1
Jahr
Restsüße
Name
Farbe
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–34
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Die IST-Beziehung
Spezialisierungs-/Generalisierungsbeziehung oder auch IST-Beziehung (engl. is-a relationship)textuelle Notation: E1 IST E2
IST-Beziehung entspricht semantisch einer injektiven funktionalenBeziehung
WeinSchaumwein IST
Name
Farbe
Herstellung
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–35
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Eigenschaften der IST-Beziehung
Jeder Schaumwein-Instanz ist genau eine Wein-Instanzzugeordnet Schaumwein-Instanzen werden durch die funktionale IST-Beziehung identifiziertNicht jeder Wein ist zugleich ein SchaumweinAttribute des Entity-Typs Wein treffen auch auf Schaumweine zu:„vererbte“ Attribute
Schaumwein(Name,Farbe︸ ︷︷ ︸von Wein
,Herstellung)
nicht nur die Attributdeklarationen vererben sich, sondern auchjeweils die aktuellen Werte für eine Instanz
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–36
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Ausprägung für IST-Beziehung
Schaumweine
Weine
w1
w2
w3
w1
w2
w5
w4
w6
w4
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–37
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Alternative Notation für IST-Beziehung
WeinSchaumwein
Name FarbeHerstellung
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–38
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Kardinalitätsangaben: IST
für Beziehung E1 IST E2 gilt immer: IST(E1[1, 1],E2[0, 1])
Jede Instanz von E1 nimmt genau einmal an der IST-Beziehungteil, während Instanzen des Obertyps E2 nicht teilnehmen müssenAspekte wie Attributvererbung werden hiervon nicht erfasst
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–39
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Optionalität von Attributen
Anbaugebietsitzt inErzeuger
Weingut AdresseName
RegionLand
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–40
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Konzepte im Überblick
Begriff Informale BedeutungEntity zu repräsentierende InformationseinheitEntity-Typ Gruppierung von Entitys mit gleichen EigenschaftenBeziehungstyp Gruppierung von Beziehungen zwischen EntitysAttribut datenwertige Eigenschaft eines Entitys oder einer Bezie-
hungSchlüssel identifizierende Eigenschaft von EntitysKardinalitäten Einschränkung von Beziehungstypen bezüglich der mehr-
fachen Teilnahme von Entitys an der BeziehungStelligkeit Anzahl der an einem Beziehungstyp beteiligten Entity-
Typenfunktionale Beziehung Beziehungstyp mit Funktionseigenschaftabhängige Entitys Entitys, die nur abhängig von anderen Entitys existieren
könnenIST-Beziehung Spezialisierung von Entity-TypenOptionalität Attribute oder funktionale Beziehungen als partielle Funk-
tionen
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–41
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Zusammenfassung
Datenbankmodell, Datenbankschema, Datenbank(instanz)Entity-Relationship-ModellWeitere Konzepte im ER-ModellBasis: Kapitel 3 von [SSH10]
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–42
Entity-Relationship-Modell Weitere Konzepte im ER-Modell
Kontrollfragen
Was definiert ein Datenbankmodell? Wasunterscheidet Modell und Schema?Welche Konzepte definiert dasER-Modell?Durch welche Eigenschaften sindBeziehungstypen charakterisiert?Was unterscheidet abhängigeEntity-Typen von normalen Entity-Typen?
Sattler / Saake Datenbanksysteme Letzte Änderung: Okt. 2016 3–43