Folien



(letzte Synchronisation der PDF-Präsentation: 05.11.2018)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Achtung:

Im September 2017 habe ich zwei Videotutorials + ein Übungsvideo zur Datenmodellierung mit ERD/ERM gemacht und dabei das Konzept etwas umgestellt (z.B. lege ich jetzt nicht mehr so viel Wert auf die Chen-Notation). Die "neue" Einführung (5-Minuten-Video + interaktive Testfragen) finden Sie hier: ERM/ERD - Einführung, Videotutorial.

Grundlagen des ERM

ERM dient dazu, Daten zu modellieren, ohne technische Aspekte (z.B. Speicherung in Datenbank) zu beachten. 1976 von Peter Chen entwickelt, inzwischen liegen verschiedene Darstellungskonventionen vor (vgl. z.B. Wikipedia: ERM ).

Darstellungskonventionen: Einfach, nach Chen

Die vereinfachte Notation nach Chen sieht vor:

Entitätstyp = Rechteck – Ein Entitätstyp bildet Dinge der realen Welt ab (Kunden, Artikel, Gegenstände, Rechnungen, Aufträge usw.). I.d.R. wird ein Entitätstyp in einer relationalen Datenbank durch eine Tabelle realisiert. Die Objekte der realen Welt, die dadurch modelliert werden, sind Entitäten.

Attribut = Ellipse – Attribute sind Eigenschaften von Entitätstypen (Name, Anzahl, Größe, Farbe, Lagerbestand, laufende Nummer … ). Die Schlüssel werden unterstrichen (z.B. Primärschlüssel).

Beziehungstyp = Raute – Entitätstypen sind durch Beziehungstypen miteinander verbunden. Die Kardinalität (Anzahl) werden mit Zahlen bzw. Buchstaben angegeben (1, N, M). Das liest sich im folgenden Beispiel so:

Jeder Kunde kann mehrere (n) Artikel kaufen.
Jeder Artikel kann nur von einem (1) Kunden gekauft werden.

Beispiel:

Darstellungskonventionen: Andere

Nach Wikipedia: ERM

Software zur Erstellung von ER-Diagrammen

  • dia kann u.a. ER-Diagramme und Flussdiagramme. Ältere, nicht besonders komfortable Oberfläche, funktioniert aber einwandfrei.
  • Microsoft Visio
  • OmniGraffle (für Mac)

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: ERM *****

ERM-1) Einfache ERM-Übung: Supermarkt

Erstellen Sie ein ERD zu folgender Situation und geben Sie sinnvolle Attribute zu den Entitäten an.

Der DVD-Verleih "DVD-Zone 3000" verleiht in seinen Filialen verschiedene DVDs.




ERM-2) Einfache ERM-Übung: Autoverleih

Erstellen Sie ein ERD zu folgender Situation und geben Sie sinnvolle Attribute zu den Entitäten an:

Ein Autoverleiher hat drei Filialen, wo Kunden Autos ausleihen können. Jeder Kunde kann jeweils nur ein Auto ausleihen, kann aber mehreren Filialen zugeordnet sein. Die Autos können bei einer beliebigen Filiale zurückgegeben werden und werden dann von dort weiter vermietet.




ERM-3) Einfache ERM-Übung: DVD-Verleih

Erstellen Sie ein ERD zu folgender Situation:

Ein DVD-Verleiher betreibt mehrere Filialen (id, strasse, plz), wo es jeweils mehrere DVDs zu leihen gibt. Jeder Kunde kann nur einer Filiale zugeordnet sein. Jeder Kunde kann mehrere DVDs ausleihen.




ERM-4) ERM-Übung: DVD-Verleih 2

Erweitern Sie die Aufgabe ERM-3) um folgendes Detail:

Jeder Filiale ist ein/e Filialleiter/in und ein Gärtner (in jeder Filiale einer) zugeordnet.





ERM-4a)
Erweitern Sie das ERM aus Übung 4 entsprechend des folgenden Anschreibens:
06datenbanken/datenmodellierung01_mehr-mitarbeiter.rtf





ERM-5) Briefing "Autopark" modellieren

Herr Krösus beauftragt Ihre Firma, ein Programm zur Verwaltung seines Autoparks zu konzipieren. "Ich habe ungefähr 200 Autos in New York, Tokio und Paris", sagt er am Telefon. "Ich kaufe oft neue und fahre auch oft welche zu Schrott. Ich möchte immer genau wissen, in welcher Stadt ich welches Auto zur Verfügung habe. Interessant sind dabei für mich die Marke, die Farbe und die Leistungsstärke in PS."

Beginnen Sie mit der Arbeit und erstellen Sie ein ERD mit dia.




ERM-6) Situation "Mensa" modellieren

Erstellen Sie ein ERD zu folgender Situation:

Die Schule X organisiert die Essensausgabe an Schüler/innen mit einer Mensakarte neu. Die Schüler/innen können Produkte ihrer Wahl aufs Tablett legen (Tagesessen 1, Tagesessen 2, Mineralwasser, Schokoriegel) und bezahlen an der Kasse mit der Mensakarte. Von der Mensakarte wird die entsprechende Summe automatisch abgebucht.

(Ergänzung (schwer!): Um Betrügereien durch die Angestellten vorzubeugen, wird bei jeder Abbuchung die Ident-Nummer des/der Angestellten festgehalten.)





ERM-7) Briefing "DVD-Verleih" modellieren

Ein DVD-Verleiher möchte, dass Sie eine Software schreiben, mit der die Verleih- und Rückgabeprozesse möglichst vollständig realisiert werden können. Dazu hat der Verleiher Ihnen eine Liste von Dingen geschrieben, die ihm wichtig scheinen.

1. "Meine Filialen liegen in der Schubertstraße 13 (Filialnummer 1), der Weldemann-Allee 4a-c (Filialnummer 2) und dem Boulevard du Printemps 209 (Filialnummer 3). Ich plane in nächster Zeit die Eröffnung einer weiteren Filiale in der Hauptstraße 117."
2. "Es wäre mir wichtig, dass man zu jeder Filiale abrufen kann, wer der Filialleiter bzw. die Filialleiterin ist. Vom Filialleiter kenne ich die Telefonnummer, die Kontonummer (für die monatlichen Gehaltsüberweisungen) und den Namen."
3. "Wir verleihen Filme auf verschiedenen Medien. Wahrscheinlich wäre es sinnvoll, wenn man das Genre abrufen würde, falls Kunden keine bestimmte Vorstellung haben und sich beraten lassen möchten. Wir haben Filme aus den Bereichen Horror, Humor, Dokumentation und Liebesdrama."
4. "Aktuell haben wir DVDs und Bluerays. Es wäre nicht schlecht, wenn die Software diesbezüglich einfach zu erweitern wäre, falls sich ein neues Format durchsetzt."
5. "Bitte speichern Sie auch das Erscheinungsjahr des Filmes."
6. "Von unseren Kunden speichern wir Vorname, Nachname, Kundennummer und Telefonnummer."
7. "Unsere Kunden können maximal drei Filme gleichzeitig ausleihen."

Sie sind etwas verärgert über das unstrukturierte Briefing. Erstellen Sie ein ERD, das die Datenbankstruktur abbildet.




ERM-8) Fehler im ERD finden

Im ERD 06datenbanken/ERD-autoverleih_fehler.png ist ein Fehler. Finden Sie ihn.




ERM-9) ERM: Definition

Was bedeutet "ERM"?




ERM-10) ERD erstellen, einfach ("Bücher")

Erstellen Sie ein ERD zu folgender Situation:
Ein Buchhändler verkauft Bücher. Er möchte, dass Sie eine Datenbank konzipieren, in der die Bücher verwaltet werden. "Wenn ich in meine Datenbank schaue, dann möchte ich nicht nur den Titel der Bücher sehen, sondern auch den Autor, den Preis und die ISBN-Nummer."
Kurz bevor Sie sich an die Arbeit machen, erhalten Sie noch einen Anruf: "Sagen Sie, wäre es möglich, dass in der Datenbank auch aufgenommen wird, welchem Genre die einzelnen Bücher zuzuordnen sind? Also zum Beispiel Horror, Fantasy, Sachbuch usw. Ganz toll wäre es natürlich, wenn zu den einzelnen Genres Beschreibungen möglich wären, die wir mit unserem Spezial-Laserdrucker als Aufkleber auf die Regalabteilungen drucken könnten, zum Beispiel 'Fantasy-Bücher beflügeln die Fantasie, da sie meist fantastische Themen zum Gegenstand haben'. Und vielleicht könnte man noch ausdrucken, wer das erste Buch des Genres geschrieben hat, also wer das Genre erfunden hat, verstehen Sie?"




ERM-11) ERD erstellen, einfach ("Mitarbeiter")

Erstellen Sie ein ERD zu folgender Situation:
Der örtliche Elektrikermeister hat 8 Mitarbeiter/innen. Er möchte, dass diese Mitarbeiter in einer Datenbank erfasst werden. Er präzisiert: "Es wäre für mich prima, wenn ich auf einen Blick nicht nur den Vornamen und Nachnamen erfassen könnte, sondern auch die Telefonnummer, damit ich anrufen kann, wenn ein/e Mitarbeiter/in z.B. krank ist."
Kurz bevor Sie sich an die Arbeit machen, erhalten Sie noch einen Anruf: "Entschuldigen Sie, ich habe noch etwas vergessen. In der Datenbank muss noch stehen, in welcher Krankenversicherung meine Mitarbeiter/innen versichert sind. Denn manchmal muss ich der Krankenversicherung Unterlagen schicken oder dort anrufen. Ich habe keine Lust, jedes Mal im Telefonbuch nachzuschauen."




ERM-11a) ERD-erstellen, Elektrikermeister 2 (etwas schwieriger)

Erstellen Sie ein ERD zu folgender Situation:
Der örtliche Elektrikermeister hat 8 Mitarbeiter/innen. Er möchte, dass diese Mitarbeiter in einer Datenbank erfasst werden. Er präzisiert: "Es wäre für mich prima, wenn ich auf einen Blick nicht nur den Vornamen und Nachnamen erfassen könnte, sondern auch die Telefonnummer, damit ich anrufen kann, wenn ein/e Mitarbeiter/in z.B. krank ist."
Er überlegt kurz. „Außerdem gibt es verschiedene Tätigkeiten, die die Mitarbeiter ausführen und die ich in meiner Abrechnung aufführe. Lassen Sie mich mal überelgen … also es gibt Kabelreparieren, Steckdosenanschließen, Leitungswartung, Spannungsmessung und Blitzschutz. Hoffentlich habe ich nichts vergessen. Egal, ich sage es Ihnen dann einfach später, wenn mir noch andere Tätigkeiten einfallen.“
Kurz bevor Sie sich an die Arbeit machen, erhalten Sie noch einen Anruf: "Entschuldigen Sie, ich habe noch etwas vergessen. In der Datenbank muss noch stehen, in welcher Krankenversicherung meine Mitarbeiter/innen versichert sind. Denn manchmal muss ich der Krankenversicherung Unterlagen schicken oder dort anrufen. Ich habe keine Lust, jedes Mal im Telefonbuch nachzuschauen."




ERM-12) ERD erstellen, einfach ("Taxiunternehmer")

Erstellen Sie ein ERD zu folgender Situation:
Eine Taxiunternehmerin möchte, dass Sie eine Datenbank konzipieren: "Da müssen alle Taxis erfasst sein mit den wichtigen Daten, also wie viel Sitze die haben und ob man rauchen darf und welche Marke das ist und welcher Autotyp. Dann kann man, wenn ein Kunde anruft, einfach in die Datenbank schauen und wenn der Kunde ein Taxi mit sechs Plätzen braucht, dann kann man das entsprechende Auto raussuchen, verstehen Sie?"
Kurz bevor Sie sich an die Arbeit machen, erhalten Sie noch einen Anruf: "Ich habe noch vergessen, in die Datenbank muss noch rein, bei wem das Auto versichert ist, also der Name des Versicherers und die Anschrift und Telefonnummer und so. Geht das?"




ERM-13) ERD erstellen, etwas schwerer ("Fahrräder")

Erstellen Sie ein ERD zu den unten dargestellten Relationen.

Anmerkung: Primärschlüssel sind durch einen Stern (*) markiert. In Tabellenform finden Sie die Aufgabe in dieser Datei: 06datenbanken/datenbanken02_fremdschluessel_UE4_diverse.xlsx (Tabellenblatt fahrraeder).


Relation 1: "fahrraeder"
* fahrrad_id
hersteller
typbezeichnung
gangschaltung
bremsen
(Beispieldatensatz: 17, 'Smith', 'Mountainbike', 8, 56)

Relation 2: "optionale_ausstattung"
*id
name
einkaufspreis
verkaufspreis
(Beispieldatensatz: 9, 'Schutzbleche', 13.27, 19.99)

Relation 3: "schaltungen"
*id
hersteller
typbezeichnung
anzahl_gaenge
art
(Beispieldatensatz: 5, 12, 'Speedhub 500/14', 14, 'Nabenschaltung')

Relation 4: "hersteller"
*herst_id
name
plz
ort
(Beispieldatensatz: 144, 'Burghöffer', 79312, Emmendingen)

Relation 5: "bremsen"
*id
typ_bezeichnung
hersteller
bremskraft
(Beispieldatensatz: 12, 'HS 33', 82, 30)

Relation 6: "fahrrad_hat_optionale_ausstattung"
fahrrad
ausstattungs_id
(beispieldatensatz: 5,1)





ERM-14) ERD erstellen, etwas schwerer ("Kunden")

Erstellen Sie ein ERD zu den unten dargestellten Relationen.

Anmerkung: Primärschlüssel sind durch einen Stern (*) markiert. In Tabellenform finden Sie die Aufgabe in dieser Datei: 06datenbanken/datenbanken02_fremdschluessel_UE4_diverse.xlsx (Tabellenblatt kunden).

Relation 1: "kunden"
*id
vorname
nachname
postleitzahl
rabattstatus
(Beispieldatensatz: 3, 'Herbert', 'Smith', 79312, 3)

Relation 2: "orte"
*postleitzahl
name
bundesland_id
(Beispieldatensatz: 79111, 'Freiburg', 2)

Relation 3: "speditionen"
*id
name
strasse
plz
(Beispieldatensatz: 28, 'DHL', 'Königsweg 38-42', 80143)

Relation 4: "bundeslaender"
*id
name
(Beispieldatensatz: 1, 'Bayern')

Relation 5: "kunde_bevorzugt_spedition"
kunde
spedition
(Beispieldatensatz: 13, 16)

Relation 6: "rabattstatus"
*id
bezeichnung
prozent
(Beispieldatensatz: 8, 'Erstbesteller', 0)





ERM-15) ERD erstellen, etwas schwerer ("Schüler")

Erstellen Sie ein ERD zu den unten dargestellten Relationen.

Anmerkung: Primärschlüssel sind durch einen Stern (*) markiert. In Tabellenform finden Sie die Aufgabe in dieser Datei: 06datenbanken/datenbanken02_fremdschluessel-uebungen-2.xlsx (Tabellenblatt schueler).

Relation 1: "schueler"
*id
vorname
nachname
strasse
postleitzahl
klassenlehrer
(Beispieldatensatz: 1, 'Herbert', 'Smith', 'Königsweg 33', 89021, 13)

Relation 2: "orte"
*postleitzahl
name
bundesland_id
(Beispieldatensatz: 79111, 'Freiburg', 2)

Relation 3: "lehrer"
*id
vorname
nachname
(Beispieldatensatz: 21, 'Josef', 'Luman')

Relation 4: "schueler_hat_lehrer"
schueler
lehrer
(Beispieldatensatz: 7, 3)

Relation 5: "lehrer_hat_faecher"
lehrer
fach
(Beispieldatensatz: 27, 18)

Relation 6: "bundeslaender"
*id
name
(Beispieldatensatz: 1, 'Bayern')

Relation 7: "faecher"
*id
name
(Beispieldatensatz: 5, 'Mathematik')





ERM-16) ERD erstellen: Autowerkstatt

Ein Mann mit ölverschmiertem Gewand taucht in Ihrer Computerfirma auf. Er braucht eine Datenbank für seine Autowerkstatt. Das Gespräch läuft so ab:

SIE: Was möchten Sie denn in der Datenbank alles verwalten?
ER: Naja, die Autos eben. Dass man weiß, welche Schäden die haben. Und eben den ganzen Werkstattbetrieb.
SIE: Können Sie mir ein Beispiel machen?
ER: Wenn jemand ein Auto bringt, dann schreibe ich das Kennzeichen auf und die Marke und den Typ, außerdem die Schäden, die das Auto hat - z.B. 'Windschutzscheibe zerbrochen', 'Kofferraum schließt nicht' und so weiter. Meistens schreibe ich mir gleich noch dazu, wie viel das kostet; eine Windschutzscheibe kostet ja immer gleich viel.
SIE: Warum interessiert Sie die Marke?
ER: Ich muss doch wissen, was es für eine Marke ist. Und manchmal muss ich da anrufen, zum Beispiel rufe ich dann bei VW an und bestelle Teile oder Reparaturanleitungen. Manchmal schicke ich denen auch mit der Post defekte Teile, wenn es um Garantien geht oder so.
SIE: Schreiben Sie auch auf, wem das Auto gehört?
ER: Natürlich! Das nervt an meiner Zettelwirtschaft auf ziemlich, denn wir haben viele Leute, die öfter kommen.
SIE: Was brauchen Sie denn von den Kunden?
ER: Wie darf ich das verstehen?
SIE: Ich meine - welche Daten halten sie von den Kunden fest?
ER: Ach so. Naja, wie sie heißen, Adresse und so. Und welches Auto sie haben.
SIE: Gibt es auch Kunden, die mehrere Autos in die Werkstatt bringen?
ER: Eigentlich nur ganz selten.
SIE: Prima ... zu Ihnen bringe ich mein Auto auch mal.
ER: Das wäre toll. Ihres mache ich auch höchstpersönlich. Wissen Sie, im Vertrauen, Lehrlinge bauen ab und zu Mist. Deshalb schreibe ich mir auch immer auf, welcher Lehrling welches Auto repariert hat. Und wenn einer was verbockt hat, dann rufe ich ihn  zuhause an und mache ihn zur Schnecke - und wenn es mitten in der Nacht ist!
SIE: Wahrscheinlich brauchen Sie auch die Adresse der Mitarbeiter, für Gehaltsmitteilungen etc.
ER: Natürlich. Das nervt auch: Die meisten meiner Lehrlinge wohnen in Emmendingen, die meisten meiner Kunden kommen auch aus Emmendingen - was meinen Sie, wie oft ich das Wort Emmendingen schon geschrieben habe!!! Fehlt nur noch, dass Toyota und Ferrari sich in Emmendingen ansiedeln! So viele "m"s in meinem Leben, ich glaube, ich werde -
SIE: Ok ... Fällt Ihnen sonst noch etwas ein?
ER: In der Werkstatt haben wir viel Werkzeug. Aber das schreibe ich eigentlich nie auf die Zettel, wir hängen das immer gleich wieder an die Wand. Und es hat noch nie was gefehlt.
SIE: Gut, Herr, äh ...
ER: Smith. Alfons Smith.
SIE: Herr Smith, dann werde ich jetzt zuerst ein ER-Diagramm machen und anschließend die Datenbank erstellen.
ER: Öh ... Gut. Auf Wiedersehen.