• Keine Ergebnisse gefunden

Das Entity-Relationship-Modell

N/A
N/A
Protected

Academic year: 2022

Aktie "Das Entity-Relationship-Modell"

Copied!
29
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Das Entity-Relationship-Modell

(2)

Ein Phasenmodell der Softwareentwicklung

Implementierung Analyse

Design oder Entwurf

Abnahme und Einführung

Wartung und Pflege

(3)

Datenbankentwurf im Softwareentwicklungsprozess

Anwendungsentwurf

Dokumentation Datenbankentwurf

Datenbankimplementierung

Anwendungsimplementierung

(4)

Phasen des DB-Entwurfs

Requirements-Analyse

– Welche Daten?

– Welche (häufigen) Operationen?

– Welche Anwendungen?

– Nicht-funktionale Anforderungen, z.B. Performance

Konzeptueller DB-Entwurf

– Spezifikation der gesammelten Anforderungen in einer high-level- Darstellung (z.B. ER-Modell)

Logischer DB-Entwurf

– Übersetzung des konzeptuellen DB-Entwurfs in ein Schema im Datenmodell des Ziel-DBMS (zumeist relationales DBMS)

Schema-Verfeinerung

– Normalisierung des relationalen Schemas soweit erforderlich (Nutzung Normalformen-Theorie)

Physischer DB-Entwurf

– Phys. Entwurfsentscheidungen (Index, Clusters) entsprechend Last- Profilen und Performance-Anforderungen

(5)

Konzeptueller DB-Entwurf

Konzeptueller Entwurf

– Entity-Relationship-Modell ist traditioneller Ansatz – Was sind die Entitäten und die Beziehungen im

gewählten Weltausschnitt?

– Welche Information über diese Entitäten und

Beziehungen sollen in der DB gespeichert werden (Informationsbedarfsanalyse)?

– Was sind die Integritätsbedingungen (oder Business Rules), die gelten müssen?

– Ein DB-Schema kann graphisch im ER-Modell repräsentiert werden (ER-Diagramm)

– Ein ER-Diagramm läßt sich in ein relationales Schema

übersetzen (logischer DB-Entwurf)

(6)

Das ER-Modell - Analyse

SchuleXY

Name

Alter Klasse

Schüle r

DM DMDM

Entitäten

Entity -

Menge Attribute

Attributwerte

Michael

10 Jahre

Klasse 4 ist Schüler von seit Juli 1993

Beziehung Beziehungs-

eigenschaft

.

(7)

Das ER-Modell - Entität und Entity-Menge Eine Entität (Entity) ist

ein Objekt der realen Welt,

ein individuelles und eindeutig identifizierbares Exemplar von Dingen, Begriffen oder Personen Entity: “A thing that has a real or individual existence in reality or in mind“ (Webster)

Gleichartige Entitäten werden zu Entity-Mengen

(Entity set) zusammengefasst.

(8)

Das ER-Modell - Attribute von Entity-Mengen Attribut

Ein Attribut ist eine Eigenschaft, die allen

Entitäten einer Entity-Menge gemeinsam ist. Eine Entität wird durch ihre Attributwerte beschrieben.

optional

obligatorisch

name

Darstellung als Oval

adr stadt

strasse

(9)

Das ER-Modell - Schlüssel

Ein Schlüssel ist eine minimale Menge von Attributen,

die die zugeordnete Entität eindeutig identifizieren.

Sie kann aus einem oder mehren Attributen zusammengesetzt sein.

Schlüsselattribute sind immer obligatorisch.

Mehrere Kandidaten möglich, z.B. Ausweis-Nr.

oder

Sozialversicherungs-Nr. bei Personen Darstellung: Attributname unterstrichen

pnr

(10)

ER-Modell - Beziehungen

Zwischen Entitäten gibt es Beziehungen

(Relationships), die auch Attribute haben können.

Beziehungen beschreiben einen Zusammenhang zwischen Entitäten, der im Allgemeinen durch ein Verb

ausdrückt wird.

Gleichartige Beziehungen zwischen Entitäten der gleichen Entity-Menge werden zu

Beziehungsmengen zusammengefasst.

Arbeitet Abteilung

Angestellter

(11)

Beziehungen im ER-Modell

Aktivitäten zwischen Entitäten werden durch Beziehungen beschrieben

Mathematische Beschreibung einer Beziehung:

Ein Beziehung R (Relationship) ist eine Relation im mathematischen Sinne, also eine Teilmenge des

kartesischen Produkts der Entity-Mengen E

1

, E

2

,.... E

n

: R E

1

x E

2

x.... x E

n

R ist binär oder vom Grad 2, falls n = 2 ist.

(12)

Beispiele (1)

gehalt aname

budget anr

name seit

leitet Abteilung

Manager pnr

gehalt aname

budget anr

name seit

arbeitet Abteilung

Angestellter pnr

gehalt pname

dauer pnr

name seit

arbeitet pnr

1 1

1 n

(13)

Beispiele (2)

verheiratet Person

Ehefrau Ehemann

1 1

Angestellter

vorgesetzt untergeordnet

1 n rapportiert

Teil

oberes Teil unteres Teil

m n zusammen-

gesetzt

Zwischen den gleichen Entity-Mengen können jeweils unterschiedliche Relationship-Mengen definiert werden.

(14)

Kardinalität von Beziehungen

1:1

1:n

leitet / wird_geleitet

Manager Abteilung

Manager Mitarbeiter

arbeitet mit / für

Mitarbeiter Projekt

arbeitet an / bearbeitet von

(15)

Integritätsbedingungen in Relationships

Verfeinerung der Semantik einer Beziehung Sei R E1 E2 En

card(R, Ei) = (min,max) bedeutet, daß jedes Element aus Ei in

wenigstens min und höchstens max Ausprägungen von R enthalten sein muß (mit 0  min  max, max  1)

Graphische Darstellung

R E2

E1 (min1,max1) (min2,max2)

Verfeinerung der Semantik einer Beziehung

e

1

nimmt an (min

1

,max

1

) Beziehungen von Typ R teil e

2

nimmt an (min

2

,max

2

) Beziehungen von Typ R teil

Beispiel

(16)

Komplexität binärer Relationships

Kompl. Bemerkung Beispiel

(1,1)(1,1) Strenge 1:1-Beziehung, umkehrbar eindeutige Funktion

Ehe zwischen Ehemännern und Ehefrauen

(1,1)(0,1) (0,1)(1,1)

Partielle 1:1 Ehe zwischen Ehemännern und Frauen

(0,1)(0,1) Allgemeine 1:1 Ehe zwischen Männern und Frauen (1,1)(1,*)

(1,*)(1,1)

Strenge hierarchische

Beziehung Angestellte in einer Abteilung (1,1)(0,*)

(0,*)(1,1)

Funktionale Abhängigkeit

ohne Existenzbedingung Beziehung zwischen Männern (potentiellen Vätern) und Kindern (0,1)(1,*)

(0,1)(0,*) (1,*)(0,1) (0,*)(0,1)

Allgemeine hierarch.

Beziehung (1:n)

(k,l)(r,s) Âllgemeine m:n-Beziehung Angestellte arbeiten für Projekte

(17)

Schwache Entities

Schwaches Entity (weak entity) kann eindeutig

identifiziert werden nur über den Primärschlüssel einer anderen (Owner) Entity.

Owner Entity und Weak Entity müssen in einer 1:n- Beziehung stehen (ein Owner, mehrere Weak Entities)

gehalt name

alter name

Kinder Angestellter

pnr

hat

(0,*) (1,1)

Jedes Entity aus Kinder muß an der Beziehung teilnehmen

(total Participation Constraint)

(18)

ISA-Beziehung

Vererbung von Attributen (vgl. OO Sprachen)

A “is a“ B heißt: Jedes A Entity ist zugleich auch ein B Entity

Overlap Constraints: Kann Joe zugleich ein Fest-Angestellter und ein Contractor sein (erlaubt / nicht erlaubt)?

Covering Constraints: Kann jeder Angestellte in Intern oder Extern klassifiziert werden (ja/nein)

Nutzen von ISA:

– Hinzufügen von Attributen spezifisch für einen Subtyp

– Identifizieren von Entities, die an Beziehungen teilnehmen (Generalisierung)

pnr name

Angestellter

gehalt

stundensatz

ISA vertrags_nr stundenzahl

(19)

Aggregation*

Zur Modellierung von Relationships zwischen Entity- Mengen und Relationship-Mengen

Erlaubt es, eine Relationship-Menge (z.B. “Sponsors“) als eine Entity-Menge zu betrachten, um an einer anderen Relationship teilzunehmen

startdatum name

bis Angestellter

kontrolliert

gehalt pnr name

seit

(20)

Konzeptueller Entwurf im ER-Modell

Entwurfsentscheidungen

– Sollte ein Konzept als Entity oder Attribut modelliert werden?

– Sollte ein Konzept als Entity oder Relationship modelliert werden?

– Bestimme die Beziehungen: Binär oder ternär? Aggregation?

Constraints im ER-Modell

– Möglichst viel Datensemantik sollte erfaßt werden

– Einige Constraints können mit den Mitteln des ER nicht ausgedrückt werden (z.B. Wertabhängigkeiten zwischen Attributen)

(21)

Checkliste zum Finden von Entitäten

Lassen sich konkrete Objekte identifizieren?

– Reale Objekte

– Formulare als Vorlage für Entitäten.

Zu welchen Kategorien gehören die Entitäten?

– Konkrete Objekte

– Personen und deren Rollen – Informationen über Aktionen – Orte

– Organisationen

– Schnittstellen des System

Liegt ein aussagefähiger Entity-Mengen-Name vor?

Wann liegt keine Entität vor

(22)

Checkliste zum Finden von Attributen

Ist ein Attribut problemrelevant?

Gehört ein Attribut zu einer Entität oder zu einer Beziehung?

Welche Attribute können als Schlüsselattribute dienen?

Ist der Attributname geeignet?

– sprechende Namen – Eindeutigkeit

Welche Datentypen liegen vor?

– Standarddatentypen : NUMBER, Date, VARCHAR

Liegen für Attribute bestimmte Domänen, das heißt festgelegte Wertebereiche vor?

– männlich, weiblich – Wochentage

(23)

Checkliste zum Finden von Beziehungen

Liegen zwischen Entitäten permanente Beziehungen vor ?

Ist eine Benennung der Beziehung sinnvoll ?

Existieren zwischen Entitäten mehrere Beziehungen ? Prüfen Sie, ob die Beziehungen

- eine unterschiedliche Bedeutung besitzen

- unterschiedliche Kardinalitäten haben

- unterschiedliche Optionalität besitzen

- ob es sich um eine Kann- oder eine Muß–Beziehung handelt.

Gehören Attribute zu einer Beziehung? Eventuell´Beziehung in eine Entität umformen

Ist eine Benennung der Beziehung sinnvoll ?

Läßt sich die Beziehung in eine Kategorie einordnen ?

- Das Ganze und seine Teile

- Der Behälter und sein Inhalt ( z.B. Flugzeug und Pilot)

- Kollektion und ihre Mitglieder ( z.B. Firma, Angestellte)

- Konfiguration von Teilen zu einem Ganzen ( z.B. Szenen zu

(24)

Künstliche Schlüsselattribute

künstliches Schlüsselattribut (surrogate key)

– zusätzliches Attribut ohne Anwendung in der realen Welt – i.d.R. Datentyp: NUMBER

– dient zur eindeutigen Identifizierung der Entities der zugehörigen Entity-Menge

– ersetzen einen aus mehreren Attributen

zusammengesetzten Primärschlüssel; diese Attribute werden Zweitschlüssel

– weniger Attribute bei Verwendung des Primärschlüssels als Fremdschlüssel

– einfacherer Index-Aufbau – schnellere Suche

(25)

Entity vs. Attribut

Sollte Adresse ein Attribut von Angestellter sein oder ein Entity (in Beziehung zu Angestellter)

Abhängig von der Benutzung der Adress-Information und der Semantik der Daten

– Wenn mehrere Adressen pro Angestellter vorhanden, dann sollte Adresse ein eigenständiges Entity sein (wenn mengenwertige Attribute ausgeschlossen sind)

– Wenn die Struktur der Adresse wichtig ist, d.h. Zugriff auf Bestandteile der Adresse (wie Stadt), dann muß Adresse als

separates Entity modelliert werden (mit atomaren Attributwerten)

Adresse

strasse stadt plz

(26)

Entity vs. Attribut (Forts.)

So ist es nicht möglich, die Mitarbeit eines Angestellten über mehrere Zeiträume zu modellieren (ähnlich wie mehrere

Adressen eines Mitarbeiters)  Ersetzen der zeitbezogenen Attribute (von,bis) durch das neue Entity Dauer

Es entsteht eine ternäre Beziehung

name Angestellter

pnr gehalt

Arbeitet_in

von bis

name budget id

Abteilung

name Angestellter

pnr gehalt

Arbeitet_in

von bis

name budget id

Abteilung Dauer

(27)

Ternäre Beziehungen

Ternäre Beziehungen können nicht automatisch in binäre Beziehungen aufgebrochen werden

titel

Vorlesung empfiehlt

name

isbn Buch Professor

name Professor

(28)

Ternäre Beziehungen (Forts.)

empfiehlt Professor Vorlesung Buch Heuer DB1 1-234 Heuer DB2 9-876 Saake DB1 9-876 Saake DB2 9-876

P-V Prof Vorl Heuer DB1 Heuer DB2 Saake DB1 Saake DB2

P-B Prof Buch Heuer 1-234 Heuer 9-876 Saake 9-876

V-B Vorl Buch DB1 1-234 DB2 9-876 DB1 9-876

Hier verlieren wir die Information, daß Heuer das Buch 9-876 nur für die Vorlesung DB2 aber nicht für DB1 empfiehlt.

Könnten auch zusätzliche (fragwürdige) Information abspeichern, die sonst nicht

darstellbar wäre, z.B. das Buch 7- 000 für DB3, ohne daß ein

Professor diese Vorlesung hält oder

(29)

Konzeptueller Entwurf (Zusammenfassung)

Konzeptueller Entwurf folgt der Anforderungsanalyse

Ergebnis: eine “high-level“ Beschreibung der zu speichernden Daten

ER-Modell populär für konzeptuellen Entwurf

Basis-Konstrukte: Entities, Relationships, Attribute (von Entities und Relationships)

Zusätzliche Konstrukte: Weak Entities, ISA-Beziehungen, Aggregation

Constraints (Integritätsbedingungen) im ER:

– Kardinalitätsrestriktionen (1:1, 1:n, m:n)

– Komplexität von Beziehungen in min,max-Notation (Participation Constraints)

– Overlap/Covering-Constraints in ISA-Hierarchien

– Bestimmen von Constraints wichtig für guten DB-Entwurf

– Einige Constraints (z.B. funktionale Abhängigkeiten) lassen sich im ER- Modell nicht ausdrücken

Referenzen

ÄHNLICHE DOKUMENTE

Research Review: entity resolution, record linkage, parallel computing, parallel entity resolution, deduplication, similarity join, data partitioning, load balancing.. 1

Die Urlauber in M-V übernachten in Hotels, Pensionen oder Ferienwohnungen. Zur besseren Vermarktung wollen einige Hotels stärker zusammenarbeiten. Für die gemeinsame

• Owner Entity und Weak Entity müssen in einer 1:n- Beziehung stehen (ein Owner, mehrere Weak Entities).

• Owner Entity und Weak Entity müssen in einer 1:n- Beziehung stehen (ein Owner, mehrere Weak Entities).

• Schwaches Entity (weak entity) kann eindeutig identifiziert werden nur über den Primärschlüssel einer anderen (Owner) Entity. • Owner Entity und Weak Entity müssen in

The VAE, therefore, switched to the speaker graph and used it to analyze entity pairs related to women, which E1 selected for a detailed analysis in the text level view.. Overall,

Werden einem Objekt genau 1 oder mehrere andere Objekte zugeordnet. Kann es sein, dass einem Objekt kein Objekt zugeordnet wird ("C" =

Beispiel: Jede Sch¨ ulerin ist Mitglied einer