Nachdem beim letzten Mal das Erstellen des Entity-Relationship-Modells Thema war, widmen wir uns in der neunundvierzigsten Episode des Anwendungsentwickler-Podcasts den Schritten bei der Erstellung eines Tabellenmodells.
Inhalt
Modellierung mit Tabellenmodellen
Welche Bestandteile hat ein Tabellenmodell?
Tabellen (Relationen) mit Name, Spalten, Datentypen; Beziehungen mit Kardinalitäten; Primär- und Fremdschlüssel werden gekennzeichnet (z.B. mit PK und FK).
Wie kommt man vom ER-Modell zum Tabellenmodell?
Jeder Entitätstyp wird zu einer Tabelle.
Attribute werden zu Spalten dieser Tabellen.
Datentypen der Spalten bestimmen.
m:n-Beziehungen durch Fremdschlüssel in Zwischentabellen auflösen. Ggfs. Attribute der Beziehung als Spalten ergänzen.
1:n- und 1:1-Beziehungen durch Fremdschlüssel auflösen.
Bei 1:1 ist die Position des Fremdschlüssels egal, bei 1:n muss er in die n-Tabelle.
Tipps zur Prüfung und Praxis
Immer alle Informationen einzeichnen, auch wenn sie nicht explizit gefragt sind.
Drei Datentypen reichen: VARCHAR, NUMBER und DATE.
Wenn eine Tabelle einen zusammengesetzten Schlüssel mit mehr als 2 Attributen hat, führe einen anonymen Primärschlüssel ein.
Achte auf ein normalisiertes Modell in dritter Normalform (die weiteren Normalformen sind irrelevant).
Du solltest trotzdem erklären können, wann man von der Normalisierung abweichen kann/sollte.
Die 1:n-Beziehungen werden in der 3. Normalform aufgelöst, die m:n-Beziehungen in der 2.
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.
Im Handbuch für Fachinformatiker ist das komplette Kapitel 13 dem Thema Datenbanken gewidmet.
*(direkt beim Rheinwerk-Verlag bestellen*)
Am besten übst du die Datenbankmodellierung mit Prüfungsaufgaben der IHK. Dazu empfehle ich die 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 - gerade auch ber der Datenmodellierung. Absolut lesenswert für jeden Softwareentwickler.
*
Links
Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts
Relationale Datenbanken - Häufige Fragen im Fachgespräch - Anwendungsentwickler-Podcast #17
Normalisierung - Häufige Fragen im Fachgespräch - Anwendungsentwickler-Podcast #18
SQL - Häufige Fragen im Fachgespräch - Anwendungsentwickler-Podcast #19