- Zeichensätze und -kodierung – Anwendungsentwickler-Podcast #32
- HTML – Anwendungsentwickler-Podcast #33
- Java (Lernzielkontrolle) – Anwendungsentwickler-Podcast #36
- Allgemeine Fragen zur Programmierung (Lernzielkontrolle) – Anwendungsentwickler-Podcast #37
- Variablen und Operatoren (Lernzielkontrolle) – Anwendungsentwickler-Podcast #38
- Zahlen und Zeichen (Lernzielkontrolle) – Anwendungsentwickler-Podcast #39
- Algorithmen und Methoden (Lernzielkontrolle) – Anwendungsentwickler-Podcast #42
- Objektorientierung Teil 1 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #43
- Objektorientierung Teil 2 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #44
- Datenbankmodellierung (Lernzielkontrolle zum Entity-Relationship-Modell) – Anwendungsentwickler-Podcast #48
- Datenbankmodellierung (Lernzielkontrolle zum relationalen Tabellenmodell) – Anwendungsentwickler-Podcast #49
- Java EE 7 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #54
- Fehlerbehandlung (Lernzielkontrolle zu Exceptions) – Anwendungsentwickler-Podcast #79
- Arrays und Listen (Lernzielkontrolle) – Anwendungsentwickler-Podcast #99
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.
Podcast: Play in new window | Download (Duration: 39:34 — 17.0MB)
Abonnieren: Apple Podcasts | Spotify | RSS
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
undFK
).
- Tabellen (Relationen) mit Name, Spalten, Datentypen; Beziehungen mit Kardinalitäten; Primär- und Fremdschlüssel werden gekennzeichnet (z.B. mit
- 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
undDATE
. - 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
Hallo.
Vielen Dank für die Episode. Sie hilft mir gerade bei der Vorbereitung für meine Prüfung.
Ich habe eine Frage zu Enums im Tabellenmodell. Würde man da eine extra Tabelle machen für die Enums und dann in der Tabelle, in der man sie nutzt, den Datentyp auf das Enum setzen? Oder wie würde man das darstellen richtigerweise in der UML? als number? Ich konnte dazu nichts ergooglen und frage deshalb hier nach.
Enums sind kein Standardfeature in Datenbanken. Das heißt, wenn eine Datenbank Enums anbietet, ist es je nach Datenbank unterschiedlich implementiert.
Deswegen wirst du auch keine allgemeinen Hinweise dafür finden, wie du so etwas modellierst.
Was in allen Datenbanken funktionieren würde, wäre eine separate Tabelle mit den Ausprägungen des Enums, auf die du dann über einen Fremdschlüssel in der referenzierenden Tabelle verweist. Also quasi eine Lookup-Tabelle.