29
Datenbankentwurf Gerhard Röhner September 2012

Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Embed Size (px)

Citation preview

Page 1: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Datenbankentwurf

Gerhard RöhnerSeptember 2012

Page 2: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Modellierung

Page 3: Datenbankentwurf Gerhard Röhner September 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

Page 4: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 5: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 6: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Klassifizierung - Entitätstypen

Page 7: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 8: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 9: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 10: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 11: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 12: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 13: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 14: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 15: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 16: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 17: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 18: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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.

Page 19: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 20: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 21: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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

Page 22: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Beziehungstypen-Übersicht

Page 23: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Attribute von Beziehungen

Lehrer unterrichtetwird gehalten von Kurs

Name Kürzel Fach Typ

Thema

Schuljahr

n1kann muss

Page 24: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Grad einer Beziehung

Duale Beziehungen - Grad = 2

Mehrstellige Beziehungen - Grad = n

Ort Schulehatliegt in

empfiehltProfessor Vorlesung

Buch

Page 25: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Is-a-Beziehung - Vererbung

IS-A

IS-A

Ange-stellterSchüler Lehrer

Sekretär/in

Haus-meister

Schulmit-glied

Page 26: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Rekursive Beziehungstypen

Welche Mitarbeiter können - im Urlaubs- oder Krankheitsfall - einen Mitarbeiter vertreten?

Mitarbeiter wird vertreten durchvertritt

1

n

muss

kann

Page 27: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

Optimierung ohne Beziehungstyp-Attribute

Kasse besetzt vonarbeitet an Kassierer

NamePersonal-nummerWechselgeld KNr

1muss

1kann

Kann optimiert werdenKasse(KNr, Wechselgeld, Personalnummer)Kassierer(Personalnummer, Name)

Page 28: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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)

Page 29: Datenbankentwurf Gerhard Röhner September 2012. Modellierung

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,...)