Logo Wissenstransfer Gerhard at CichnaDotCom

>> Wissensdatenbank / Datenmodellierung und Datenbanksysteme

Grundlagen relationaler Datenbanken

Grundkonzepte des relationalen Datenmodells

Die von industriellen Informationssystemen zu verarbeitenden Daten werden in der Regel in Datenbanken gespeichert, die innerhalb von Datenbanksystemen zur Verfügung gestellt werden. Datenbanken haben gegenüber einfachen Dateien eine Reihe von Vorteilen, die besonders für große Datenmengen relevant sind:

Neben den hier beschriebenen Standard-Datenbankmanagementsystemen (DBMS) haben in den letzten Jahren mit den sogenannten noSQL-Systemen auch eine Reihe von DBMS Verbreitung gefunden, die etwas andere Schwerpunkte setzen und beispielsweise für die Steigerung der Effizienz Abstriche bei der Konsistenz der Daten machen. Der Schwerpunkt der Beschreibung soll hier aber zuerst einmal auf den Standard-DBMS liegen.

Dabei unterscheidet man drei eng verwandte Begriffe, siehe Abbildung:
Abbildung: Datenbank, Datenbankmanagementsystem, Datenbanksystem

Benutzer arbeiten meist nur mit den Anwendungen, nicht dem DBMS oder der Datenbank.

Die am weitesten verbreitete Art und Weise, die Speicherung von Daten zu organisieren, ist das relationale Datenmodell. Datenbankmanagementsysteme zur Verwaltung von relational organisierten Datenbanken werden relationale Datenbankmanagementsysteme (RDBMS) genannt.

Aufbau relationaler Datenbanken

Damit die in einer Datenbank gespeicherte Information durch Informationssysteme verarbeitet werden kann, müssen die einzelnen Datensätze in einer vorgegebenen Struktur gespeichert werden. Zwar können die wichtigsten Daten zur Kundenverwaltung eines Onlineshops auch als Text zum Beispiel in einem Word-Dokument gespeichert werden:

"Herr Emil Schulze hat die Email-Adresse e.schulze@gmail.com und wird unter der Kundennummer 00200 geführt."

"Frau Silke Bauer mit der Kundennummer 00300 ist per Email unter der Adresse silke334@byom.de zu erreichen."

Allerdings kann das Lesen oder Ändern in dieser Form gespeicherter Kundendaten nicht automatisch oder durch IT-Systeme erfolgen. Daher werden die zu speichernden Datensätze auf die wichtigsten Informationen reduziert und in eine für alle Datensätze einheitliche Struktur gebracht. Die wichtigsten Eigenschaften der gerade beschriebenen Kunden sind Kundennummer, Anrede, Name, Vorname und Email-Adresse. Eine Möglichkeit, die Kundendatensätze zu strukturieren, ist die Darstellung in einer Tabelle, deren Spalten jeweils eine bestimmte Eigenschaft des Datensatzes speichern und deren Zeilen jeweils genau einen Datensatz enthalten.
Abbildung: Beispielrelation Kunde

Alle in obiger Abbildung enthaltenen Datensätze haben die gleichen Attribute und damit auch die gleiche Struktur. Ein Datensatz wird auch Objekt genannt. Eine Menge von Objekten mit der gleichen Struktur - also denselben Attributen - wird in einer Relation gespeichert. Die in der Abbildung gezeigte Relation KUNDE hat die Struktur (KUNDENNR, ANREDE, NAME, VORNAME, EMAIL). Eine Relation wiederum wird in einer nach der Relation benannten Tabelle abgelegt.

Objekte in Relationen müssen jederzeit eindeutig identifiziert werden können, daher dürfen in einer Relation niemals zwei Datensätze die exakt gleichen Werte in allen Attributen haben. Die geforderte Eindeutigkeit ist aus fachlicher Sicht nicht immer möglich. Daher wird in einer Relation zusätzlich zu den fachlichen Attributen häufig auch ein technisches Attribut gespeichert, mit dem ein Datensatz eindeutig identifiziert werden kann. So ein Attribut heißt Identifizierer (engl.: identifier, ID-Attribut, kurz: ID). In relationalen Datenbanken werden die Identifizierer als Primärschlüssel (engl.: primary key) bezeichnet.

Tipp
Fachliche IDs und technische IDs immer trennen. Niemals fachliche IDs als technische IDs oder technische IDs als fachliche IDs einsetzen! Zwar gibt es auch fachliche Identifizierer, im Beispiel oben die Kundennummer. Dennoch sollte eine Datenbankstruktur die technische Identifizierbarkeit der Datensätze immer durch eine eigene ID sicherstellen.

Die folgende Tabelle enthält die oben bereits eingeführte Relation KUNDE, die um das Attribut KUNDEID erweitert wurde. Dieses Attribut dient in dieser Relation als Primärschlüssel.

Kundendaten eines Onlineshops
KUNDE
KUNDEID KUNDENNR ANREDE NAME VORNAME EMAIL
094904 00100 Herr Schwarz David david.schwarz@hkf-online.de
098483 00200 Herr Schulze Emil e.schulze@gmail.com
112536 00300 Frau Bauer Silke silke334@byom.de
234938 00400 Frau Meier Frauke lieschen234@yahoo.com
293933 00500 Herr Ernst Reiner ernst-reiner@tkom.org
338457 00600 Frau Weber Maria weberchen@trash-mail.com

In nahezu allen praktischen Anwendungsfällen reicht eine einzelne Relation (Tabelle) nicht aus, um alle benötigten Informationen zu einem fachlichen Objekt zu speichern. So müssen für den Betrieb eines Onlineshops neben den wichtigsten Kundendaten zu jedem Kunden auch dessen Meldeadresse sowie verschiedene Liefer- und Rechnungsadressen geseichert werden können. Dazu soll in diesem Fall eine Relation ANSCHRIFT mit den Attributen (ADRESSEID, STRASSE, HAUSNUMMER, PLZ, ORT, LAND) verwendet werden, die in der folgenden Tabelle dargestellt ist.

Tabelle mit Relation ADRESSE
ADRESSE
ADRESSEID STRASSE HAUSNUMMER PLZ ORT LAND
2 Berliner Str. 55b 60311 Frankfurt Deutschland
3 Marienstr. 25 10117 Berlin Deutschland

Mit den beiden Relationen KUNDE und ADRESSE ist es nun möglich Kundendaten und Adressdaten strukturiert zu speichern. Allerdings fehlt noch die Zuordnung von Objekten der Relation KUNDE zu Objekten der Relation ADRESSE. Diese Zuordnung erfolgt über sogenannte Beziehungen. Jede Beziehung hat einen eindeutigen Namen. Es können die folgenden Typen von Beziehungen anhand ihrer Kardinalität (auch: Stelligkeit, Multiplizität) unterschieden werden: 1:1-Beziehung, 1:N-Beziehung sowie N:M-Beziehung.

1:1-Beziehung

Nachfolgende Abbildung veranschaulicht exemplarisch die 1:1-Beziehung "Hauptwohnsitz". Diese Beziehung verbindet einen Datensatz der Relation KUNDE mit genau einem Datensatz der Relation ADRESSE.
Abbildung: Illustration des Beziehungstypen 1:1

Die folgende Abbildung zeigt eine um das Attribut ADRESSEID erweiterte Relation KUNDE. Mit dem im Attribut ADRESSEID gespeicherten Wert muss sich ein Datensatz ADRESSE eindeutig identifizieren lassen. Daher wird im Datenmodell gefordert, dass als Wert von ADRESSEID nur ein bereits existierender Identifizierer (Primärschlüssel) der Relation ADRESSE gespeichert wird. Der Identifizierer von ADRESSE ist das Attribut ADRESSEID. Daher müssen die konkreten Werte von ADRESSEID in den Objekten vom Typ KUNDE ein Wert aus der Spalte ADRESSEID der Relation ADRESSE sein. Der Primärschlüssel von ADRESSE wird damit auch in der "fremden" Relation KUNDE verwendet. Diese Art der Verwendung von Primärschlüsseln einer anderen Tabelle wird Fremdschlüssel genannt. Ein Fremdschlüssel referenziert den Primärschlüssel einer anderen Tabelle, die mit der aktuellen Tabelle in Beziehung steht.
Abbildung: Tabelle KUNDE mit 1:1-Beziehung zur Relation ADRESSE

1:N-Beziehung

In nachstehender Abbildung ist die 1:N-Beziehung "Lieferadresse" dargestellt, mit der genau ein Objekt der Relation KUNDE mit mehreren Objekten der Relation ADRESSE verbunden wird.
Abbildung: Illustration des Beziehungstypen 1:N

Die folgende Abbildung stellt die erweiterte Relation ADRESSE dar, die um ein Attribut KUNDEID ergänzt wurde. In diesem Attribut werden Werte der Spalte KUNDEID der Tabelle KUNDE gespeichert. Das Attribut KUNDEID ist der Primärschlüssel der Relation KUNDE. Damit können über dieses Attribut in der Tabelle ADRESSE eindeutig die tatsächlichen Kunden zu den Datensätzen aus ADRESSE identifiziert werden.
Abbildung: Tabelle ADRESSE mit 1:N-Beziehung zur Relation KUNDE

N:M-Beziehung

Nachfolgende Abbildung veranschaulicht die N:M-Beziehung "Rechnungsadresse". Diese Beziehung stellt eine Verbindung von M Objekten der Relation KUNDE mit N Objekten der Relation ADRESSE her.
Abbildung: Illustration des Beziehungstypen N:M

Um N:M-Beziehungen im relationalen Datenmodell abzubilden, werden sogenannte Beziehungstabellen benötigt. Die folgende Abbildung zeigt exemplarisch eine Beziehungstabelle um die N:M-Beziehung zwischen Datensätzen der Relation KUNDE und Datensätzen der Relation ADRESSE zu speichern. Eine Beziehungstabelle hat als Attribute die Identifizierer der Relationen, die sie in Beziehung setzen soll. Im konkreten Beispiel also ADRESSEID der Relation ADRESSE sowie KUNDEID der Relation KUNDE. Datensätze dieser Beziehungstabelle bestehen nur aus Fremdschlüsseln.
Abbildung: Beziehungstabellen für N:M-Beziehungen

Der Primärschlüssel der Tabelle RECHNUNGSADRESSE ergibt sich aus der Kombination von ADRESSEID und KUNDEID. Damit handelt es sich um einen zusammengesetzten Primärschlüssel.

Eintragen von Datensätzen in relationale Datenbanken

Ganz allgemein erfolgt das Eintragen von Datensätzen in relationale Datenbanken nach folgendem Schema:

  1. Auswahl der gesuchten Relationen (Tabellen), in denen die gewünschte Information eingetragen werden soll
  2. Einfügen des Objektes (Datensatz) mit den entsprechenden Attributwerten
  3. dabei darauf achten, dass die Primärschlüssel eindeutig gesetzt werden und keine Fremdschlüssel ohne dazugehörigen Primärschlüssel entstehen

Beispiel
Folgender Sachverhalt soll in dem oben bereits vorgestellten relationalen Datenschema gespeichert werden:

"Frau Lisa Wagner mit der Email-Adresse lisa-wagner@posteo.de soll unter der Kundennummer 00700 gespeichert werden. Sie wohnt in Hamburg (20095) in der Domstr. 18. Sie hat bis jetzt fast alle Sendungen und Rechnungen zu sich nach Hause geschickt bekommen. Die letzte Bestellung inkl. Rechnung wurde allerdings nach 01189 Dresden (Deutschland), in die Stuttgarter Str. 73 versendet."

Zum Eintragen dieser Daten müssen drei Tabellen geändert werden: KUNDE, ADRESSE und RECHNUNGSADRESSE. Diese Tabellen sind unten dargestellt. Dort werden jeweils an das Ende der Tabelle die neuen Objekte hinzugefügt: ein Objekt in der Relation KUNDE, zwei Objekte in der Relation ADRESSE sowie zwei Objekte in der Relation RECHNUNGSADRESSE. Die in dem Beispiel eingefügten Werte sind fett markiert. Dabei sind neben der Eindeutigkeit aller Primärschlüssel auch folgende Fremdschlüsselbeziehungen zu beachten:

KUNDE
KUNDEID KUNDENNR ANREDE NAME VORNAME EMAIL ADRESSEID
094904 00100 Herr Schwarz David david.schwarz@hkf-online.de 2
112536 00300 Frau Bauer Silke silke334@byom.de 3
348902 00700 Frau Wagner Lisa lisa-wagner@posteo.de 7

ADRESSE
ADRESSEID STRASSE HAUSNUMMER PLZ ORT LAND KUNDEID
2 Berliner Str. 55b 60311 Frankfurt Deutschland 094904
3 Marienstr. 25 10117 Berlin Deutschland 094904
4 Alte Str. 49 53123 Bonn Deutschland 112536
5 Salzburger Straße 27 93047 Regensburg Deutschland 112536
6 Bahnhofstr. 5 69115 Heidelberg Deutschland 112536
7 Domstr. 18 20095 Hamburg Deutschland 348902
8 Stuttgarter Straße 73 01189 Dresden Deutschland 348902

RECHNUNGSADRESSE
ADRESSEID KUNDEID
2 094904
2 112536
4 094904
7 348902
8 348902