ER-Diagramm: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[ER-Diagramm]]e sind eine Möglichkeit, die Struktur größerer [[Datenbank]]en grafisch darzustellen. | [[ER-Diagramm]]e sind eine Möglichkeit, die Struktur größerer [[Datenbank]]en grafisch darzustellen. | ||
Auf diese Weise kann man sich schnell einen Überblick über den Aufbau einer Datenbank verschaffen und leichter darüber kommunizieren, etwa bei der Planung eines größeren Softwareprojektes. | |||
Außerdem gilt wie bei allen Modellierungswerkzeugen: eine saubere Modellierung vor der Implementierung hilft bei der Umsetzung, da so die Aufgabenverteilung besser organisiert werden kann. | |||
== Idee == | |||
In unseren Daten beschreiben wir Dinge (''entities''), die miteinander in Beziehung (''relationships'') stehen. Eine ''Entity'' zeichnet sich dadurch aus, dass sie unabhängig von anderen Daten existieren kann. Demgegenüber definiert sich eine ''Relationship'' hauptsächlich über die ''Entities'', die sie miteinander verbindet. | |||
Die Eigenschaften von ''Entities'' und ''Relationships'' werden [[Attribut (Informatik)|Attribut]]e genannt. Attribute, mit denen ''Entities'' eindeutig identifiziert werden können, werden [[Schlüssel (Datenbank)|Schlüssel]] genannt. | |||
{{Beispiel|1=Wir können Schülys, Lehrkräfte und Klassen als ''Entities'' auffassen. Klasse und Lehrkraft können dann z.B. in der Beziehung <q>X ist Klassenleitung von Y</q> stehen, z.B. <q>Frau Müller-Borrello ist Klassenlehrerin der 9b</q>.}} | |||
== Darstellung == | |||
{{Thumbnailbox|INHALT=<graphviz> | |||
graph ER { | graph ER { | ||
fontname="Source Sans Pro,Helvetica,Arial,sans-serif" | fontname="Source Sans Pro,Helvetica,Arial,sans-serif" | ||
| Zeile 15: | Zeile 19: | ||
node [shape=ellipse,decorate=true]; | node [shape=ellipse,decorate=true]; | ||
Kuerzel[label=<<U>Kürzel</U>>]; Vorname; Nachname; EMail[label="E-Mail-Adresse"] | Kuerzel[label=<<U>Kürzel</U>>]; Vorname; Nachname; EMail[label="E-Mail-Adresse"] | ||
Lehrkraft -- Kuerzel | Lehrkraft -- Kuerzel | ||
| Zeile 23: | Zeile 26: | ||
} | } | ||
</graphviz> | </graphviz> | ||
|CAPTION=Die ''Entity'' | |CAPTION=Die ''Entity'' <q>Lehrkraft</q> mit vier Attributen.<br/><q>Kürzel</q> ist das Schlüsselattribut}} | ||
Entities werden als Rechtecke dargestellt. Um eine Entity herum werden deren Attribute in Ovalen angeordnet und mit Linien damit verbunden. Schlüsselattribute werden unterstrichen. | |||
''Relationships'' werden als Rauten dargestellt und verbinden zwei oder mehr ''Entities'' miteinander. | |||
Gewöhnlich schreibt man ein finites Verb in die Raute, um die Beziehung zu beschreiben, z.B. <q>Lehrkraft—leitet—Klasse</q>, <q>Ärzty—behandelt—Patienty</q> oder <q>Autory—schreibt—Buch</q> | |||
Relationships können unterschiedlicher Natur sein. Allgemein unterscheidet man zwischen 1:1- (<q>eins zu eins</q>), 1:n- und m:n-Beziehung. Dies wird <q>Kardinalität</q> genannt. | |||
{| class="wikitable" | |||
|+ Kardinalitäten | |+ Kardinalitäten | ||
|- | |- | ||
! Typ !! Beispiel !! Erläuterung | ! Typ !! Beispiel !! Erläuterung | ||
|- | |- | ||
| <math>1:1</math> || Lehrkraft—leitet—Klasse || Eine Lehrkraft leitet genau eine Klasse, | | <math>1:1</math> || Lehrkraft—leitet—Klasse || Eine Lehrkraft leitet genau eine Klasse,<br/>eine Klasse wird von genau einer Lehrkraft geleitet. | ||
eine Klasse wird von genau einer Lehrkraft geleitet. | |||
|- | |- | ||
| <math>1:n</math> || Autory—schreibt—Buch || Ein Autory schreibt mehrere Bücher, ein Buch wird von genau einem Autory geschrieben. | | <math>1:n</math> || Autory—schreibt—Buch || Ein Autory schreibt mehrere Bücher,<br/>ein Buch wird von genau einem Autory geschrieben. | ||
|- | |- | ||
| <math>m:n</math> || Ärzty—behandelt—Patienty || Ein Ärzty behandelt mehrere Patientys,ein Patienty wird von mehreren Ärztys behandelt. | | <math>m:n</math> || Ärzty—behandelt—Patienty || Ein Ärzty behandelt mehrere Patientys,<br/>ein Patienty wird von mehreren Ärztys behandelt. | ||
|} | |} | ||
Kardinalitäten werden wie folgt an ''Relationships'' notiert: | |||
<graphviz> | |||
graph ER { | graph ER { | ||
fontname="Source Sans Pro,Helvetica,Arial,sans-serif" | fontname="Source Sans Pro,Helvetica,Arial,sans-serif" | ||
| Zeile 58: | Zeile 61: | ||
} | } | ||
</graphviz> | </graphviz> | ||
Für die Kardinalität | Für die Kardinalität <q>beliebig viele</q> schreibt man ein Sternchen. | ||
{{Navigationsleiste Diagrammtypen}} | {{Navigationsleiste Diagrammtypen}} | ||
[[Kategorie:Datenbanken]] | [[Kategorie:Datenbanken]] | ||
Aktuelle Version vom 15. Dezember 2025, 15:49 Uhr
ER-Diagramme sind eine Möglichkeit, die Struktur größerer Datenbanken grafisch darzustellen. Auf diese Weise kann man sich schnell einen Überblick über den Aufbau einer Datenbank verschaffen und leichter darüber kommunizieren, etwa bei der Planung eines größeren Softwareprojektes.
Außerdem gilt wie bei allen Modellierungswerkzeugen: eine saubere Modellierung vor der Implementierung hilft bei der Umsetzung, da so die Aufgabenverteilung besser organisiert werden kann.
Idee
In unseren Daten beschreiben wir Dinge (entities), die miteinander in Beziehung (relationships) stehen. Eine Entity zeichnet sich dadurch aus, dass sie unabhängig von anderen Daten existieren kann. Demgegenüber definiert sich eine Relationship hauptsächlich über die Entities, die sie miteinander verbindet. Die Eigenschaften von Entities und Relationships werden Attribute genannt. Attribute, mit denen Entities eindeutig identifiziert werden können, werden Schlüssel genannt.
Wir können Schülys, Lehrkräfte und Klassen als Entities auffassen. Klasse und Lehrkraft können dann z.B. in der Beziehung X ist Klassenleitung von Y
stehen, z.B. Frau Müller-Borrello ist Klassenlehrerin der 9b
.
Darstellung

Lehrkraftmit vier Attributen.
Kürzelist das Schlüsselattribut
Entities werden als Rechtecke dargestellt. Um eine Entity herum werden deren Attribute in Ovalen angeordnet und mit Linien damit verbunden. Schlüsselattribute werden unterstrichen.
Relationships werden als Rauten dargestellt und verbinden zwei oder mehr Entities miteinander.
Gewöhnlich schreibt man ein finites Verb in die Raute, um die Beziehung zu beschreiben, z.B. Lehrkraft—leitet—Klasse
, Ärzty—behandelt—Patienty
oder Autory—schreibt—Buch
Relationships können unterschiedlicher Natur sein. Allgemein unterscheidet man zwischen 1:1- (eins zu eins
), 1:n- und m:n-Beziehung. Dies wird Kardinalität
genannt.
| Typ | Beispiel | Erläuterung |
|---|---|---|
| Lehrkraft—leitet—Klasse | Eine Lehrkraft leitet genau eine Klasse, eine Klasse wird von genau einer Lehrkraft geleitet. | |
| Autory—schreibt—Buch | Ein Autory schreibt mehrere Bücher, ein Buch wird von genau einem Autory geschrieben. | |
| Ärzty—behandelt—Patienty | Ein Ärzty behandelt mehrere Patientys, ein Patienty wird von mehreren Ärztys behandelt. |
Kardinalitäten werden wie folgt an Relationships notiert:

Für die Kardinalität beliebig viele
schreibt man ein Sternchen.
