ER-Modell
Aus ProgrammingWiki
Inhaltsverzeichnis |
Begriffe
- Entität: konkretes, eindeutig identifizierbares Datenobjekt (z.B. bestimmter Autor, bestimmtes Buch).
- Alle Entitäten mit gleichen Attributen gehören zu einer Entitätenmenge (z.B. Autor, Buch). [hier: gelb]
- Attribut: gemeinsame Eigenschaften aller Entitäten einer Entitätenmenge. Der konkrete Titel eines bestimmten Buches ist der Attributwert. [hier: grün]
- Primärschlüssel: dient der eindeutigen Identifizierung einer Entität (z.B. eindeutige ID, ISBN...). [hier: durchgängig unterstrichene Attribute] Man kann übrigens auch mehrere Attribute als gemeinsamen Primärschlüssel definieren.
- Fremdschlüssel: dient als Verweis zwischen zwei Relationen (ist Primärschlüssel einer anderen Entitätenmenge). [hier: strich-strich-unterstrichene Attribute]
- Beziehung (Relationship): Zwischen den verschiedenen Entitätenmengen existieren Beziehungen (z.B. "verfasst" ein Autor ein Buch). [hier: orange]
Tabellen
Die Entitätenmenge Autor und Buch sollen beispielhaft verdeutlicht werden.
Autor:
A_ID | Name |
3 | Berta Buchschreiber |
4 | Viktor Verfasser |
5 | Sally Schreiber |
Buch:
ISBN | A_ID | Titel | Bestand |
1234567890123 | 4 | Das Leben im Erz | 3 |
1111111111111 | 4 | Mei Arzgebirg - wie bist du schie | 0 |
2222222222222 | 5 | Die moderne Frau | 1 |
Beziehungstypen - Kardinalität
Beziehungen haben eine Kardinalität wie 1:n.
- 1:1 - Ein Mann hat eine Frau; eine Frau hat einen Mann (normalerweise...).
- 1:n - Ein Mond gehört zu einem Planeten; ein Planet kann mehrere Monde haben.
- n:m - Ein Lehrer hat mehrere Schüler; ein Schüler hat mehrere Lehrer.
Das Beispiel oben hat ebenfalls alle drei Beziehungstypen - prüfe dies nach, indem du ähnliche Sätze bildest.
n:m - Beziehungen
Im obigen Beispiel haben die Entitätenmengen Buch und Kunde eine n:m Beziehung.
Für eine Umsetzung bedeutet dies, dass hier eine weitere (nicht direkt eingezeichnete) Tabelle benötigt wird.
Tabelle Buch ist bereits oben abgebildet.
Kunde:
KuNr | Name | PLZ (...Ort, Straße, Hausnummer) |
1024 | August Ausleiher | 09456 |
1025 | Damaris Dauerleser | 09456 |
1027 | Sindy Schmöker | 09123 |
Zusatztabelle: Buchverleih (könnte auch "Buch_Kunde" heißen):
ISBN (Fremdschlüssel) | KuNr (Fremdschlüssel) | Ausleihdatum | Laenge |
1234567890123 | 1024 | 2012-11-01 | 21 |
1234567890123 | 1027 | 2012-10-27 | 14 |
2222222222222 | 1027 | 2012-10-28 | 14 |
Wie man sieht, kann man deshalb auch zusätzliche Attribute in die Beziehung anbringen (Ausleihdatum und Länge).
Hinweis: Dieses Beispiel hat den Mangel, dass ein Kunde das gleiche Buch nicht nochmal ausleihen kann - Es sei denn, der vorherige Eintrag würde gelöscht. Der Einfachheit halber soll dies aber genügen.