Datenbankentwurf 4.1 Konzeptueller Entwurf

Werbung
4.1 Konzeptueller Entwurf
Kapitel 4
Datenbankentwurf
– Kapitel 4 –
4.1 Konzeptueller Entwurf
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
Konzeptueller Entwurf: Übersicht
1
Kapitel 4
•
erste Phase des "eigentlichen" Entwurfsprozesses: Umsetzen der Strukturanforderungen und der Gesetzmäßigkeiten des Anwendungsbereichs in eine
formale Darstellung
konzeptuelles Schema
•
Statt "konzeptuell" wird oft auch das Adjektiv "konzeptionell" verwendet.
Einmal stehen die 'Konzepte' der Anwendung, einmal die 'Konzeption' der
Datenbank im Vordergrund - gemeint ist letztlich dasselbe. Im englischen
Sprachraum: "conceptual modeling" (daher in dieser Vorlesung "konzeptuell").
•
Charakteristisch für die konzeptuelle Modellierung (KM) ist der enge Bezug der
Modellierungskonzepte zur realen Welt statt zum Rechner.
•
Bei der KM spielen die später zu entwerfenden Datenstrukturen noch keine Rolle!
Im Vordergrund steht stets noch der Dialog mit dem Fachanwender.
•
In der kommerziellen Welt werden derzeit zwei Datenmodelle überwiegend für
den DB-Entwurf verwendet, die auch in dieser Vorlesung genutzt werden:
• konzeptueller Entwurf: Entity-Relationship(ER)-Modell
• logischer Entwurf:
Relationenmodell
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
2
Das Entity-Relationship-Modell
Kapitel 4
• "Entity-Relationship"-Datenmodell (ER-Modell):
• vorgeschlagen in einer Arbeit aus dem Jahre 1976 von Peter Chen
• graphische Notation für Anwendungsmodellierung
• eigenständiges semantisches Datenmodell
(an der Bedeutung der Konzepte in der realen Welt orientiert)
• Vorläufer der heutigen objektorientierten Datenmodelle
• äusserst erfolgreich als Mittel zum "Vorentwurf" relationaler DB
• seit vielen Jahren: sogar eigene Konferenzreihe (ER Conferences)
•
wenige sehr einfache und grundlegende Konzepte zur Modellierung:
• "entities" (Gegenstände) charakterisiert durch Attribute (Eigenschaften)
• 2- oder mehrstellige "relationships" (Beziehungen) zwischen Entities,
ggf. auch charakterisiert durch Attribute
• oft nicht explizit erwähnt, aber wichtig und elementar:
"values" (Werte); druckbare Zeichen als Werte von Attributen
von untergeordnetem Rang (charakterisieren Gegenstände)
• "roles" (Rollen): Bezeichner für die spezielle Bedeutung, die einem
Gegenstand im Rahmen einer Beziehung zukommt
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
Entity ???
3
Kapitel 4
Was ist das: ein Entity ?
• engl. "entity" (Plural: "entities"):
being, person, creature, individual, organism, object, article,
thing, substance, quantity
(Synonyme nach Oxford Thesaurus)
• dt. "Entität": "[lat.] die bestimmte Seinsverfassung eines Seienden, auch
dieses selbst ( → Ens)"
(dtv-Lexikon, Bd. 5)
• dt. "Ens": "[lat.] scholastische Philosophie: das Seiende oder etwas, das
dem Sein zukommt, urspr. das wirklich Seiende, i.w.S. alles, das ist
oder sein kann, insgesamt das real Seiende (ens reale), i. Ggs. zum
Gedankending (ens rationis). . ."
(dtv-Lexikon Bd. 5)
im Buch von Kemper:
"Gegenstände (bzw. Entities) sind wohlunterscheidbare physisch oder
gedanklich existierende Konzepte der zu modellierenden Welt."
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
4
ein Entity
Kapitel 4
Jedes Entity ist durch die Angabe der Werte aller seiner Attribute
vollständig charakterisiert.
ein Entity
PersNr
seine Attribute
Vorname Name Alter Fach
"Rainer"
765
"Manthey"
BesGrp
"Informatik" "C3"
49
deren Werte
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
5
zwei gleichartige Entities
Kapitel 4
PersNr
765
"Rainer"
Vorname Name Alter Fach
"Manthey"
49
BesGrp
"Informatik" "C3"
ein anderes Entity
gleiche Attribute
PersNr
?
Vorname Name Alter Fach
"Joachim M." "Buhmann"
43
BesGrp
"Informatik" "C3"
z.T. anderes Werte
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
6
Entity-Typen
Kapitel 4
• Gleichartige Entities können zu Entity-Typen zusammengefasst werden.
• "Gleichartigkeit" setzt zumindest identische Attributstruktur voraus.
(Attributnamen und zugehörige Wertebereiche sind gleich)
•
Entity-Typen werden in der graphischen Notation des ER-Modells durch
Rechtecke dargestellt. Attribute markieren die Verbindung zwischen den
Entity-Typen und Wertebereichen (meist als Oval dargestellt):
professor
PersNr
Int
Name des Typs
Vorname Name Alter Fach
String
Int
String
© 2002 Prof. Dr. Rainer Manthey
BesGrp
String
String
Informationssysteme
7
Entity-Typen: alternative Darstellungsweisen
Kapitel 4
• Wertebereichsnamen werden oft weggelassen (sofern sie offensichtlich oder
irrelevant sind) und stattdessen nur die Attribute in die Ovale geschrieben:
professor
PersNr
Vorname
Name
Alter
Fach
BesGrp
• In grösseren Diagrammen fällt die Attributstruktur meistens ganz weg, um
Platz zu sparen (oder wird nur abkürzend bzw. separat notiert):
professor
PersNr, Vorname, Name, . . .
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
8
Instanzen und Population eines Entity-Typs
Kapitel 4
• Jedes Entity "gehört zu" mindestens einem Entity-Typ:
Es wird dann Instanz dieses Typs genannt.
professor
eine Instanz von
• Die Menge aller aktuellen Instanzen eines Entity-Typs heisst dessen Population.
professor
eine Population von
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
Mehrfachklassifizierung
9
Kapitel 4
• Ein und dasselbe Entity kann Instanz verschiedener Entity-Typen sein.
professor
Instanz von
Instanz von
werder bremenfan
• Dabei kann die Attributstruktur der beiden Typen durchaus verschieden sein.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
10
Klassifizierung bei gleicher Attributstruktur
Kapitel 4
• Entities mit gleicher Attributstruktur müssen keineswegs Instanzen desselben
Typs sein !
Instanz von
esel
name, vorname, alter
werder bremenfan
Instanz von
name, vorname, alter
• Fast immer muss es noch zusätzliche Klassifizierungsmerkmale geben, die
man an der Attributstruktur nicht ablesen kann.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
11
Schlüsselattribute
•
Kapitel 4
Wie bereits im relationalen Modell (Access, SQL) gibt es in der Regel stets ein
oder mehrere Attribute pro Entity-Typ, deren Werte ausreichen, um die einzelnen Instanzen eindeutig zu identifizieren:
Schlüsselattribute
professor
PersNr
Vorname
Name
Alter
Fach
BesGrp
• (Primär-)Schlüsselattribute werden meist durch unterstreichen im ER-Diagramm
gekennzeichnet.
• Schlüssel sollten stets "minimal" sein (kein Attribut kann weggelassen werden).
• Eine Unterscheidung von Primärschlüsseln und anderen Schlüsselkandidaten
ist im ER-Modell nicht vorgesehen, ist aber sinnvoll.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
12
SLF-Datenbank: Entity-Typen und Attribute
Kapitel 4
Land
Stadt
Attribut
Name
Kfz
Einwohner
Fläche
Entity-Typ
Name
Kurzform
Einwohner
Fläche
Fluss
Schlüsselattribut
Name
LängeInD
Gesamtlänge
Bezirk
Nachbarstaat
Name
Einwohner
Fläche
Staat
Kennzeichen
Vorwahl
GrenzlängeMitD
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
13
Relationships
Kapitel 4
• zweites Grundkonzept des ER-Modells: elementare Beziehungen zwischen zwei
oder mehr Entities (ggf. mit eigenen Attributwerten)
Relationship
PersNr
765
Berufungsjahr
Bezeichnung
1992
Universität Bonn
• Jede Relationship ist durch die Schlüsselwerte der beteiligten Entities und die
Werte aller Relationship-Attribute eindeutig charakterisiert.
• Es gibt allerdings keine Schlüsselattribute für Relationships geben, da stets die
Schlüssel der beteiligten Entity-Typen zum eindeutigen Identifizieren dienen.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
14
Mehrfache Beziehungen
Kapitel 4
Entitites können an mehreren Relationships (auch gleichartigen) beteiligt sein.
Berufungsjahr
1992
Berufungsjahr
1999
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
15
Relationship-Typen
Kapitel 4
• Gleichartige Relationships können zu Relationship-Typen zusammengefasst werden.
• "Gleichartigkeit" setzt zumindest identische Attributstruktur und identische Typen
(und Anzahl) der beteiligten Entities voraus.
•
Relationship-Typen werden in der graphischen Notation des ER-Modells durch
Rauten dargestellt. Attribute werden wie bei Entity-Typen notiert.
berufen_an
universität
professor
Bezeichnung, . . .
PersNr, . . .
Berufungsjahr
Int
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
16
Instanzbeziehungen bei Relationship-Typen
Kapitel 4
berufen_an
universität
professor
Bezeichnung, . . .
PersNr, . . .
Berufungsjahr
Int
Auch bei Relationship-Typen gibt es den Begriff der 'Instanz': einzelne Relationships
zwischen einzelnen Entities lassen sich analog als Instanzen der R-Typen auffassen.
berufen_an
Berufungsjahr
PersNr
765
Bezeichnung
...
1992
© 2002 Prof. Dr. Rainer Manthey
...
Universität Bonn
Informationssysteme
17
Mehrfache Beteiligung an Relationship-Typen und Rollen
Kapitel 4
• Ein und derselbe Entity-Typ kann an einem Relationship-Typ auch mehrfach
beteiligt sein, z.B.:
mutter
abkömmling_von
person
tochter
•
Zur (syntaktischen) Unterscheidung zwischen den verschiedenen "Formen der
Beteiligung" sollte man in solchen Situationen gesonderte Bezeichner, genannt
Rollen, verwenden, die als Markierungen an den jeweiligen Kanten zwischen
Entity- und Relationship-Symbol notiert werden.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
18
Rollen bei Relationships ohne Mehrfachbezug
Kapitel 4
• Rollen dürfen auch dann eingesetzt werden, wenn keine Mehrdeutigkeit auf
Grund von mehrfacher Beteiligung desselben Entity-Typs vorliegt. Sie dienen
dann als semantisch begründete zusätzliche Informationen im Schema.
geprüft_von
student
professor
prüfer
prüfling
MatrNr, . . .
PersNr, . . .
• Werden bei einem Relationship-Typ nur einzelne beteiligte Entity-Typen mit
expliziten Rollen versehen, dann kann man für die übrigen E-Typen deren
Namen stets als implizite Rolle annehmen.
• Würde also im obigen Beispiel nur die Rolle 'prüfer' explizit genannt, dann
könnte man 'student' als implizite Rolle an der anderen Kante annehmen.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
Namenskonventionen
19
Kapitel 4
• Die Wahl der Bezeichner für Typen und Attribute muss stets so gewählt sein,
dass innerhalb desselben Schemas immer klar ist, von welchem Konzept man
gerade spricht.
• Das bedeutet:
•
Jeder Name eines Entity-Typs darf im Schema nur einmal vorkommen.
•
Jeder Name eines Relationship-Typs darf im Schema nur einmal vorkommen.
•
Jedes Attribut und jede Rolle muss innerhalb des Schemas des jeweiligen
Entity- oder Relationship-Typs eindeutig gewählt sein.
•
Attribute und Rollen dürfen aber in anderen Typen wieder verwendet werden.
• Globale Bezeichungskonflikte bei Attributen oder Rollen lassen sich (wie in SQL
oder in der RA) durch Verwendung des jeweiligen Typs als Präfix lösen, z.B.
professor.Name versus universität.Name.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
20
SLF-Datenbank: Relationship-Typen (1)
Kapitel 4
nachbarland_von
Hauptstadt
hauptstadt_von_land
Land 1
Land
Stadt
Land 2
stadt_in_land
stadt_an_fluss
bezirk_
in_land
fluss_
durch_
land
Fluss
Bezirk
Relationship-Typ
Quellfluss
quellfluss_von
© 2002 Prof. Dr. Rainer Manthey
Rolle
Informationssysteme
21
SLF-Datenbank: Relationship-Typen (2)
Kapitel 4
fluss_entspringt_
in_land
Ursprungsland
Land 1
Land
Land 2
grenzfluss_national
Fluss
grenzfluss_international
Nebenfluss
nebenfluss_von
Seite
Nachbarstaat
Attribut
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
22
Germ-lish in der Informatik ?
•
Kapitel 4
Wir haben auf den letzten Folien stets die englischen Begriffe 'Entity' und
'Relationship' in deutschen Sätzen quasi als "eingedeutschte" Substantive
verwendet.
Ist das nicht stilistisch fragwürdig ??
(Stichwort: "Germ-lish")
• (meine) Antwort: Im Prinzip ja, aber . . .
•
. . . es gibt - gerade in der Informatik - manchmal Situationen, in denen ein
"terminus technicus" (Latinismus!) aus dem Englischen sich nur mit deutlichen
Schwierigkeiten eindeutschen lässt. In solchen Fällen (aber stets nach bewusster
Entscheidung!) verwende ich den fremdsprachigen Begriff in einem deutschen
Satz.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
Sprache und Typwahl
23
Kapitel 4
• Wo wir gerade beim Thema "Sprache" sind: . . .
• . . . es gibt eine einfache Heuristik für die Wahl von Bezeichnern bei der
ER-Modellierung !
• Man sollte stets versuchen, Typnamen so zu wählen, dass
• Entity-Typen durch Substantive benannt werden.
(professor, universität, stadt, land, fluss, . . .)
• Relationship-Typen entweder
• durch Verben benannt werden.
(berufen_an, liegt_in, . . .)
• oder durch Substantive mit Präpositionen benannt werden.
(hauptstadt_von, nebenfluss_von, . . .)
• Attribute und Rollen sollten wiederum in der Regel Substantive sein.
(Name, Personalnummer, Prüfer, . . . )
• Dies sind aber keine zwingenden Regeln, sondern nur "Ratschläge", von denen
man gelegentlich abweichen wird (aber wiederum nur "mit gutem Grund"!).
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
24
ER-Modellierung im Bundesliga-Beispiel
Kapitel 4
• Die "richtige" Designentscheidung beim konzeptuellen Modellieren ist oft bei
Weitem nicht so offensichtlich wie im Stadt-Land-Fluss-Beispiel
(und wer weiss, ob diese Entscheidung "richtig" war! Was ist überhaupt "richtiges" oder gar "gutes" Design?)
• Im Bundesliga-Beispiel scheint die Modellierung nur auf den ersten Blick ganz
offensichtlich zu sein:
Heimmannschaft
Spiel
Verein
Name
Ort
Trainer
Auswärtsmannschaft
beteiligt_an
Datum
Spieltag
ToreH
ToreA
Sollten das Attribute
des Spiels oder der
Relationship sein?
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
25
ER-Modellierung im Bundesliga-Beispiel (2)
Kapitel 4
Wozu braucht man den dann überhaupt den Entity-Typ 'Spiel' ?
Kann man stattdessen denn nicht mit der Relationship auskommen ?
beteiligt_an
Heimmannschaft
Verein
Name
Ort
Trainer
Auswärtsmannschaft
spielt_gegen
Spiel
Datum
Spieltag
ToreH
ToreA
Was "ist" denn nun ein Spiel ?
Ein Entity oder eine Relationship ?
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
26
ER-Modellierung im Bundesliga-Beispiel (3)
Kapitel 4
Die "richtige" Designentscheidung kann hier - ganz pragmatisch - z.B. dadurch
begründet sein, dass man das Schema noch erweitern will: Um die Beteiligung von
Spielern an Spielen zu modellieren, muss man 'Spiel' schon den Status eines E-Typs
geben, weil es Beziehungen zwischen E- und R-Typen nicht gibt!
Heimmannschaft
Spiel
Verein
beteiligt_an
Auswärtsmannschaft
eingesetzt_in
AnzahlTore
Spieler
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
27
ER-Modellierung im Bundesliga-Beispiel (4)
Kapitel 4
Heimmannschaft
Spiel
Verein
Name
Ort
Trainer
Auswärtsmannschaft
beteiligt_an
Datum
Spieltag
ToreH
ToreA
• weitere "schwierige" Designentscheidung: Was wird Attribut, was wird
Beziehung (bzw. Entity-Typ) ?
• im Beispiel: Soll man Attribute wie 'Trainer', 'Ort' oder 'Spieltag' "zu EntityTypen erheben" ?
• Heuristik hier: Will man diese Konzepte durch "eigene" Attribute näher charakterisieren oder sie in "eigenen" Relationships verwenden, dann sollten sie zu
E-Typen werden.
• Attribute sind untergeordnete Konzepte, die nur zur Charakterisierung der
wesentlichen Konzepte der Anwendung (Entities) dienen !
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
28
Herunterladen