© Visual Generation/Shutterstock.com
Grundlagen des relationalen Datenbankdesigns - kompakt und klar

Die Basics beherrschen


PHP kann gut mit Datenbanken. Das ist eine altbekannte Weisheit. Gelegentlich muss bei einer neuen Businessapplikation auch die Datenwelt konzipiert und erstellt werden. Voraussetzung ist, dass man die Grundlagen des Datenbankentwurfs beherrscht. Sie denken, das sei ein alter Hut. Vielleicht, sofern Sie mit der dritten Normalform und transitiven Abhängigkeiten bestens vertraut sind. Alle anderen lesen jetzt weiter.

Datenbanken spielen insbesondere bei betrieblichen Anwendungssystemen eine wichtige Rolle. Im Idealfall existiert die Datenbank schon und man muss sich nur um die Ankopplung aus einem neuen Anwendungssystem kümmern. Dynamische Webapplikationen auf der Basis von PHP arbeiten sehr häufig mit relationalen Datenbanken zusammen. Unzählige Geschäftsanwendungen basieren auf der Architektur einer serverseitigen dynamischen Webapplikation, die ihrerseits auf eine Datenbank zugreift. Gelegentlich ist man als Entwickler auch gefordert, eine neue Datenbank zu entwerfen und umzusetzen. Hat man das sehr lange nicht gemacht, muss man sich oft erst wieder mit den Basics beschäftigen. Diese sind zunächst weniger technischer Natur, sondern mehr konzeptionell. Genau hier setzt dieser Artikel an und frischt die Grundlagen des relationalen Datenbankentwurfs und -designs auf. Beginnen wir mit wichtigen Begriffen, die auch in Fachkreisen immer wieder durcheinandergewürfelt werden.

Begriffe rund um die Datenwelt

Beantworten wir zunächst die Frage: Was ist eine Datenbank? Die korrekte Antwort könnte wie folgt lauten: Eine Datenbank ist eine Sammlung von Daten, die von einem Datenbankmanagementsystem (DBMS) verwaltet wird. Dazu betrachten wir Abbildung 1.

krypczyk_bochkor_basics_1.tif_fmt1.jpgAbb. 1: Komponenten eines Datenbanksystems

Der Ort, an dem die eigentlichen Daten gesammelt werden, wird als Datenbank bezeichnet. Eine solche Datenbank kann zum Beispiel aus einzelnen Tabellen bestehen, in diesem Fall handelt es sich um eine relationale Datenbank. In welcher Form die Daten in der Datenbank abgelegt werden, muss auch definiert und beschrieben werden. Es handelt sich um die Metadaten. Die Metadaten sind also die Datenbank zur Datenbank. Auf die Datenbank selbst wird durch die Anwendungsprogramme zugegriffen. Das geschieht ausschließlich über das so genannte Datenbankmanagementsystem (DBMS). Das DBMS stellt gewissermaßen die Schnittstelle zwischen den Anwendungsprogrammen und der Datenbank dar. Auf Seiten der Datenbank erfolgt der Zugriff über standardisierte Schnittstellen, zum Beispiel mit Hilfe der Abfragesprache SQL. Die Anwendungsprogramme senden ihrerseits ihre Anfragen an das DBMS, und diese werden dann an die Datenbank weitergeleitet. So entsteht eine maximale Entkopplung von Anwendungssoftware und Datenbank, d. h. man kann sowohl die Datenbank oder auch die Anwendungssoftware verändern, aktualisieren oder sogar austauschen. Das Gesamtsystem ist das Datenbanksystem.

Anforderungen an eine Datenbank

