Datenbanken

Wichtige Datenbanksysteme im Überblick

Wichtige Datenbanksysteme im Überblick

Datenbanken

Wichtige Datenbanksysteme im Überblick


In den vorangegangenen Teilen haben wir recht umfassend in die Grundlagen der Datenbanken eingeführt. Neben dem Aufbau eines relationalen Datenbanksystems haben wir uns mit der Abfragesprache SQL beschäftigt. Und jetzt? Wir stellen eine Auswahl einiger typischer Vertreter aus der Datenbankszene vor und blicken auf deren wesentliche Eigenschaften. Und als Zusatz erhalten Sie einen Blick auf die nichtrelationalen Datenbanksysteme, also auf die so genannten NoSQL-Datenbanken.

Dieser Abschnitt gibt einen Überblick über einige der am Markt verfügbaren Datenbank-Management-Systeme (DBMS) und die zugrunde liegenden Techniken, die von den Systemen verwendet werden. Es werden sowohl relationale (SQL-basierte) als auch nichtrelationale (NoSQL) DBMS vorgestellt. Im konkreten Einzelfall sind die Einsatzmöglichkeiten abzuwägen. Bei den SQL-Datenbanken benötigt man ein Schema, das den Verwendungszweck der Datenbank im Betrieb beschreibt. Ein Beispiel: Eine Personaldatenbank benötigt eine Tabelle Person mit den entsprechenden Spalten, welche die Eigenschaften einer Person näher kennzeichnen. Bei NoSQL-Datenbanken ist das in der Regel nicht der Fall. Sie arbeiten weitgehend ohne Schema und meist dokumentenbasiert, d. h. alle Informationen werden in Dokumenten gespeichert. Voraussetzung ist eine komplexere Logik in der Anwendung, um mit dieser Art der Datenverwaltung umgehen zu können.

Relationale Datenbanken

Relationale Datenbanken basieren auf einem Schema. Ein Schema ist eine abstrakte Abbildung der Beziehungen (Relationen) zwischen den Daten, bzw. eine Art Modell. Es gibt eine Vielzahl von relationalen DBMS, die sich durch ihre zur Verfügung gestellten Funktionen unterscheiden. Mögliche Eigenschaften eines relationalen DBMS sind:

  • Unterstützung von Transaktionen: Die Datenbank ist so konzipiert, dass es zu allen Zeitpunkten einen konsistenten Datenbestand gibt. Hierzu braucht es ein mächtiges Konzept um Anfragen, Veränderungen und Löschvorgänge zu gruppieren und gemeinschaftlich zu verarbeiten. Eine Transaktion ist stets durch einen Anfang und ein Ende gekennzeichnet. Alle Datenbankoperationen einer Transaktion werden gemeinsam ausgeführt (COMMIT) oder zurückgenommen (ROLLBACK).
  • Native Unterstützung von Cluster: Das Ziel ist es, eine Lastverteilung auf mehrere Rechner zu erreichen, um eine große Zahl von Datenbankoperationen bearbeiten zu können.
  • Unterstützung von Sequenzen: Eine Sequenz ist ein Datenbankobjekt, mit dem eine eindeutige und fortlaufende Nummerierung (bei künstlichen Primärschlüsseln) erzeugt werden kann.
  • Unterstützung des Embedded Mode: Ein weiteres Feature ist die Möglichkeit, die Datenbank innerhalb einer Anwendung zu starten und mittels API-Zugriffen auf die Datenbank zuzugreifen. Dieser so genannte Embedded Mode ist nützlich für datenintensive Applikationen. Die Datenbank ist unmittelbar an das Programm gebunden und wird mit ihm gemeinsam gestartet bzw. beendet. Dieser Modus ist auf kleinere Datenbestände begrenzt.

Mit diesem Wissen sehen wir uns in den folgenden Textabschnitten einige relationale DBMS an. Weitere Informationen enthält Tabelle 4.1.

Die Zugriffsmöglichkeiten auf eine Datenbank (Modi)

Es existieren verschiedene Zugriffsmöglichkeiten, um auf die Daten innerhalb der Datenbank zuzugreifen:

  • Embedded Mode: Die Datenbank dient als strukturierter, schneller und zuverlässiger Speicher für Daten, die zur Laufzeit der Anwendung entstehen und wo schnelle Zugriffe gefordert werden. Dieser Modus findet vor allem in Applikationen Anwendung, die sehr große Mengen an Daten verwalten und in denen schnelle Zugriffe gefordert sind, zum Beispiel bei einer Bildverwaltungssoftware.
  • Bei einer Remote-Verbindung handelt es sich um eine klassische Client/Server-Kommunikation. Die Kommunikation erfolgt zum Bespiel über die ODBC-Schnittstelle. Hierzu läuft das DBMS in einem eigenen Prozess und stellt seine Dienstleistungen den anderen Anwendungen zur Verfügung.
  • Mixed Mode: Die Datenbank wird als embedded DBMS gestartet. In diesem Modus ist es jedoch möglich, von weiteren Anwendungen auf die Daten innerhalb der Datenbank zuzugreifen.

MySQL

PostgreSQL

H2

Derby

Oracle DB

API

Java

C, Delphi, C++, Java/JDBC, Tcl, PHP, Perl, Python, Ruby, .NET

Java

Java nativ, C, C++ über ODBC

Java

Geschrieben in

C, C++

C

Java

Java

C,C++

Lizenz

Duales Lizenzsystem (Proprietär und GPL)

BSD-Lizenz

Duales Lizenz-system (Eclipse- und Mozilla Public License)

Apache Lizenz 2.0

Proprietär

Natives Clustering

ja

ja

ja

ja

Ja

Fulltext Search

ja

ja

ja

nein

Ja

Row Level Locking

ja

ja

ja

ja

Ja

Multi Version Concurrency

ja

ja

ja

nein

ja

Role Based Security

ja

ja

ja

ja

ja

Custom Aggregate Functions

ja

ja

Ja

nein

Ja

Sequences

nein

ja

ja

nein

ja

Transaktionen

CLOB/BLOB Kompression

nein

nein

ja

nein

nein

Tabelle 4.1: Überblick über einige relationale DBMS

MySQL

Im Jahre 1994 wurde MySQL zunächst als Nachimplementierung (Clone) für mSQL entwickelt. Sie wurde damals dazu verwendet, Datenbanken des maskengesteuerten Datenbanksystems UNIREG in Webanwendungen verfügbar zu machen. MySQL war daher sowohl zu mSQL als auch UNIREG kompatibel. Die Software wurde im Jahr 1997 unter der Versionsnummer 3.21 veröffentlicht. Diese Versionsnummer sollte signalisieren, dass sie auf einem schon weiterentwickelten Kern basiert. Sie war von Anfang an für große Datenmengen und sehr gute Performance ausgelegt. Kritisch waren gelegentlich die Stabilität und die Verfügbarkeit. Heute ist MySQL eines der bekanntesten Datenbanksysteme, die als Open-Source entwickelt werden. Das System genießt eine sehr weite Verbreitung bei Webanwendungen. Ein Vorteil ist die sehr gute Integration in verschiedensten...