2. Datenbankmodelle für den Entwurf
■ Grundlagen von Datenbankmodellen
■ Entity-Relationship-Modelle
■ Objektorientierte Modelle: UML
VL Datenbanken I – 2–1
Grundlagen von Datenbankmodellen
Begriff Datenbankmodell
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
VL Datenbanken I – 2–2
Ein Datenbankmodell legt fest...
1. statische Eigenschaften (a) Objekte
(b) Beziehungen
inklusive der Standard-Datentypen, die Daten über die Beziehungen und Objekte darstellen können,
2. dynamische Eigenschaften wie (a) Operationen
(b) Beziehungen zwischen Operationen, 3. Integritätsbedingungen an
(a) Objekte (b) Operationen.
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)).
VL Datenbanken I – 2–4
Modelle für Daten und Algorithmen
Modelle Daten Algorithmen
abstrakter Entity-Relationship-Modell Flußdiagramme konkreter Hierarchisches Modell PASCAL
Netzwerkmodell FORTRAN
Relationenmodell Ada
Neuere Modelle: deduktiv, objektorientiert, semistrukturiert
VL Datenbanken I – 2–5
Historische Einordnung und Bezüge
NWM HM ab Mitte 1960
1970
1980
1990
2000
implementierungsnah
ODMG
abstrakt
ER
SDM OEM
RM
eNF SQL
OODM
(C++)
ORM / SQL-99 NF
2 2
Semantikfestlegung
■ Wertebereiche:
abstrakte Datentypen
■ Datenbankzustände:
Modell einer prädikatenlogischen Beschreibung
■ Gesamtsemantik:
Zustandsfolgen
VL Datenbanken I – 2–7
Formalisierung durch Zustandsfolgen
(Heuer, OODBMS, 1−345−6.., 1992) (Saake, OOMIS, 1−432−5.., 1993)
(Heuer, OODBMS, 1−345−6.., 1992) (Saake, OOMIS, 1−432−5.., 1993)
(Heuer, OODBMS, 1−345−6.., 1992) (Saake, OOMIS, 1−432−5.., 1993) (Heuer&Saake, DBI, 1−234−5..,1995)
PSfrag replacements σ0
σ1
σ2
VL Datenbanken I – 2–8
Semantikfestlegung am Beispiel I
Trägermengen für mögliche Werte:µ
■ µ(integer) =ZZ(die ganzen ZahlenZZ)
■ µ(string) =C∗(Folgen von Zeichen aus C={a, b, . . . , z, A, B, . . . , Z})
■ µ(set(z)) = 2µ(z)
(die Potenzmenge über den Werten des
Parameterdatentypsz, oder anders ausgedrückt die Mengen aller Teilmengen von möglichen Werten inµ(z))
■ µ(tuple(z1, . . . , zn)) =µ(z1)× · · · ×µ(zn)
(das kartesische Produkt der Parameterwertebereiche)
Semantikfestlegung am Beispiel II
Datenbankentwicklung:
ˆ
σ=hσ0, σ1, . . . , σi, . . .i.
Bedeutung einer DB-Variablen (T: Zeitachse):
ˆ
σ(db) : T →µ(typ(db))
VL Datenbanken I – 2–10
Semantikfestlegung am Beispiel III
Beispiel der Bücher-Datenbank:
ˆ
σ(Bcher) : T →2C∗×C∗×C∗×ZZ Ein konkreter Zustandswert zum Zeitpunkt42:
ˆ
σ(Bcher)(42) ={(Heuer,OODB,1-453-,1992), (Saake,OOSIS,1-321-,1993)}
VL Datenbanken I – 2–11
Entity-Relationship-Modelle
P. P. Chen im Jahre 1976
Entity: Objekt der realen oder der Vorstellungswelt, über das Informationen zu speichern sind
z.B. Vorlesungsveranstaltung, Buch, Lehrperson, . . . Auch Informationen über Ereignisse: Prüfungen, . . .
Relationship: Beziehung zwischen Entities, z.B. eine Lehrperson hält eine Vorlesung
Attribut: Eigenschaft von Entities oder Beziehungen, z.B. die ISBN eines Buchs, der Titel einer Vorlesung, oder das Semester, in dem eine Vorlesung gehalten wird
Ein einfaches Beispiel
Buch Vorlesung
Zeitplan Titel
empfiehlt Semester
liest
Autor
ISBN Titel Telefon#
Fach Name Professor
VL Datenbanken I – 2–13
ER-Modellierungskonzepte I
Werte
µ(int) : der WertebereichZZ(die ganzen Zahlen) mit +,−,×,÷,=, <, ...
µ(string) : der WertebereichC∗(Folgen von Zeichen aus der MengeC) mit+,=, <, ...
...
µ(D): Interpretation vonD, mögliche Werte einer Entity- Eigenschaft
VL Datenbanken I – 2–14
ER-Modellierungskonzepte II
Entities:Entity-Typen, etwaE1, E2, . . . E
µ(E) Menge der möglichen Entities vom TypE
wird hier nicht festgelegt (etwa Menge isomorph zu natürlichen Zahlen)
σ(E) Menge deraktuellenEntities vom TypEin einem Zustandσ
(σ, Sigma, für state (Zustand))
Aktuelle Entities müssen mögliche Elemente sein:
σ(E)⊆µ(E)
Ferner gefordert:σ(E)endlich
ER-Modellierungskonzepte III
Beziehungen: Beziehungstypen Notationn-stelliger Beziehungstypen:
E E
R
n
1
... E
i...
VL Datenbanken I – 2–16
ER-Modellierungskonzepte IV
mögliche Ausprägungen:
µ(R) =µ(E1)× · · · ×µ(En)
aktuelle Beziehungen nur zwischen aktuellen Entities:
σ(R)⊆σ(E1)× · · · ×σ(En) Rollennamen:
verheiratet(Frau:Person,Mann:Person)
VL Datenbanken I – 2–17
ER-Modellierungskonzepte V
Attribute:
A : D E
Semantik einer Attributdeklaration : Ein AttributAeines Entity-TypenEist im Zustandσeine Abbildung
σ(A) :σ(E)→µ(D)
ER-Modellierungskonzepte VI
Beziehungsattribute:
A : D R
Semantik:
σ(A) :σ(R)→µ(D) Textuelle Notation:
E(A1:D1, . . . , Am:Dm) bzw.
R(E1, . . . , En;A1, . . . , Ap)
VL Datenbanken I – 2–19
Semantik eines ER-Schemas
Jeder Zustandσeines ER-Schemas ist eine Zuordnung E 7→ σ(E)⊆µ(E)
R(E1, . . . , En;. . .) 7→ σ(R)⊆σ(E1)×. . .×σ(En) E(. . . , Ai:D, . . .) 7→ σ(Ai) :σ(E)→µ(D), . . . R(. . .;. . . , Ai:D, . . .) 7→ σ(Ai) :σ(R)→µ(D), . . . bei gegebener fester Interpretationµder Datentypen durch Wertebereiche und der Entity-Typen durch vorgegebene Mengen möglicher Entities.
VL Datenbanken I – 2–20
Zwei- vs. mehrstellige Beziehungen I
Dreistellige Beziehung
ISBN Buch empfiehlt
Vorlesung Professor
Titel
Name Fach
Zwei- vs. mehrstellige Beziehungen II
Mögliche Umwandlung in zweistellige Beziehungen
Buch V-B Vorlesung Titel
P-B P-V
ISBN Fach
Name Professor
VL Datenbanken I – 2–22
Ausprägungen im Beispiel
Korrekte Ausprägung der dreistelligen Beziehung empfiehlt Professor Vorlesung Buch (ISBN)
Heuer DB 1 1-234-..
Heuer DB 2 9-876-..
Saake DB 1 9-876-..
Saake DB 2 9-876-..
VL Datenbanken I – 2–23
Ausprägungen im Beispiel II
Ausprägungen der drei 2-stelligen Beziehungstypen
P-V Prof. Vorl.
Heuer DB 1 Heuer DB 2 Saake DB 1 Saake DB 2
P-B Prof. Buch Heuer 1-234-..
Heuer 9-876-..
Saake 9-876-..
V-B Vorl. Buch DB 1 1-234-..
DB 2 9-876-..
DB 1 9-876-..
... entsprechen aber auch:
empfiehlt Professor Vorlesung Buch (ISBN)
Heuer DB 1 1-234-..
Heuer DB 1 9-876-..
Heuer DB 2 9-876-..
Saake DB 1 9-876-..
Saake DB 2 9-876-..
Ausprägungen im Beispiel III
Jetzt außerdem möglich:
P-V Prof. Vorl.
Heuer DB 1 Heuer DB 2 Saake DB 1 Saake DB 2
P-B Prof. Buch Heuer 1-234-..
Heuer 9-876-..
Saake 9-876-..
V-B Vorl. Buch DB 1 1-234-..
DB 2 9-876-..
DB 1 9-876-..
DB 3 4-242-..
VL Datenbanken I – 2–25
Funktionale Beziehungen
Textuell:
R:E1→E2 Graphisch:
sitzt-in Zimmer
Zimmer#
Gebäude Fach
Name Professor
Telefon#
Bedeutung:
σ(R) :σ(E1)→σ(E2)
VL Datenbanken I – 2–26
Identifizierung durch Schlüssel
Für Entity-TypE(A1, . . . , Am)sei Teilmenge{S1, . . . , Sk}der gesamten Attribute gegeben, die Schlüsselattribute.
Es gilt:{S1, . . . , Sk} ⊆ {A1, . . . , Am}.
In jedem Datenbankzustand identifizieren die aktuellen Werte der Schlüsselattribute eindeutig Instanzen des Entity-TypsE:
∀e1, e2∈σ(E) :
(σ(S1)(e1) =σ(S1)(e2)∧. . .∧σ(Sk)(e1) =σ(Sk)(e2))
=⇒ (e1=e2)
Notation: markieren durch Unterstreichung:
E(. . . , S1, . . . , Si, . . .)
Abhängige Entity-Typen I
abhängiger Entity-Typ:
Identifikation über funktionale Beziehung
Ausleiher Rückgabe
Nummer
BuchExemplar gehört-zu Buch
ISBN Titel
Abhängige Entities im ER-Modell:
Funktionale Beziehung als Schlüssel
VL Datenbanken I – 2–28
Abhängige Entity-Typen II
■ Mögliche Ausprägung für abhängige Entities
Nummer: 1
Rückgabe: 1.1.97 Nummer: 1 Ausleiher: Saake Rückgabe: 1.1.97
ISBN: 1-234-
Ausleiher: Heuer Nummer: 2
Ausleiher: Heuer Rückgabe: 1.1.92
ISBN: 1-333-
ISBN: 1-345- Titel: OODB
Titel: Betriebssysteme Titel: Zen for Computer Science gehört-zu
gehört-zu gehört-zu
Buchexemplare Bücher
VL Datenbanken I – 2–29
Abhängige Entity-Typen III
■ Alternative Notation
N 1
Buch
ISBN Titel Nummer
BuchExemplar gehört-zu
Ausleiher Rückgabe
Die
IST-Beziehung I
Prüfer Fach
IST Mitarbeiter Personal#
Institut
■ Jeder Prüfer-Instanz ist genau einer Mitarbeiter-Instanz zugeordnet: Spezialfall eines abhängigen Entity-Typs!
■ Nicht jeder Mitarbeiter ist zugleich Prüfer.
VL Datenbanken I – 2–31
Die
IST-Beziehung II
■ Attribute des Entity-TypsMitarbeitertreffen auch auf Prüfer zu: “vererbte” Attribute.
Pr¨ufer(Name,Personal#
| {z }
von Mitarbeiter
,Fach)
Nicht nur Deklarationen vererben sich, sondern auch aktuelle Werte.
■ Bedeutung:
σ(E1)⊆σ(E2)
VL Datenbanken I – 2–32
Die
IST-Beziehung: Alternative Notation
Fach Personal#
Institut Mitarbeiter Prüfer
Kardinalitäten I
E E
R
... n
1
[min_1, max_1] [min_n, max_n]
■ Notation 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ürmaxiist∗
VL Datenbanken I – 2–34
Kardinalitäten II
■ [0,∗]ist Standardannahme.
■ Die AngabeR(E1[0,1], E2)entspricht einer (partiellen) funktionalen BeziehungR:E1→E2, da jede Instanz ausE1maximal einer Instanz ausE2zugeordnet ist.
Eine totale funktionale Beziehung wird durch R(E1[1,1], E2)modelliert.
VL Datenbanken I – 2–35
Kardinalitäten: Beispiele
arbeitet in(Mitarbeiter[0,1],Raum[0,3])
■ Jedem Mitarbeiter ist in der Regel ein Raum zugeordnet, aber einige (externe) Mitarbeiter haben kein
Arbeitszimmer.
■ Pro Zimmer arbeiten maximal drei Mitarbeiter.
verantwortlich(Mitarbeiter[0,*],Rechner[1,1])
■ Jedem Rechner ist genau ein Mitarbeiter zugeordnet, der für die Betreuung verantwortlich ist.
Für die BeziehungE1ISTE2gilt:IST(E1[1,1], E2[0,1])
Vereinfachte Kardinalitätsangaben
für binären Beziehungstyp
E_1 1 R N E_2
R E_2
E_1 [0,1] [0,*]
ist äquivalent zu
Die AngabeN entspricht∗
VL Datenbanken I – 2–37
Optionalität von Attributen
Zeitplan Titel Semester
liest Vorlesung
Professor
Telefon#
Fach Name
VL Datenbanken I – 2–38
Weitere Konzepte
■ Strukturierte Attributwerte im ER-Modell
Person
Name Vorname Telefon#
Straße Nummer Ort
Adresse
Weitere Konzepte
■ Abgeleitete Attributwerte im ER-Modell
Jahresgehalt := Monatsgehalt * Gehaltsmonate Jahresgehalt
Gehaltsmonate Monatsgehalt Angestellter
Name Vorname
VL Datenbanken I – 2–40
Erweiterungen des ER-Modells I
■ Spezialisierung und Generalisierung
◆ Spezialisierung enstprichtIST-Beziehung:
ProfessorSpezialisierung vonMitarbeiter
◆ Generalisierung: Entities in einen allgemeineren Kontext.
PersonoderInstitutalsAusleiher
◆ Partitionierung: Spezialfall der Spezialisierung, mehrere disjunkte Entity-Typen.
Partitionierung von Büchern in Monographien und Sammelbändern.
VL Datenbanken I – 2–41
Erweiterungen des ER-Modells II
■ Komplexe Objekte
◆ Aggregierung: Entity aus einzelnen Instanzen anderer Entity-Typen zusammengesetzt.
Fahrzeug zusammengesetzt aus Motor, Karosserie...
◆ Sammlung oder Assoziation: Mengenbildung.
Team als Gruppe von Personen.
■ Beziehungen höheren Typs
◆ Spezialisierung und Generalisierung auch für Beziehungstypen.
Beispiel: BeziehungAusleihezuKurzausleihe spezialisiert.
◆ Beziehungen zwischen Beziehungsinstanzen:
Beziehungen zweiter und höherer Ordnung
Ein Erweitertes ER-Modell
Ein Erweitertes ER-Modell
■ Übernommene Grundkonzepte des ER-Modells
◆ Werte: Standard-Datentypen des ER-Modells.
◆ Entities bzw. Entity-Typen.
◆ Beziehungen bzw. Beziehungstypen.
◆ Attribute: unverändert.
◆ Funktionale Beziehungen: unverändert.
◆ Schlüssel: erweitertes Konzept, neue Notation.
■ Nicht übernommen:
◆ IST-Beziehung ersetzt durch Typkonstruktor.
◆ Abhängige Entity-Typen durch erweiterte
Schlüsselkonzept objektwertige Attribute ersetzt.
VL Datenbanken I – 2–43
Schlüsselnotation im EER-Modell
BuchExemplar gehört-zu Buch
ISBN Titel Rückgabe
Ausleiher Nummer
VL Datenbanken I – 2–44
Typkonstruktor
Ein Modellierungskonzept für
■ Spezialisierung /IST-Beziehung
■ Generalisierung
■ Partitionierung
Spezialisierung mit Typkonstruktor
Prüfer Mitarbeiter
Fach Personal#
Institut
Spezialisierung (IST-Beziehung) notiert mit dem Typkonstruktor des EER-Modells
VL Datenbanken I – 2–46
Generalisierung
Notation: Typkonstruktor für Generalisierung
...
OutTypInTyp n InTyp 1
Bedeutung:
[
i
σ(InTypi)⊇σ(OutTyp)
VL Datenbanken I – 2–47
Beispiel für Generalisierung
berechtigt-bis Ausleiher Mitarbeiter
Personal#
Institut
Institut
Institutsname
Partitionierung
...
OutTyp n OutTyp 1 InTyp
Semantik:
■ Teilmengenbeziehung:σ(InTyp)⊇S
i(σ(OutTypi))
■ Disjunktheit der Partitionen:
∀i, j: i6=j =⇒ σ(OutTypi)∩σ(OutTypj) =∅
VL Datenbanken I – 2–49
Partitionierung vs. mehrf. Spezialisierung
Partitionierung
Buch
ISBN Titel Verlag
Monographie
Autor
Sammelband
Herausgeber
Person
Name Vorname
Adresse Student
MatrikelNr.
Zimmer Mitarbeiter
Mehrfache Spezialisierung
VL Datenbanken I – 2–50
Partitionierung vs. Generalisierung
Partitionierung
Zeitschrift
ISSN Jahrgang
Autor ISBN
Dokument Buch
Titel DokID
Standort
Dokument
DokID Titel
Standort Zeitschrift
Jahrgang ISSN ISBN Autor
Buch
Generalisierung
Vergleich
Partitionierung:
σ(Dokument)⊇σ(Buch)∪σ(Zeitschrift) Generalisierung:
σ(Dokument)⊆σ(Buch)∪σ(Zeitschrift)
VL Datenbanken I – 2–52
Mehrfachspezialisierung
Student
MatrikelNr.
Mitarbeiter
Zimmer Studentische
Hilfskraft Stundenzahl Person
Name Vorname Adresse
Mehrfachspezialisierung zuStudentischeHilfskraft σ(StudHilfskraft)⊆σ(Student)∩σ(Mitarbeiter) Mehrfachspezialisierungen sind nur erlaubt, wenn die Eingabe-Typen direkt oder indirekt aus einer gemeinsamen Ausgangsklasse konstruiert wurden.
VL Datenbanken I – 2–53
Objektorientierte Entwurfsmodelle
Seit Beginn der 90er Jahre: Ansätze zur objektorientierten Analyse und zum objektorientierten Entwurf
Ansätze der ersten Generation
■ Object Modelling Technique (OMT) von Rumbaugh
■ Methoden von Jacobson, Booch, . . .
Ab Mitte der 90er Jahre: Vereinheitlichung zur Unified Modeling Language (UML) (Booch, Jacobson, Rumbaugh)
Entwurf mit UML
■ Objektmodell: Anreicherung von EER-Modellen um objektorientierte Konzepte (Klassen, Beziehungen, Operationen, . . . )
■ Dynamikmodell: Beschreibung des dynamischen Verhaltens eines Objektes in Form von
Übergangsautomaten (Übergänge entsprechen Systemereignissen)
■ Funktionenmodell: Datenflußdiagramme zur Darstellung globaler Berechnungsabläufe
■ Anwendungsfälle
■ Implementierungsdiagramme
■ ...
VL Datenbanken I – 2–55
Objektmodell von UML
■ Erweiterung des EER-Modells
■ Unterscheidung in
◆ Klassendiagramm: entspricht
Datenbankschema-Notation;beschreibt Typen von Kollektionen von Instanzen
◆ Objektdiagramm: beschreibt Einzelobjekte
■ Beschreibung von strukturellen Aspekten (Attribute, Beziehungen) und Operationen
■ Formulierung von Integritätsbedingungen und
Ableitungsregeln (textuell, Object Constraint Language)
VL Datenbanken I – 2–56
Darstellung von Klassen
■ Klassen
Klassenname
Attribute Operationen
■ Attribute
name: typ = initWert { Zusicherung }
■ Operationen
name { Parameterliste }
Darstellung von Klassen II
Weitere Angaben
■ verschiedene Arten von Klassen, speziell abstrakte Klassen (Notation:{ abstract }, Metaklassen und parametrisierte Klassen
■ Sichtbarkeit von Attributen (private, protected, public) sowie readonly-Attribute
■ Abgeleitete (berechnete) Attribute durch vorangestelltes /-Symbol
■ Klassenattribute durch Unterstreichung
VL Datenbanken I – 2–58
Beziehungen
Standardfall: binäre Beziehungen (Assoziationen)
Professor name: string fach: string telefonnr: number = 4242
Institut name: string fachbereich: string Lehrkraft
* 1
Lehreinheit ist zugeordnet
beschäftigt
■ Bezeichner der Beziehung mit Leserichtung (keine funktionale Beziehung)
■ Rollennamen für Implementierung von Referenzattributen
■ Kardinalitäten analog zum ER-Modell
■ optional: Zusicherung
VL Datenbanken I – 2–59
Beziehungen mit Attributen
Beziehungen mit Attributen als „degenerierte“ Klassen
Professor name: string fach: string telefonnr: number = 4242
0..* 0..*
Student name: string matrnr: string prüft
am: date note:integer fach: string
Qualifizierende Beziehungen
Zugriffsschlüssel für spätere Implementierung
Institut name: string fachbereich: string
*
Mitarbeiter name: string login: string telefonnr: number = 4242
beschäftigt
login 1
VL Datenbanken I – 2–61
Weitere Beziehungen
■ Abgeleitete Beziehungen
◆ Beispiel: berechnete Referenz zur Abkürzung von mehrstufigen Referenzpfaden
◆ Notation: Bezeichner mit vorangestelltem /-Symbol
■ n-stellige Beziehungen
◆ Notation wie im ER-Modell durch Raute
VL Datenbanken I – 2–62
Aggregation in UML
■ Aggregation über binäre Assoziation mit besonderer Notation
Ganzes 0..1 besteht aus * Teil
■ Komposition: Abhängige Objekte als Spezialfall
Ganzes 0..1 besteht aus *
existenzabhängiges Teil
Aggregation in UML II
Baumdarstellung für mehrere aggregierte Teile Ganzes
Teil A Teil B Teil C
1.. 0..4 0..
1
* *
VL Datenbanken I – 2–64
Spezialisierung
Spezialisierung mit Vererbung Oberklasse
Unterklasse B Unterklasse A
Angabe von Zusicherungen (overlapping, disjoint, complete, incomplete) möglich
VL Datenbanken I – 2–65
Spezialisierung mit Diskriminator
■ Spezielle Form der Spezialisierung
■ Aufzählungsattribut (Diskriminator ) teilt Instanzen in Unterklassen auf
■ Wertebereich des Diskriminators: beteiligte Klassennamen
Unterklasse B Unterklasse A
Diskriminator
Oberklasse