An eine Datenbank werden üblicherweise die folgenden Anforderungen gestellt:

  • Datenunabhängigkeit: Die Anwendungsprogramme und das System zur Datenhaltung sollen voneinander unabhängig sein. Beide Systeme werden separat entwickelt und gewartet. Programme können ausgetauscht werden, ohne dass es Auswirkungen auf die Datenbank hat. Ebenso kann man das System zur Datenhaltung anpassen. Sofern die Schnittstellen identisch sind, hat es keine Auswirkungen auf die Programme.

  • Effizienter Zugriff: Die Daten müssen so in der Datenbank abgelegt werden, dass man damit effizient arbeiten kann. Mit anderen Worten: Eine Datenbank, die Millionen von Kundendaten enthält, braucht ein durchdachtes System zur Datenablage. Zum Beispiel können die Datensätze nach dem Namen sortiert gespeichert werden. Nur dann gelingt es dem DBMS, die relevanten Informationen schnell zu finden.

  • Gemeinsame Datenbasis: Alle Daten innerhalb einer Datenbank werden zentral abgelegt.

  • Paralleler Zugriff: Mehrere Benutzer oder Programme sollen parallel mit der Datenbank bzw. den darin gespeicherten Daten arbeiten können. Das DBMS muss in der Lage sein, mit diesen parallelen Zugriffen umzugehen. Ein Beispiel: Sowohl Programm A als auch Programm B wollen den Datensatz des Kunden Müller anpassen.

  • Datensicherheit: Ein DBMS muss regeln, welche Programme und Nutzer auf welche Daten zugreifen können. Dazu muss es dezidierte Rechte zuteilen können. Grundlegende Rechte sind beispielsweise Leserecht, Schreibrecht oder Löschrecht. Noch weitergehende Berechtigungen erlauben das Ändern der Datenstruktur.

  • Datenkonsistenz/Datenintegrität: Die Datenbank muss stets in einem gültigen Zustand sein. Verweise innerhalb der Datenbank dürfen nicht ins Leere zeigen. Das DBMS muss sicherstellen, dass Transaktionen, wie das Löschen eines Datensatzes, nicht dazu führen, dass die Datenbank danach Fehler aufweist.

  • Kontrollierte Redundanz: Grundsätzlich ist die mehrfache Speicherung von Informationen nicht wünschenswert, da zum Beispiel Änderungen der Daten an mehreren Stellen gleichzeitig vorgenommen werden müssen. Ein bestimmtes Maß an Redundanz kann jedoch für eine höhere Verarbeitungsgeschwindigkeit zugelassen werden.

  • Wiederherstellung: Das DBMS muss nach einem Fehler ein Back-up- oder ein Rücksetzungsverfahren zur Wiederherstellung einer konsistenten Datenbank anbieten.

  • Abfragesprache: Es muss eine Möglichkeit für die Datenmanipulation existieren. Bei relationalen DBMS ist das meist eine Form der Sprache SQL.

Wie gesagt, handelt es sich um die wesentlichen Anforderungen an eine Datenbank. Für die Erfüllung dieser Anforderungen ist das DBMS zuständig. Es gibt nicht nur einen Ansatz, um eine Datenbank umzusetzen. Die verschiedenen Arten von Datenbanken sind das Thema des nächsten Abschnitts.

Arten von Datenbanken

Ausgangspunkt war das hierarchische Datenmodell, das heute wegen seiner beschränkten Anwendbarkeit kaum noch verwendet wird. Das Netzwerkmodell findet für umfangreiche Datenmengen im Großrechnerbereich seine Anwendung. Am häufigsten wird das relationale Datenmodell eingesetzt. Es ist die Grundlage für die Modellierung fast aller Datenstrukturen im betrieblichen Umfeld. Dass man dieses Datenbankmodell beherrscht, ist ein absolutes Muss. In der jüngeren Vergangenheit wurde oft für die Verwaltung von unstrukturierten Daten auf eine andere Datenstruktur gesetzt. Dafür haben sich die Begriffe objektbasierte Datenbanken oder NoSQL-Datenbanken etabliert. Diese Entwicklungen spielen gerade im Zeitalter der Massendatenverarbeitung und Big Data eine enorme Rolle. Da das relationale Datenbankmodell weiterhin für ein Großteil der Line-of-Business-Applikationen die zentrale Rolle spielt, also die Daten in miteinander verbunden Tabellen gehalten werden, werden wir auf dieses Datenbankmodell gleich näher eingehen. Egal welches Datenbankmodell angewendet wird: Vor der technischen Umsetzung wird ein Konzept benötigt.

Zum Konzept: Schritt für Schritt

Der Aufbau der Datenbank ist nicht in einem Schritt erledigt. Es sind mehrere aufeinanderfolgende Phasen (Abb. 2) zu durchlaufen:

  • Externe Phase: Zunächst geht es um die Ermittlung der Informationsstruktur. Die Datenbank soll einen Ausschnitt aus der realen Welt abbilden. Das erfolgt durch die Beschreibung der Daten. Dazu ist der Informationsbedarf der Benutzer zu ermitteln und zu strukturieren. Das Ergebnis dieses ersten Schritts wird als Spezifikations- und Anforderungsanalyse bezeichnet. Es ist eine informelle Beschreibung des Fachproblems. Mit anderen Worten: Welche Daten sollen in der Datenbank verwaltet werden? Zum Beispiel: Daten von P...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang