Datenbankmodellierung (Lernzielkontrolle zum relationalen Tabellenmodell) – Anwendungsentwickler-Podcast #49

Dieser Beitrag ist Teil 11 von 14 in der Serie Lernzielkontrollen.

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.

Probeabo bei Audible (Affiliate)

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.
    Sascha Kersken - IT-Handbuch für Fachinformatiker: Für Fachinformatiker der Bereiche Anwendungsentwicklung und Systemintegration. Inkl. Prüfungsfragen und Praxisübungen (Affiliate)*
    (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*.
    Prüfungstrainer Fachinformatiker Anwendungsentwicklung (Affiliate)*
  • 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.
    Eric Redmond - Seven Databases in Seven Weeks (Affiliate)*

Links

Navigation der Serie<< Datenbankmodellierung (Lernzielkontrolle zum Entity-Relationship-Modell) – Anwendungsentwickler-Podcast #48Java EE 7 (Lernzielkontrolle) – Anwendungsentwickler-Podcast #54 >>
Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

2 comments on “Datenbankmodellierung (Lernzielkontrolle zum relationalen Tabellenmodell) – Anwendungsentwickler-Podcast #49

  1. Larissa sagt:

    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.

  2. Stefan Macke sagt:

    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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax