Unterschiede der Datenbankmodelle relationale, objektorientierte und dokumentenbasierte Datenbank

Überblick

  • Ein Datenbanksystem (kurz: DBS) ist ein System zur elektronischen Datenverwaltung. Die Hauptaufgabe eines DBS ist die dauerhafte, widerspruchsfreie und effiziente Speicherung grosser Datenmengen.
  • Ein DBS besteht aus zwei Teilen:
    – Der Verwaltungssoftware, dem Datenbankmanagementsystem (kurz: DBMS) und
    – den eigentlichen Daten, der Datenbank (kurz: DB)
  • Zur Verwaltung und Abfrage der in der DB gehaltenen Daten bietet das DBS eine Datenbanksprache (wie z.B. SQL) an.
  • Datenbanksysteme existieren in verschiedenen Formen:
    Die Art und Weise der Datenspeicherung und -Verwaltung wird über das Datenbankmodell festgelegt.
  • Die Unterschiede der verschiedenen Datenbankmodelle zueinander bestehen für den Anwender im wesentlichen durch die Art und Weise, wie der Datenbestand gespeichert und auf ihn zugegriffen wird.

Datenbankmodelle

  • relationale Datenbank:
    Hier werden die Daten in Tabellen gespeichert. Die Tabellen stehen zueinander in Beziehung, in einer Relation. Die Relation wird über sogenannte Fremdschlüssel (foreign Key) hergestellt.
    Ein einfaches Beispiel soll das verdeutlichen (der foreign Key ist hier die Autoren-Id):
Authors
id firstname lastname
1 John Ronald Reuel Tolkien
2 Douglas Adams
Books
id author_id title
1 1 Herr der Ringe
2 1 Der Hobbit
3 2 Per Anhalter durch die Galaxis
4 2 Das Restaurant am Rande des Universums
  • Über die Abfrage der an einer Relation beteiligten Tabellen können dann die gewünschten Informationen ermittelt werden.
    Etwa ‘Zeige mir alle Bücher des Autoren Tolkien’ bewirkt im DBMS (vereinfacht):
  1. Den Datensatz aus der Tabelle ‘Authors‘ mit dem Nachnamen ‘Tolkien’ ermitteln
  2. Dazu alle Datensätze aus der Tabelle ‘Books‘, die der author_idvon ‘Tolkien’
    (hier: 1) zugeordnet sind
Abfrageergebnis
firstname lastname title
John Ronald Reuel Tolkien Herr der Ringe
John Ronald Reuel Tolkien Der Hobbit

Prominente Vertreter des relationalen Datenbankmodells:
Oracle, MySQL

Nachteile des relationalen Datenbankmodells:
1. Die Datenbestände sind segmentiert und jedes Segment kann wieder weitere Segmente in sich tragen (jedes Buch kann in mehreren Verlagen verlegt worden sein, von denen jeder mehrere Niederlassungen hat, …). Mit Erhöhung der Anzahl der abgefragten Segmente verringert sich die Performanz der Abfrageverarbeitung.
2. Für die Manipulation der Abfrageergebnisse ist in den allermeisten Fällen eine Schnittstelle zu einer weiteren Programmiersprache notwendig, da die ggf. in der relationalen Datenbank zur Verfügung stehende dafür wenig Möglichkeiten bietet.

  • objektorientierte Datenbank:
    Zuvor: Um das DBMS in diesem Fall als Objektdatenbankmanagementsystem zu kennzeichnen, wird ihm ein ‘O’ vorangestellt (kurz: ODBMS).
    Die Struktur der Datenablage folgt den Richtlinien der Objektorientierung. Das heisst, die zu einem Objekt gehörenden Daten werden im Objekt selbst abgelegt. Die interne Organisation und Verwaltung der Daten wird komplett vom ODBMS übernommen. Für die Abfrage und Manipulation der Daten stellt das ODBMS geeignete Objektsprachen bereit.

Ein Autorenobjekt mit dem Namen oAuthor z.B. könnte etwa folgenden (schematischen) Aufbau haben:

[firstname]
‘Douglas’
[lastname]
‘Adams’

[Books]
[1]
[title]
‘Per Anhalter durch die Galaxis’
[2]
[title]
‘Das Restaurant am Rande des Universums’

