Relationale Datenbank
Eine Relationale Datenbank ist eine Datenbank, die auf dem Relationalen Datenbankmodell basiert, das von Edgar F. Codd 1970 erstmals vorgeschlagen wurde; darin ist Relation ein im streng mathematischen Sinn wohldefinierter Begriff (terminus technicus), der im wesentlichen ein mathematisches Modell für eine Tabelle beschreibt (siehe dazu Relation (Datenbanktechnik)). Die Daten werden dabei in Form von zweidimensionalen Tabellen verwaltet, die über Schlüssel (Primärschlüssel, Fremdschlüssel) miteinander verknüpft werden können. Die meisten in der Praxis eingesetzten Datenbanksysteme (relationale Datenbankmanagementsysteme, kurz RDBMS) sind für relationale Datenbanken konzipiert. Im allgemeinen Sprachgebrauch ist deshalb oft eine relationale Datenbank bzw. ein relationales Datenbanksystem gemeint, wenn von Datenbanken die Rede ist.
Für relationale Datenbanken gibt es mit SQL eine verbreitete und teilweise standardisierte Anfragesprache.
Zur Modellierung von relationalen Datenbanken wird meist das Entity-Relationship-Modell oder Varianten davon verwendet. Es dient zum Entwurf eines konzeptuellen Schemas, welches unter Verwendung eines DBMS implementiert werden kann. Dieser Schritt wird als logischer Entwurf oder auch Datenmodellabbildung bezeichnet und hat als Ergebnis ein Datenbankschema im Implementierungssdatenmodell des DBMS.
Früher wurden in der betrieblichen Datenverarbeitung hierarchische Datenbanken verwendet. Sie kommen in Spezialfällen auch heute noch zum Einsatz.
Zum Teil werden die relationalen Datenbanken durch objektorientierte Datenbanken abgelöst. Relationale Datenbanken sind aber derzeit immer noch die am meisten verbreitete Datenbankform und es ist nicht klar, ob sich die objektorientierten Datenbanken durchsetzen werden. Die großen Datenbankhersteller fügen ihren relationalen Datenbanken objektorientierte Eigenschaften hinzu.
Theorie der Relationalen Datenbanken
Die Grundlagen der Theorie der relationalen Datenbank wurden von Edgar F. Codd in den 1960ern und 1970ern gelegt und in seiner Arbeit "A Relational Model of Data for Large Shared Data Banks" (erschienen in Communications of the ACM, Vol. 13, No. 6, June 1970, S. 377-387) beschrieben. Theoretisch basieren alle Operationen auf der Relationalen Algebra.
Die erste kommerziell erfolgreiche relationale Datenbank wurde jedoch erst Ende der 1970er von der Firma Oracle auf den Markt gebracht.
1986 hat Codd in der Computer World einen zweiteilligen Artikel mit 12 strengen Anforderungen veröffentlicht, welche ein RDBMS aus seiner Sicht erfüllen muss. Dabei sind die Regeln so streng, dass kein zur Zeit verfügbares Datenbanksystem alle erfüllt. Besondere Probleme bereiten die Regeln 6, 9, 10, 11 und 12. Da es aktuell (Februar 2004) noch keine eindeutigen, allgemeinverständliche Übersetzungen gibt, sind hier die Originalüberschriften auf Englisch aufgeführt:
- The Information Rule
- Guaranteed Access Rule
- Systematic Treatment of Null Values
- Dynamic On-line Catalog Based on the Relational Model
- Comprehensive Data Sublanguage Rule
- View Update Rule
- High-level Insert, Update and Delete
- Physical Data Independence
- Logical Data Independence
- Integrity Independence
- Distribution Independence
- Nonsubversion Rule
Zusätzlich hat Codd noch die Regel 0 definiert, wonach jeder Zugriff nur durch relationale Fähigkeiten stattfinden darf.
Die Grundregeln für eine relationale Datenbank (nach Codd) lassen sich wie folgt beschreiben:
- Jede Relation ist eine zweidimensionale Tabelle und entspricht einem Entity-Typ
- Jede Zeile dieser Tabelle wird Tupel genannt und beschreibt ein konkretes Entity des Entity-Typs, den die Tabelle darstellt
- Jede Spalte der Tabelle entspricht einem Attribut des Entity-Typs. Die konkreten Entities werden somit durch die entsprechenden Attributwerte beschrieben.
- Der Grad einer Relation ist die Anzahl der Attribute
- Existiert für ein Attribut eine begrenzte Anzahl von Attributwerten, so wird die Zusammenfassung aller Attributwerte für dieses Attribut Domäne genannt
- Die Existenz zweier identischer Zeilen ist ungültig
- Es ist nicht relevant, in welcher Reihenfolge Zeilen bzw. Spalten der Tabelle angeordnet sind
- Attribute sind atomar
Ende 1990 hat Codd in seinem Buch The Relational Model for Database Management - Version 2, Addison-Wesley 1990 die bisherigen 12 Regeln auf 333 Regeln differenziert, die allgemeine Akzeptanz gefunden haben.
Schwachpunkte der relationalen Modellierung
- Segmentierung
In der relationalen Darstellung erfolgt die Abspeicherung eines Objektes segmentiert auf vielen unterschiedlichen Relationen. Das Objekt als solches muss somit durch das DBMS mittels zahlreichen Joins aus den einzelnen Relationen erstellt werden.
- künstliche Schlüsselattribute
Zur eindeutigen Identifizierung von Tupeln müssen in manchen Fällen künstliche Schlüssel eingesetzt werden. Diese Schlüsselattribute müssen relationsweit eindeutig sein.
- externe Programmierschnittstelle
Da in vielen relationalen Datenbanken nur Datenmanipulationssprachen unzureichender Mächtigkeit vorhanden sind, folgt daraus, dass Schnittstellen notwendig werden, um mächtigere Programmiersprachen einzubinden zu können. Es gibt jedoch auch relationale Datenbanken mit mächtigen Programmiersprachen wie PL/SQL in Oracle. Die Verbindung von Datenbanksprachen mit externen, schon vorhanden Programmiersprachen führt zu einer wenig anwenderfreundlichen Handhabung. Es wird so z. B. SQL in C++-Programmen eingebunden. Beide Sprachen verfolgen jedoch ein unterschiedliches Verarbeitungsparadigma: SQL arbeitet mengenorientiert und C++ satzorientiert.
- fehlendes Verhalten
In der relationalen Datenbank kann das anwendungstypische Verhalten eines Objektes nicht beschrieben werden. Diese Beschreibung kann somit erst außerhalb der Datenbank in einer Anwendungssoftware erfolgen.
Siehe auch
- Datenbankmanagementsystem (DBMS)
- Fremdschlüssel
- Hierarchisches Datenbankmodell
- Netzwerkdatenbankmodell
- Normalisierung (Datenbank)
- Primärschlüssel
- Relationale Algebra
- Datenbankoperator
Literatur
- Thomas Connolly, Carolyn Begg, Anne Strachan: Datenbanksysteme. Eine praktische Anleitung zu Design, Implementierung und Management. Addison-Wesley, München 2002, ISBN 3-8273-2013-5
- Tobias Eggendorfer: Datenbanksysteme für Wirtschaftsinformatiker. Books on Demand, Norderstedt 2005, ISBN 3-8334-2493-1
- Ramez Elmasri, Shamkant B. Navathe: Fundamentals of Database Systems. Addison-Wesley, München 2000, ISBN 0-201-54263-3
- Alfons Kemper, André Eickler: Datenbanksysteme. Eine Einführung. Oldenbourg, München 2004, ISBN 3-486-27392-2
- Peter Stahlknecht, Ulrich Hasenkamp: Einführung in die Wirtschaftsinformatik. Springer, Berlin 2002, ISBN 3-540-41986-1