Die Basis einer Datenbank und der darin gespeicherten Tabellen, bilden die Datenbankstrukturen, die gewöhnlich in einem Datenbankmodell grafisch dargestellt werden.
Hierzu ein Beispiel eines Datenbankmodells für die Verwaltung von Vereinsmitgliedern:
Erklärungen zum Datenbankmodell
- Es gibt eine Tabelle der Mitglieder tblUser
- Das Mitglied hat vielleicht Ideen zu den Aktivitäten des Vereins (Tabelle tblIdeen)
- Das Mitglied kann sich an den Aktivitäten des Vereins anmelden (Tabelle tblMelden)
- Die Aktivitäten des Vereins befinden sich in der Tabelle tblInfo
- Die Aktivitäten des Vereins sind in verschiedene Kategorien aufgeteilt (Tabelle tblKategorie)
- Zur Teilnahme der Mitglieder an den Aktivitäten, müssen die Mitglieder verschiedene Kleidung tragen (Tabelle tblTenue)
Analyse und Design
Schon beim Modell kann man erkennen, dass die verschiedenen Datenstrukturen logisch getrennt sind:
- Die Daten zu den Mitgliedern sind in einer Tabelle und
- alles andere was mit den Mitgliedern zu tun hat, befindet sich in anderen Tabellen
Keine Redundanzen …
Nun erkennen wir zwei logisch zu trennende Datenstrukturen, die man sinnvollerweise in verschiedene Entitäten (Tabellen) aufteilt, um nicht zu viele Redundanzen (überflüssige Wiederholungen) zu erzeugen. Gerade wenn ein Mitglied mehrere Ideen hat oder sich an mehreren Aktivitäten des Vereins anmeldet, würde man bei einer Speicherung in nur einer Tabelle massive Redundanzen erzeugen, wenn man alle Mitgliedsdaten immer wieder in einem Datensatz auflisten müsste.
… aber Relationen
Aber natürlich will man Beziehungen zwischen den Mitgliederdaten und den Aktivitäten des Vereins haben. So möchte man beispielsweise auf jeden Fall wissen, wer eine Idee hatte oder wieviele Mitglieder an einer Aktivität angemeldet sind. Damit kommt der Begriff der Relationen und der Technik einer relationalen Datenbank ins Spiel.
Ganz grob genügt es, sich vorzustellen, dass man bei verschiedenen Tabellen Verweise auf Daten in anderen Tabellen führt, also Beziehungen aufbaut. Dazu verwendet man in einer Tabelle einen eindeutigen Schlüssel für einen Datensatz und trägt diesen dann in einer Spalte in einer anderen Tabelle ein. Man nennt das dort dann das Führen eines Fremdschlüssels (foreign key), wenn man den Schlüssel einer anderen
Tabelle in einem Datensatz angibt.
Damit dieses Datenbankmodell zu einer Anwendung für den Benutzer wird, werden Oberflächen entwickelt. Dieses können Webanwendungen oder auch Windows-Anwendungen sein, welche auf die Daten in der zum Modell erstellten Datenbank zugreifen.