Datenbankmodellierung (Lernzielkontrolle zum Entity-Relationship-Modell) – Anwendungsentwickler-Podcast #48
IT-Berufe-Podcast - En podcast af Stefan Macke - Mandage
Kategorier:
Eine Kernaufgabe vieler Softwareentwickler – auch in der Abschlussprüfung – ist die Modellierung von Datenbanken. In der achtundvierzigsten Episode des Anwendungsentwickler-Podcasts gehe ich daher die Schritte bei der Modellierung von Datenbanken mit dem Entity-Relationship-Modell durch. Inhalt Modellierung mit dem Entity-Relationship-Modell * Welche Bestandteile hat ein Entity-Relationship-Modell (ERM) und wie sehen sie (in der Chen-Notation) aus? * Entitätstypen (Rechtecke), Attribute (Ovale), Beziehungstypen (Striche mit Rauten) mit Kardinalitäten. * Primärschlüssel werden unterstrichen. * Fremdschlüssel sind nicht (!) enthalten. * m:n-Beziehungen werden nicht (!) aufgelöst. * Vorgehensweise bei der Bestimmung der Kardinalität einer Beziehung: Du musst für die Beziehung zwischen den beiden Entitäten in beide Richtungen separat (!) überlegen, wie viele Ausprägungen der anderen Entität zu einer Ausprägung der aktuellen Entität gehören. Also immer zwei (!) Sätze bilden, die mit „1“ beginnen. Dann nimmst du die beiden Ergebnisse der jeweiligen Gegenseite und bist fertig. Beispiele: * Ein Login ist genau einem (1) Benutzer zugeordnet. Ein Benutzer hat genau einen (1) Login. -> 1:1 * Ein Artikel gehört zu einer (1) Warengruppe. Eine Warengruppe hat mehrere (n) Artikel. -> 1:n * Ein Hund hat mehrere (m) Herrchen. Ein Herrchen hat mehrere (n) Hunde. -> m:n * Wie funktioniert die crow’s foot notation? * Anstatt die Anzahl (0, 1, n, 0..1 usw.) der zugehörigen Datensätze an die Beziehung zu schreiben, wird eine grafische Darstellung verwendet. Die Beziehungslinien werden um 0, 1 oder den Krähenfuß (n) ergänzt. * Wie kommt man zu einem ER-Modell? * Substantive im Aufgabentext (bzw. der Domäne) suchen. Sie sind potentielle Entitätstypen. * Ggfs. konkrete Werte in abstrakte Konzepte übersetzen (z.B. Mercedes in Auto oder gelb in Farbe) und Substantive ergänzen. * Beschreiben die Substantive andere Substantive werden sie zu Attributen. Die beschriebenen Substantive sind dann Entitätstypen. * Ggfs. sinnvolle/notwendige Attribute ergänzen (z.B. Vorname und Nachname bei Personen). * Primärschlüssel kennzeichnen und ggfs. ergänzen. * Beziehungen zwischen Entitätstypen einzeichnen und Kardinalitäten festlegen. * Ggfs. Attribute an die Beziehungen hängen. * Restliche Substantive sinnvoll als Attribute einsortieren oder streichen. * Fertiges Datenmodell mit Beispielen aus der Praxis verifizieren. Literaturempfehlungen * Einsteigern ins Thema Datenmodellierung empfehle ich die Artikelreihe von Dr. Veikko Krypczyk im Entwickler Magazin. Der erste Artikel ist frei verfügbar: Datenbanken: Grundlagen und Entwurf – entwickler.de. * Das Beispiel (Telefonliste) für den Algorithmus zum Erstellen eines Entity-Relationship-Modells habe ich aus einem der Prüfungstrainer für die Abschlussprüfung*. * * Ein tolles Buch, um einmal über den Tellerrand der relationalen Datenbanken hinweg zu schauen, ist Seven Databases in Seven Weeks*. Eine relationale Datenbank (PostgreSQL) wird vorgestellt, aber der Rest des Buches behandelt die unterschiedlichsten Typen von (NoSQL-)Datenbanken und ihre Besonderheiten &...