Gerhard Röhner September 2012 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
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
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 Angestellter Vorname 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
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 Primärschlü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
Beziehungsanalyse Definition Beziehung Definition Beziehungstyp 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
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
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 Eine Schule muss in einem Ort liegen Die Optionalität wird an den Anfang der Beziehung geschrieben
Beziehungstypen-Übersicht
Attribute von Beziehungen
Grad einer Beziehung Duale Beziehungen - Grad = 2 Mehrstellige Beziehungen - Grad = n
Is-a-Beziehung - Vererbung
Rekursive Beziehungstypen Welche Mitarbeiter können - im Urlaubs- oder Krankheitsfall - einen Mitarbeiter vertreten?
Optimierung ohne Beziehungstyp-Attribute Kann optimiert werden Kasse(KNr, Wechselgeld, Personalnummer) Kassierer(Personalnummer, Name)
Optimierung mit Beziehungstyp-Attributen Berücksichtigung der Einsatzzeiten keine Optimierung möglich Kasse(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,...)