datenbankentwurf gerhard röhner september 2012. modellierung
TRANSCRIPT
Datenbankentwurf
Gerhard RöhnerSeptember 2012
Modellierung
Von der Realität zum Datenmodell
logische Gesamtsicht, konzeptuelles Modell Abbildung eines Ausschnitts der realen Welt
auf einen Miniwelt Abstraktion von nicht relevanten Details Konzentration auf Daten, die für die Arbeit mit
der Datenbank bedeutsam sind Transformation semantischer Information in
syntaktische Strukturen
Entity-Relationship-Modell
graphisches Datenmodell, kurz ER-Modell, ERM 1976 von P. Chen vorgeschlagen Klassifizierung - Festlegung der Typen von Entitäten Abstraktion - Reduktion der Vielfalt der bekannten
Informationen über die Entitätstypen auf einen Satz relevanter Eigenschaften
Identifizierung - Festlegung zur Unterscheidung der Entitäten
Beziehungsanalyse - Beschreibung der sachlogischen Zusammenhänge zwischen den Entitätstypen
Lieferant Kunden
Artikel
liefertbestellt
Kategorie Personal
gehörtzu bearbeitet
1
1
n
Firma
Lieferanten-Nr
Kunden-Code
Firma
Kategoriename
Kategorie-Nr
Nachname
Personal-Nr
Rabatt
Einzelpreis
Bestellungenbestehtaus
Anzahl
n
n m
Kontaktperson
Kontaktperson
Versandfirmenliefertaus
n 1
n
n
1
1
Firmen-Nr
Firma Telefon
Klassifizierung - Entitätstypen
Definition Entität und Entitätstyp
Eine Entität (engl. entity) ist ein Exemplar von Personen, Gegenständen oder nicht materiellen Dingen über das Informationen gespeichert werden.
Beispiel: der Busfahrer Max Maier.
Ein Entitätstyp (engl. entity type) ist eine durch einen Namen eindeutig benannte Klasse von Entitäten, über die dieselben Informationen gespeichert werden.
Beispiel: Busfahrer
Darstellung der Entitätstypen
Entitätstypen werden durch Rechtecke dargestellt der Name des Entitätstyps steht im Singular im
Rechteck
Entitätstypen entsprechen den Karteikästen der traditionellen Informationsspeicherung
Die Bildung der Entitätstypen hängt entscheidend von den Anforderungen ab
– Firma aus der Sicht des Kunden– Firma aus der Sicht des Chefs
Angestellter
Abstraktion - Festlegung relevanten Eigenschaften
Definition Attribut– Ein Attribut (engl. attribute) ist die Benennung für ein
relevantes Eigenschaft aller Entitäten, die in einem Entitätstyp zusammengefasst werden. Beispiel: Geburtsdatum
Definition Attributwert– Ein Attributwert (engl. attribute value) ist eine spezielle
Ausprägung, die ein Attribut für eine konkrete Entität annimmt.Beispiel: 16.07.1986
Attribut ist Feld einer Karteikarte in der traditionellen Informationsspeicherung
Darstellung der Attribute
Attribute werden durch Ovale dargestellt der Name des Attributs steht im Singular im
Oval die Ovale werden durch Strecken mit den
zugehörigen Rechtecken der Entitätstypen verbunden
VornameAngestellter
Name
Entitätstyp oder Attribut?
Modellierung als Entitätstyp, wenn relevante individuelle Attribute vorliegen.
In einer Fuhrpark-Datenbank soll zusätzlich der Mindestpreis gespeichert werden, zu dem ein Auto in der Grundausstattung gekauft werden soll.
aus Attribut Marke wird Entitätstyp
Auto
KennzeichenMarke
Farbe
Kilometerstand
Festlegung der Identifizierung
Identifizierung einer Entität durch ein einziges Attribut– z. B. Kfz-Kennzeichen, Personalausweisnummer
Identifizierung durch eine Kombination von Attributen– z. B. Name+Vorname+Geburtsdatum
oder Ort+Kreis (Neustadt/Schwarzbach) Einführung eines organisatorischen Attributs
– z.B. Schülernummer in der LUSD, Lehrerkürzel
Schlüssel
Schlüssel– Attribut oder Kombination von Attributen
die eine Entität identifizieren Primärschlüssel
– unter allen möglichen Schlüsseln für das Datenmodell ausgewählter Schlüssel
Darstellung durch Unterstreichen der identifizierenden Attribute
Auto
KennzeichenMarke
Farbe
Kilometerstand
Beziehungsanalyse
Definition Beziehung– Eine Beziehung (engl. relationship) kennzeichnet
den konkreten Zusammenhang zwischen zwei realen Entitäten
Definition Beziehungstyp– Ein Beziehungstyp (engl. relationship type)
beschreibt den typmäßigen sachlogischen Zusammenhang, der zwischen den Entitäten zweier Entitätstypen besteht
Beziehungstyprichtung
Der Zusammenhang zwischen zwei Entitätstypen besteht immer in beiden Richtungen
– Lehrer unterrichten an Schulen– an Schulen sind Lehrer beschäftigt
Jede der beiden Richtungen wird durch drei Angaben näher bestimmt
– Die Benennung gemäß der Semantik des Zusammenhangs– Angabe der Kardinalität– Angabe der Optionalität
Benennung
Die Benennung einer Beziehungstyp-Richtung zwischen zwei Entitästypen A und B ist so zu wählen, dass dies ein fehlerfreien Satz wird:
– Ein(e) <Entitätstyp A><Benennung der Beziehungstyp-Richtung>ein(e/en/em/er) <Entitätstyp B>
Ein Lehrer hat sich beworben an einer Schule Eine Schule hat einen Hausmeister Ein Ort hat eine Schule Eine Schule liegt in einem Ort
Darstellung der Beziehung
Eine Beziehung wird durch eine Raute dargestellt Sie enthält oben die Benennung der Richtung A zu B,
unten die Benennung der Richtung B zu A Die Raute wird links/oben mit dem Entitätstyp A,
rechts/unten mit dem Entitätstyp B verbunden
Ort Schulehatliegt in
Kardinalität - kann mehrere
Kann eine Entität des Typs A mit mehreren Entitäten des Typs B in Beziehung stehen?
– Ja -> Kardinalität ist n– Nein -> Kardinaliät ist 1
Kann ein Mann mit mehreren Frauen verheiratet sein? Nein, Kardinalität ist 1.
Kann ein Ort mehrere Schulen haben? Ja, Kardinaliät ist n.
Kann eine Schule in mehreren Orten liegen? Nein, Kardinaliät ist 1.
Darstellung der Kardinalität
Ein Ort hat mehrere Schulen
Eine Schule liegt in einem Ort
Die Kardinalität wird an das Ende der Beziehung geschrieben
Ort Schulehatliegt in
n1
Optionalität - muss mindestens
Muss eine Entität des Typs A mit mindestens einer Entität des Typs B in Beziehung stehen?
– Ja -> nicht optional, obligatorisch, Muss-Beziehung– Nein -> optional, fakultativ, Kann-Beziehung
Muss ein Mann mit mindestens einer Frau verheiratet sein? Nein, optional, Kann-Beziehung
Muss ein Ort mindestens eine Schule haben? Nein, optional, Kann-Beziehung
Muss eine Schule in mindestens einem Ort liegen? Ja, obligatorisch, Muss-Beziehung
Darstellung der Optionalität
Ein Ort kann eine Schule haben
Ort Schulehatliegt in
n1kann muss
Eine Schule muss in einem Ort liegen
Die Optionalität wird an den Anfang der Beziehung geschrieben
Beziehungstypen-Übersicht
Attribute von Beziehungen
Lehrer unterrichtetwird gehalten von Kurs
Name Kürzel Fach Typ
Thema
Schuljahr
n1kann muss
Grad einer Beziehung
Duale Beziehungen - Grad = 2
Mehrstellige Beziehungen - Grad = n
Ort Schulehatliegt in
empfiehltProfessor Vorlesung
Buch
Is-a-Beziehung - Vererbung
IS-A
IS-A
Ange-stellterSchüler Lehrer
Sekretär/in
Haus-meister
Schulmit-glied
Rekursive Beziehungstypen
Welche Mitarbeiter können - im Urlaubs- oder Krankheitsfall - einen Mitarbeiter vertreten?
Mitarbeiter wird vertreten durchvertritt
1
n
muss
kann
Optimierung ohne Beziehungstyp-Attribute
Kasse besetzt vonarbeitet an Kassierer
NamePersonal-nummerWechselgeld KNr
1muss
1kann
Kann optimiert werdenKasse(KNr, Wechselgeld, Personalnummer)Kassierer(Personalnummer, Name)
Optimierung mit Beziehungstyp-Attributen
Kasse besetzt vonarbeitet an Kassierer
NamePersonal-nummerWechselgeld KNr
1muss
1kann
von bis
Berücksichtigung der Einsatzzeiten keine Optimierung möglichKasse(KNr, Wechselgeld)BesetztVon(KNr, Personalnummer, von, bis)Kassierer(Personalnummer, Name)
Optimierungen - Übersicht
grün: eine Relation R(a1,..., b1,...)rot: zwei Relationen Ra(a1,...) Rb(b1,...,a1)blau: drei Relationen Ra(a1,...) Rk(a1, b1) Rb(b1,...)