Im Objekt oAuthor sind Datenzugriffsmethoden wie etwa z.B. getNamegetFirstBookTitle oder getBooks oder hinterlegt. Die Benutzung der Methoden (in der betr. Objektsprache) lieferten dann in unserem Beispiel:

oAuthor->getName() liefert : ‘Douglas Adams’
oAuthor->getFirstBookTitle() liefert : ‘Per Anhalter durch die Galaxis’
oAuthor->getBooks() liefert :
[1]
[title]
‘Per Anhalter durch die Galaxis’
[2]
[title]
‘Das Restaurant am Rande des Universums’

Prominente Vertreter des objektorientierten Datenbankmodells:
db4objects, Versant

Nachteile der objektorientierten Datenbank

Sie sind aktuell nur sehr gering verbreitet. Damit einher geht eine geringe Unterstüt-zung verbreiteter Schnittstellen und Tools (z.B. zur Analyse des vorgehaltenen Datenbestandes).
Durch die teilweise hohe Komplexität eines einzelnen Objektes kann es bei Manipu-lationsoperationen (in unserem Bsp. etwa: Autorennamen ändern, einem Autoren weitere Bücher zuweisen) zu massiven Performanceproblemen kommen.

  • dokumentenbasierte Datenbank:
    Wesentlich bei diesem Datenbankmodell ist die Tatsache, dass es keine Relationen kennt. Jeder Eintrag in der DBwird in einem eigenen Dokument gespeichert, das über eine eindeutige ID in der DB identifiziert wird.
    Dokumentenbasierte Datenbanken werden am häufigsten in Web-Applikationen eingesetzt. Die etabliertesten Datenaustauschformate in Web-Applikationen sind XML und Json. Sie haben sich dadurch auch in dokumentenbasierten Datenbanken als meistgenutzte Formate durchgesetzt.
    Allen Formaten jedoch gemeinsam ist, daß die Informationen in einem Dokument in Key/Value-Paaren abgelegt werden (Bsp.: “name“ : “J.R.R. Tolkien“).
    Anders als über eine Tabellenstruktur in der relationalen Datenbank oder einer festgelegten Struktur für einen bestimmten Objekttyp in der objektorientierten Datenbank existiert hier keine vorgegebene Struktur für das jeweilige Dokument. Jedes Dokument hält seine eigene Struktur vor. Für den Anwender ergibt sich hieraus eine absolute Formfreiheit hinsichtlich der Wahl der Struktur des jeweiligen Eintrags in der DB.

So können z.B. zwei Autoren-Dokumente unterschiedliche Strukturen aufweisen (Json-Format):

{
name“ : “J.R.R. Tolkien“,
born_at“ : “1892-01-03“,
died_at“ : “1973-09-02“,
famous_for“ : [“Herr der Ringe“, “Der Hobbit“, “Pfeife rauchen“]
}

{
firstname“ : “Douglas“,
lastname“ : “Adams“,
Books“ : [“Per Anhalter durch die Galaxis“, “Das Restaurant am Ende des Universums“]
}

Nachteile der dokumentenbasierten Datenbank

Es hat sich gezeigt, daß dieses Datenbankmodell ungeeignet ist für komplexe Datenstrukturen mit hoher Beziehungstiefe.
Sind Operationen mit den in der DB enthaltenen Dokumenten zu programmieren, müssen diese individuell gestaltet werden, da zunächst keine festgelegte Struktur vorliegt. Zur Verringerung des Programmieraufwands wird jedoch in den meisten Fällen eine übergeordnete Strukturfestlegung vorgenommen und der Vorteil der Formfreiheit gilt nur eingeschränkt.
Viele in der relationalen oder objektorientierten Datenbank zur Verfügung stehende Funktionalitäten, wie z.B. vor Datenmanipulationen vorgenommene Wertprüfungen, müssen individuell programmiert werden.

Quellen
http://de.wikipedia.org/wiki/Datenbanksystem
http://searchsqlserver.techtarget.com/definition/relational-database
http://odbms.org/Introduction
http://wikis.gm.fh-koeln.de/wiki_db/Datenbanken/DokumentenorientierteDatenbank

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.