Datenbank-Training zu relationaler Modellierung (RM), Entity-Relationship-Modellierung (ERM), SQL, Objektorientierter Modellierung (OOM). 89 Aufgaben zum effizienten Datenbankdesign (Version 08/2023)
Der Text Datenbanktraining findet sich auf http://www.staud.info.
Methodenwissen erlangt man am besten, indem man die Methode anwendet. Dann entsteht nach einiger Zeit Methodenkompetenz. Dies gilt auch für die verschiedenen Methoden des Datenbankdesigns und des Umgangs mit Datenbanken.
Nach dem Erwerb des notwendigen Theoriewissens sollte diese Phase des Trainerens angestrebt werden. Im Kontext der Programmierung ist dies schon länger klar. Gute Lehrbücher für den Erwerb von Programmierkompetenz enthalten zahlreiche nachvollziehbare Beispiele, von einfach bis komplex. Der Verfasser hat es selbst erlebt. Vor Jahrzehnten beim Lernen von C++ mit dem legendären Buch von Stephen Prata und danach immer wieder beim Erlernen weiterer Programmiersprachen.
Dieser Text will ähnliches für die Datenmodellierung und das Datenbankdesign leisten. Anhand zahlreicher Beispiele soll das Theoriewissen zur Anwendung und zu einer bestimmten Exzellenz geführt werden. Dass außerdem auch einige wichtige Theoriefragen angesprochen (wiederholt) werden, stört dabei sicher nicht. Das Motto ist:
Festigung, Vertiefung und Verbreiterung der Methodenkompetenz (bzgl. Datenmodellierung) durch Anwenden der Methode.
Voraussetzung dafür sind Basiskenntnisse der Methoden.
Relationale Modellierung
Den größten Anteil hat das relationale Datenbankdesign, die relationale Modellierung. Anwendungsbeispiele aus vielen Anwendungsbereichen, in denen in unterschiedlichen Schwierigkeitsgraden alle Aspekte des relationalen Datenbankdesigns thematisiert werden, sollten einen umfassenden Kompetenzerwerb ermöglichen.
Einige Aufgaben widmen sich auch wichtigen Aspekten der relationalen Theorie. Vor allem denen, die das Datenbankdesign unterstützen.
Semantische Modellierung
Die semantische Modellierung gerät schon seit einiger Zeit etwas ins Vergessen, sehr zu unrecht. Sie hat weiterhin Bedeutung und ist deshalb auch hier mit einigen Aufgaben vertreten. Hauptsächlich in ihrer Ausprägung als Entity Relationship-Modellierung.
Objektorientierte Modellierung
Ein weiteres Kapitel widmet sich der objektorientierten Modellierung nach der UML 2.5. Dabei geht es um die inhaltlichen und semantischen Aspekte des Anwendungsbereichs, nicht um die Klassenbildung im Rahmen der Programmentwicklung, die ja eher funktionsorientiert sein muss. Ziel ist das, was auch Objektmodell genannt wird.
SQL
Zwischendurch und in einem Kapitel am Ende wird die Umsetzung relationaler Datenmodelle mittels SQL in konkrete relationale Datenbanken durch einige Aufgaben gezeigt – ungefähr auf dem Niveau nach einer einführenden Lehrveranstaltung.
Ausgangspunkt
Im Text (vgl. http://www.staud.info/aufgabendb/au_t_1.htm) wird davon ausgegangen, dass bei der Leserin bzw. beim Leser Kenntnisse bezüglich Datenbankdesign (Datenmodellierung) vorhanden sind. Vor allem zu relationalen Datenbanken. Dazu gehört ein Verständnis von Attributen, Relationen und der elementaren Normalform (1NF). Diesbezügliche Lücken können mit Hilfe von [Staud 2021] beseitigt werden:
Staud, Josef Ludwig: Relationale Datenbanken. Grundlagen, Modellierung, Speicherung, Alternativen (2. Auflage). Hamburg 2021 (tredition)
Lücken bzgl. „inhaltlicher“ objektorientierter Modellierung beseitigt [Staud 2019]:
Staud, Josef: Unternehmensmodellierung – Objektorientierte Theorie und Praxis mit UML 2.5. (2. Auflage). Berlin u.a. 2019 (Springer Gabler)
Attributbasiertheit
Für sehr viele Datenbanken und ihre Methoden gilt: sie sind attributbasiert. D.h. sie beruhen auf Attributen, wie sie von den Eigenschaften der Alltagswelt abgeleitet wurden. Vgl. [Staud 2021, Abschnitt 2.4]. Dies gilt für alle relationalen Datenbanken, aber auch für objektorientierte, genauso wie für die semantische Datenmodellierung. Umso überraschender, dass der Attributsbegriff in Informatikkreisen nur stiefmütterlich behandelt wird.
Aufgabengestaltung
Bei den Modellierungsaufgaben wird mit einer Beschreibung des Anwendungsbereichs und der Anforderungen begonnen. Dabei liegen dann bereits die Attribute vor. Konzeptionelle Modellierung, der Weg von der Beschreibung des Anwendungsbereichs bis zu den Attributen und Datenmodellen, wird hier nicht betrachtet.
Der Lösungsweg wird jeweils detailliert aufgezeigt. Die Vorgehensweise ist dabei unterschiedlich, um die möglichen unterschiedlichen Wege aufzuzeigen.
Min/Max
Obwohl es vielerorts beim relationalen Datenbankentwurf nicht üblich ist, werden, wie beim objektorientierten Entwurf, Beziehungswertigkeiten angegeben. Sie werden hier Min-/Max-Angaben genannt. „Min/Max“ steht für minimalen und maximalen Wert der Teilnahme an der Beziehung. Sie zeigen nicht nur, ob eine Beziehung Pflicht ist oder optional, sondern auch, welchen Umfang die Wertigkeiten haben können.