MySQL, PostgreSQL, MaxDB und Co.

Open-Source-Datenbanken für den professionellen Einsatz

17.12.2004 von Klaus Manhart
Kostenlose Open-Source-Datenbanken werden im professionellen Bereich immer beliebter. Sie bieten einen ähnlichen Funktionsumfang wie kommerzielle Systeme - und das bei erheblicher Kostenersparnis und höherer Flexibilität.

Bis vor kurzem war die Datenbankwelt in Unternehmensumgebungen klar und eindeutig geordnet: Im Highend- und Midrange-Bereich dominierten IBM und Oracle, im unteren Segment sammelte Microsoft den Rest ein.

Doch die Zeiten haben sich geändert. Neuerdings setzen sich bei immer mehr Firmen in aller Welt Open-Source-Datenbanken durch. Ausschlaggebend dafür sind mehrere Gründe.

So gelten Datenbanken mit offenem Quellcode erstens als zuverlässiger im Vergleich zu den kommerziellen Systemen, da die Kontroll- und Überprüfungsmechanismen stärker ausgeprägt sind. Entwickler von Open-Source-Software haben ein Selbstverständnis, das eher der wissenschaftlichen Arbeitsweise an Universitäten entspricht: Sie tauschen sich untereinander aus und überprüfen gegenseitig ihre Ergebnisse.

Dadurch, dass der Quellcode offen ist, kann das Datenbanksystem zweitens überprüft, weiterentwickelt und an Unternehmensbedürfnisse angepasst werden. Bei kommerziellen Systemen besteht diese Möglichkeit für gewöhnlich nicht, da Microsoft und Co ihren Programmcode als streng gehütetes Geheimnis betrachten und diesen nur in maschinenlesbarem Binärcode ausliefern.

Schließlich ist auch das Kostenargument zu bedenken. Kein Nutzer von Open-Source-Datenbanken muss Lizenzgebühren bezahlen, wenn er diese einsetzen will. Die aktuelle wirtschaftliche Lage mit dem gestiegenen Kostendruck sowie Änderungen in den Lizenzbedingungen der etablierten Software-Hersteller zu Ungunsten der Kunden erleichtern dabei vielen Anwendern den Schritt in Richtung Open-Source.

Breite Akzeptanz

Das Marktforschungsunternehmen AMR Research kommt in einer aktuellen Studie zu dem Schluss, dass Open-Source-Datenbanken bis zum Jahr 2006 auf breite Akzeptanz stoßen werden. Kernprodukte in diesem Bereich sind der Studie zufolge die Datenbanksysteme MySQL, MaxDB (vormals SAP DB) und PostgreSQL. Traditionellen Datenbankanbietern dürfte es künftig deutlich schwerer fallen, Upgrades zu verkaufen und Neukunden zu akquirieren. Von den Unternehmen, die angaben, in den nächsten zwei Jahren neue Datenbanktechnik evaluieren zu wollen, haben mehr als 40 Prozent die Kosten als Motiv genannt. Herkömmliche Datenbanken kosten bis zu 40.000 US-Dollar pro Server-CPU, bei den quelloffenen Produkten liegt das Maximum bei 1500 US-Dollar.

Nach einhelliger Meinung der Analysten sind Open-Source-Datenbanken für kleine und mittelständische Unternehmen besonders attraktiv. Denn diese bieten annähernd den gleichen Funktions- und Leistungsumfang wie die kommerziellen "Rolls Royce" unter den Datenbanken - etwa IBM DB2 oder Oracle 9i -, dies aber bei erheblich reduzierten Kosten. Und das Kostenargument dürfte gerade bei klein- und mittelständischen Unternehmen schwerer wiegen als bei größeren Firmen. Hinzu kommt noch die Komplexität der Implementierung, Installation und Anpassung der technischen und Business-Prozesse. Im Vergleich dazu sind Open-Source-Datenbanken wie MySQL nicht nur kostengünstiger, sondern auch wesentlich einfacher zu installieren und besser an Unternehmensbedürfnisse anzupassen.

Relationale Datenbanken

In diesem Beitrag stellen wir die wichtigsten Open-Source-Datenbanken für den Einsatz im Unternehmensbereich vor: MySQL, PostgreSQL, Max DB (dem früheren SAP DB), Firebird und Ingres r3. Alle diese Datenbanken setzen unterschiedliche Schwerpunkte, die sich auf Grund ihrer historischen Entwicklung ergeben haben. Gemeinsam ist ihnen aber, dass sie alle auf der derzeit verbreitetsten Datenbanktechnologie beruhen, dem relationalen Datenbankmodell.

Relationale Datenbanksysteme traten nach der Markteinführung Anfang der 80er-Jahre einen wahren Siegeszug an. Der Erfolg gründete vor allem auf der Einfachheit des Modells. Die Systeme verwalten die Informationen in Tabellen, einem sehr intuitiven, leicht verständlichen Darstellungsmittel.

Mittels definierter Beziehungen (Relationen) werden die Tabellen verbunden, wodurch Daten aus verschiedenen Tabellen auf Nachfrage kombiniert werden können. Von dem relationalen Ansatz haben insbesondere kommerzielle Anwendungsgebiete profitiert, die große Mengen einfach strukturierter Daten verwalten, etwa die klassische Personalverwaltung oder die Buchhaltung.

Strukturierte Abfrage per SQL

Zur Definition der Datenstrukturen, zum Pflegen und zur Abfrage der Daten steht mit SQL (Structured Query Language) eine mächtige Sprache zur Verfügung. SQL wurde in den 70er-Jahren bei IBM entwickelt und erstmals 1986 mit SQL86 durch das American National Standards Institute (ANSI) standardisiert. Seitdem wird es stetig weiterentwickelt. So wurden bislang neben dem ursprünglichen Standard die ISO-ANSI-Standards SQL92 und SQL99 festgelegt - die Zahlen verweisen jeweils auf das Jahr der Standardisierung. Da die Umsetzung eines firmenunabhängigen Standards in die Datenbankprodukte immer etwas Zeit in Anspruch nimmt, ist der aktuelle Standard SQL99 nicht in jedem Datenbanksystem implementiert. Die meisten vermarkteten und im Einsatz befindlichen Open-Source-Datenbanken unterstützen SQL92.

Trotz dieser Normierung weicht jedes Datenbanksystem vom zu Grunde liegenden Standard mehr oder weniger ab. Dieses "mehr oder weniger" kann eine entscheidende Basis bei der Auswahl eines entsprechenden Systems darstellen. So bieten manche Datenbanksysteme über die Standard-SQL-Features hinaus - wie Tabellen anlegen, Datensätze einfügen, suchen und modifizieren - zusätzliche Möglichkeiten, wie etwa zur Gewährleistung sicherer Transaktionen oder zum automatisierten Arbeiten mit Tabellen. Welche Features die vorgestellten Open-Source-Datenbanken genau bieten, finden Sie in Tabellenform bei den einzelnen Produkten.

SQL-Features

Um nur ein paar Beispiele zu nennen: Mit dem SQL-Feature "Stored Procedures" haben Entwickler die Möglichkeit, Prozeduren in einer eigenen 3GL-Programmiersprache zu erstellen und in der Datenbank dauerhaft in kompilierter und ausführbarer Form abzulegen. "Triggers" stellen als Spezialfall der Stored Procedures Prozeduren dar, deren Ausführung an das Eintreten bestimmter tabellengebundener Ereignisse gekoppelt ist. Solche Ereignisse können das Einfügen neuer Datensätze, das Löschen oder das Ändern bestehender Datensätze oder das Ändern bestimmter Spalten einer Tabelle sein.

"Subqueries" werden verwendet, wenn das Ergebnis einer Abfrage von dem Ergebnis einer anderen Query abhängt. Bei einer Datenbanksuche nach dem durchschnittlichen Umsatz des jüngsten Kunden hängt das Ergebnis der Abfrage (nämlich der durchschnittliche Umsatz) von einer weiteren Bedingung ab (nämlich der, dass es sich um den jüngsten Kunden handelt), die ihrerseits nur durch eine weitere Abfrage zu lösen ist. "Views" erzeugen eine bestimmte Sicht auf die Daten durch die Abfrage der Daten einer oder mehrerer Tabellen mit dem SELECT-Kommando. Die auf diese Art erzeugte Sicht auf die Daten lässt sich auch dauerhaft speichern.

Von besonderer Bedeutung ist die Frage sicherer Datenbank-Transaktionen. Datenbank-Transaktionen stehen immer vor dem Problem, eine Abfolge von einzelnen Operationen nicht zu trennen, sondern als ganzes, untrennbares Paket auszuführen. Es muss garantiert sein, dass nicht Teile des Gesamtpakets erfolgreich abgeschlossen werden und andere hingegen nicht. Am einfachsten bewerkstelligt man erfolgreiche Transaktion mit einem möglichst "grobkörnigen" Locking-Mechanismus, etwa auf Tabellenebene mit einem Table-Lock. Bei weniger grobkörnigen Locking-Mechanismen, wie Page-Locking oder Record-Locking, nimmt die Gefahr zu, dass bei Transaktionen mit mehreren Einzeltransaktionen Konflikte entstehen. In der Datenbanktechnik haben sich verschiedene Isolations-Level durchgesetzt, die allerdings nicht alle Datenbanken beherrschen: Read Uncommitted, Read Committed, Repeatable Read und Serializable.

Datenbankschnittstellen

Mit SQL ist es möglich, Anwendungsprogramme zum Zugriff auf relationale Datenbanken zu schreiben, die von dem konkreten Datenbankverwaltungssystem unabhängig sind. Es gibt aber in jedem Anwendungsprogramm einen Teil, in dem eine Verbindung zu der Datenbank hergestellt und betrieben werden muss. Genau dieser Teil ist nicht standardisiert. Dazu gibt es für jede Datenbank jeweils spezielle Anwendungsprogrammschnittstellen (APIs), über die der Programmierer Server-Funktionen ansprechen kann. Bei der Auswahl einer Datenbank ist immer zu bedenken, mit welchen Programmiersprachen diese Schnittstellen adressierbar sind.

Neben diesen proprietären Schnittstellen gibt es standardisierte Schnittstellen. Diese Schnittstellen dienen der einfachen Entwicklung von plattformneutralen Anwendungsprogrammen, die auf relationale Datenbanken zugreifen. Prominentester Vertreter ist ODBC. ODBC steht für "Open Database Connectivity" und ist ursprünglich eine Entwicklung von Microsoft. Sie wird heute als offene Schnittstelle von der X/Open Group weitergepflegt. Als Programmiertechnik wird hierbei ein vereinheitlichtes Call Level Interface (CLI) zu SQL-Datenbanken angewendet. Dabei lädt ein Treibermanager spezielle Datenbanktreiber, die einheitliche API-Aufrufe in Befehle übersetzen, die das Datenbanksystem verstehen und ausführen kann. Dieses CLI ist Basis für die ODBC-Schnittstelle.

Schnittstelle - JDBC

Eine neuere standardisierte Schnittstelle, die besonders von Java-Programmierern bevorzugt wird, ist JDBC (Java Database Connectivity). JDBC ist seit dem JDK 1.1 Bestandteil der Standarddistribution von Java und stellt wie ODBC einen einfachen Mechanismus bereit, um mit bestehenden Datenbanken zu kommunizieren. Ähnlich wie bei ODBC bietet JDBC ein generisches SQL-Datenbank-Interface, das von einem speziellen Datenbanksystem unabhängig ist.

Die Low-Level-API hält lediglich Basismethoden vor, die einen einheitlichen Datenbankzugriff, den Umgang mit rohen SQL-Statements und das Retrieval von Resultaten innerhalb von Java-Programmen ermöglicht. Sie basiert ebenfalls auf dem X/Open Call Level Interface, in dem definiert ist, wie Client/Server-Aktionen für Datenbanksysteme implementiert sind.

MySQL

MySQL ist mit über fünf Millionen Installationen das am weitesten verbreitete und bekannteste relationale Datenbanksystem der Open-Source-Welt. Der freie und schnelle Datenbank-Server zielt vor allem auf die Entwicklung und den Einsatz von Webseiten sowie Geschäftsanwendungen. Ursprünglich von dem Finnen Michael Widenius für seinen Arbeitgeber TCX entwickelt, wurde MySQL 1.0 1995 als Open-Source freigegeben und wird seitdem durch die schwedische Firma MySQL AB mit Widenius als CTO verwaltet. MySQL AB als kommerzielles Unternehmen stellt Service-Leistungen rund um die MySQL-Datenbank zur Verfügung.

Haupteinsatzgebiet von MySQL ist das Internet im Kontext mit dynamischen Webseiten; das Zusammenspiel zwischen Linux, Apache, MySQL und PHP wird allgemein hoch gelobt. Durch seine Schnelligkeit und Ressourcenfreundlichkeit mauserte sich MySQL zudem zu einem Quasi-Standard als Back-End für Websites und mittelgroße Projekte. Sein Ruf, schlank, schnell, stabil und leicht administrierbar zu sein, hat viele Webhoster wie Strato oder 1&1 veranlasst, ihren Kunden das Datenbanksystem standardmäßig anzubieten.

MySQL - Übersicht

Der Datenbank-Server MySQL bietet eine umfangreiche Reihe sehr nützlicher Features, die im Überblick hier nachzulesen sind. Die herausragenden Eigenschaften, die Geschwindigkeit und Bedienbarkeit, beruhen darauf, dass MySQL in der Vergangenheit auf Transaktionen verzichtete. Seit der Version 4 kann eine alternative Datenbank-Engine aber auch Transaktionen ausführen.

Die derzeit aktuelle und stabile Version ist MySQL 4.1. Sie wurde von MySQL AB als reif für den Unternehmenseinsatz zertifiziert. Im Vergleich zu den Vorversionen bietet die neue Version die Möglichkeit, logisch verschachtelte Abfragen (Subqueries) zu erzeugen, um Antwortzeiten zu reduzieren. Verbessert wurde auch die Client-Server-Kommunikation durch ein leistungsfähigeres Protokoll und eine Datenverschlüsselung per OpenSSL. Ferner finden sich neue Installations- und Konfigurationswerkzeuge für Windows und Linux. Außerdem wurde die Server-Bibliothek dahin gehend getrimmt, dass sie einen geringeren Speicherbedarf für den Systemkern einnimmt und sich dadurch besser in andere Anwendungen integrieren lässt. Bei den Spracherweiterungen können Anwender nun auch die internationalen Unicode-Zeichensätze UTF8 und UCS2 verwenden. Es wird der Industriestandard "GIS Spatial Types" von MySQL unterstützt, der zum Speichern und Verwalten geografischer Daten dient. Weitere Informationen über neue Funktionen in MySQL 4.1 sind auf der Website erhältlich.

Neu ist ebenfalls der MySQL-Administrator. Das quelloffene Tool bietet eine grafische Benutzerführung, über die sich MySQL-Datenbank-Server einfach verwalten und überwachen lassen.

MySQL - Zukunft

Während MySQL 4.0 und 4.1 in zahlreichen professionellen Anwendungen bereits erfolgreich eingesetzt werden, ist dies bei der ebenfalls bereits vorliegenden Version 5.0 nicht der Fall. MySQL 5.0 hat derzeit Alpha-Status und ist bislang eher für Entwickler interessant. Die Version 5 ermöglicht erstmals Stored Procedures, die die Entwicklung umfangreicher Geschäftsanwendungen vereinfachen sollen. Bei Stored Procedures handelt es sich um strukturierte SQL-Befehle, die in kompilierter Form in der Datenbank abgelegt sind und auf die Anwendungen zugreifen können. MySQL orientiert sich dabei am Standard "SQL:2003" für Syntax, Datenstrukturen und Abfrageprozesse. Mit Stored Procedures und weiteren Verbesserungen in den Bereichen Portabilität, Migration, Internationalisierung sowie der allgemeinen Bedienbarkeit will MySQL seine Datenbank endgültig als Alternative zu kommerziellen Produkten etablieren. Das Final Release von Version 5 soll voraussichtlich im Frühjahr 2005 kommen.

MySQL-Varianten

Aktuell ist der Datenbank-Server MySQL in vier verschiedenen Varianten verfügbar:

MySQL Standard und Max stehen unter der GPL zur Verfügung und lassen sich unter Windows, Mac OS X, Linux und allen wichtigen Unix-Varianten wie Solaris, HP-UX, IMB AIX und SCO OpenUnix einsetzen. Auf der MySQL-Download-Seite finden sich alle Download-Quellen mit den verschiedenen Versionen, GUIs und APIs. Für Entwickler, die MySQL-Anwendungen kommerziell vertreiben wollen und die MySQL Pro und Classic einsetzen, stehen Nicht-GPL-Lizenzen zur Verfügung.

MySQL - Features

Datenbank

MySQL Standard

Aktuelle, stabile Version

4.1

URL

www.mysql.de

Lizenz

GPL

Unterstützte Betriebssysteme

Linux und andere Unix-Systeme, Windows NT, 2000, XP, Mac OS, OS/2

SQL-Funktionen

Beherrschte Transaktionen

Serializable, Repeatable Read, Read commited, Read uncommited

Stored Procedures

Nein, ab Version 5

Triggers

Nein

Subqueries

Ja

Views

Nein

Foreign Keys

Ja

Inner Joins

Ja

Left-Right Outer Joins

Ja

Volltext-Indizierung

Nein

Soundex-Suche

Nein

Frontends

Admin Text

Ja

Admin GUI

Ja

Admin Web

Nein / Über Zusatzprodukte

SQL Text

Ja

SQL GUI

Ja

SQL Web

nein

Schnittstellen

ODBC

Ja

JDBC

Ja

Perl

Ja

Python

Ja

.NET

Ja

Beschränkungen

Maximale Datensatzgröße

65534

Spalten pro Tabelle

2599

Maximale Datenbankgröße

Unbeschränkt / Dateisystem des OS

PostgreSQL

Während das schnelle und schlanke MySQL das beliebteste freie Datenbanksystem im Webumfeld ist, dürfte PostgreSQL zusammen mit Max DB das derzeit am weitesten entwickelte Open-Source-System sein. PostgreSQL stammt ursprünglich von der Universität Berkeley und ist manchem noch unter der Bezeichnung Ingres bekannt. Die Entwicklung begann bereits 1986, 1988 wurde es der Öffentlichkeit vorgestellt. Seit 1996 wird es von einer Gruppe weltweit verstreuter Open-Source-Programmierer vorangetrieben.

Bedingt durch die lange Geschichte ist PostgreSQL zu einem sehr leistungsfähigen Datenbanksystem herangereift. Mit seinen Merkmalen wie Transaktionen, benutzerdefinierten Funktionen, Stored Procedures, Triggers und Subqueries braucht es sich vor den kommerziellen Pedants von Oracle oder IBM nicht zu verstecken. Damit ist PostgreSQL im Vergleich zu MySQL auch hohen betrieblichen Ansprüchen gewachsen und lässt sich sehr gut für typische transaktionsorientierte Systeme, etwa im Finanzbereich, einsetzen. Entsprechend wird es heute von vielen großen Unternehmen wie BASF, RedHat, Cisco, Chrysler und 3Com verwendet.

PostgreSQL - Übersicht

PostgreSQL versteht sich als "objekt-relationales" Datenbank-Managementsystem. "Objekt-relational" bedeutet, dass dem Entwickler zu den bekannten Eigenschaften der relationalen Datenbanken zusätzliche Möglichkeiten der objektorientierten Programmierung angeboten werden. Dies prädestiniert das System auch unter dieser Perspektive für komplexere Anwendungen. Es ist zudem für große Datenbestände gut geeignet, da es dem Benutzer fast keine Einschränkungen auferlegt. So können Tabellen unbegrenzt groß sein und bis zu 1600 Spalten enthalten. PostgreSQL unterstützt sowohl den SQL92- als auch den SQL99-Standard und arbeitet auch weit gehend konform zu diesen Standards, ohne auf eigene Erweiterungen zu verzichten. Es eignet sich damit gut, um SQL zu lernen.

Die aktuelle Version hat die Nummer 7.4 und beinhaltet im Vergleich zu den Vorversionen einige neue Features, die vor allem im professionellen Umfeld von großer Bedeutung sind. So laufen zum Beispiel Analyseabfragen schneller als in der Vorversion. Für eine flottere Datenübertragung zwischen Client und Server sorgt ein neues Kommunikationsprotokoll, außerdem wurden Optimierungen für AMDs 64-Bit-Prozessor "Opteron" implementiert. Überarbeitet wurde auch die Volltext-Indizierung, beispielsweise bewertete Indizes. In Kombination mit der kürzlich von PostgreSQL veröffentlichten Replikationslösung eRServer eröffnen sich neue Möglichkeiten für hochgradig skalierbare Lösungen.

Des Weiteren gibt es zahlreiche interne Verbesserungen wie Hash-Aggregierung im Speicher, die Optimierung von Unterabfragen, ein erweitertes Client-Server-Protokoll sowie Verbesserungen von funktions- und ausdrucksbasierten Indizes. Diese Neuerungen können bestimmte Berechnungen um bis zu 400 Prozent beschleunigen. Eine vollständige Liste aller Änderungen in PostgreSQL 7.4 gibt es hier.

PostgreSQL - Zukunft

Bereits weit gehend abgeschlossen sind die Entwicklungsarbeiten für Version 8 von PostgreSQL, die sich im Beta-Stadium befindet. Die wichtigste Neuerung: Die neue Version läuft auch nativ unter Windows. Bisher lief die Datenbank nur auf Basis der Emulationsschicht cygwin. Ab Version 8 werden NT4, Windows 2000, XP und 2003 unterstützt. Auf der Client-Seite berücksichtigt PostgreSQL wie schon bisher alle Windows-Varianten. Die Ausführung für das Microsoft-Betriebssystem wird eine eigene Installations-Routine erhalten.

Eine weitere Änderung soll die Wiederherstellung von Datenbanken nach Hardware-Defekten vereinfachen. Ein Feature namens "Point-in-Time Recovery" soll dann die kontinuierliche Sicherung des Servers erlauben. Seine Wiederherstellung ist entweder bis zum Zeitpunkt des Ausfalls oder bis zu einer beliebigen Transaktion vorher möglich.

So genannte Save Points sehen vor, dass bestimmte Teile einer Transaktion abgebrochen werden können, ohne dass dabei wie bisher die gesamte Operation scheitert ("Nested Transactions"). Außerdem versprechen die Entwickler für PostgreSQL 8.0.0 dank eines überarbeiteten Buffer-Managements eine weiter gesteigerte Performance.

PostgreSQL - Varianten

PostgreSQL steht sowohl für den kommerziellen als auch den nicht-kommerziellen Gebrauch unter der BSD-Lizenz zur Verfügung und wird für Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD und viele andere Unix-Systeme angeboten. Eine Windows-Version gibt es wie erwähnt ab Version 8, bis dahin bieten entsprechende Unix-Umgebungen für Windows wie Cygwin einen Ausweg. Um mehr über PostgreSQL zu erfahren, können Sie neben der Homepage auch advocacy.postgresql.org oder www.postgresql.de besuchen. Dort gib es auch die Möglichkeit, sich in deutscher Sprache zu informieren.

Das Programm ist als Quelltext und in Form von RPMs über den Haupt-Server oder diverse FTP-Mirror-Server zu beziehen. Alternativ kann es im PostgreSQL-Shop als CD bestellt werden. Dokumentationen sind in verschiedenen Formaten verfügbar, leider jedoch nur in Englisch.

PostgreSQL ist mittlerweile auch in allen großen Linux-Distributionen enthalten. Linux-User können also auf den gewohnten Installer von CD-ROM zurückgreifen, falls die Pakete noch nicht auf dem System eingerichtet sind. Die aktuellen Versionen sind in der Regel nicht enthalten, sondern müssen direkt von der Website bezogen werden.

PostgreSQL - Features

Datenbank

PostgreSQL

Aktuelle, stabile Version

7.4

URL

www.postgresql.org

Lizenz

BSD

Unterstützte Betriebssysteme

Linux und andere Unix-Systeme, Mac OS

SQL-Funktionen

Beherrschte Transaktionen

Repeatable Read, Read commited

Stored Procedures

Ja

Triggers

Ja

Subqueries

Ja

Views

Ja

Foreign Keys

Ja

Inner Joins

Ja

Left-Right Outer Joins

Ja

Volltext-Indizierung

Ja

Soundex-Suche

Nein

Frontends

Admin Text

Ja

Admin GUI

Nein

Admin Web

Nein

SQL Text

Ja

SQL GUI

Nein

SQL Web

Nein

Schnittstellen

ODBC

Ja

JDBC

Ja

Perl

Ja

Python

Ja

.NET

Ja

Beschränkungen

Maximale Datensatzgröße

103279

Spalten pro Tabelle

1600

Maximale Datenbankgröße

Unbeschränkt

MaxDB

MaxDB ist die weiterentwickelte, neue Version der ehemaligen SAP DB, der Open-Source-Datenbank des Walldorfer Unternehmens SAP AG. Durch die Technologiepartnerschaft zwischen der MySQL AB und der SAP AG erwarb MySQL im Jahr 2003 die Distributionsrechte und die Verantwortung für den künftigen Vertrieb sowie die Weiterentwicklung der SAP DB. Gleichzeitig wurde die Datenbank mit diesem Schritt in MaxDB umbenannt.

Historisch geht SAP DB auf ein Forschungsprojekt an der TU Berlin im Jahr 1977 zurück und war zunächst ein Abkömmling der Datenbank Adabas. SAP übernahm 1997 die zuletzt von der SQL Datenbanksysteme GmbH (einer Tochter der Software AG) entwickelte Technologie, um die Weiterentwicklung des Produkts und die Unterstützung der Kunden, die SAP-Lösungen mit Adabas betreiben, zu sichern. Die Datenbank wurde dann in kritischen Bereichen verbessert und in SAP DB umbenannt. Seit dem Jahr 2000 wird sie als Open-Source-Projekt unter der GPL weitergeführt. Auch nach der Offenlegung der Datenbank als Open-Source trieb die SAP AG deren Weiterentwicklung mit einem Team von etwa 100 Mitarbeitern voran.

Nun ist MySQL AB für die ehemalige SAP DB zuständig, das damit künftig seinen Datenbank-Server MySQL ergänzen will und es vor allem auf den Einsatz im Bereich großer mySAP-ERP-Umgebungen ausrichten will. MaxDB ist für MySQL auch insofern eine Ergänzung, als es Unterstützung für Features bietet, die MySQL in der aktuellen Version 4.x noch fehlen - so zum Beispiel Trigger, Views und Stored Procedures. MySQL selbst bringt diese Fähigkeiten erst ab Version 5.0 mit, die erst in einer Alpha-Version vorliegt.

MaxDB - Übersicht

Die Verwurzelung im Software-Unternehmen SAP ist dafür verantwortlich, dass MaxDB zielgerichtet auf Unternehmensbedürfnisse ausgerichtet ist. Funktionen wie Referenzielle Integrität, Stored Procedures, Transaktionen, Online Backup und Kompatibilität mit namhaften Backup-Tools prädestinieren MaxDB für den Unternehmenseinsatz.

Hinzu kommt eine hohe Performance und Robustheit. Die Datenbank kann Tausende von gleichzeitig aktiven Benutzern bedienen und sehr große Datenvolumina bearbeiten. Zu den Architekturmerkmalen, die maßgeblich für kurze Antwortzeiten und hohen Durchsatz sind, zählen effektive Sperrmechanismen (Locking), ein effizientes Caching von Daten, die intelligente Optimierung von SQL-Kommandos, die weit gehende Parallelisierung von Lese- und Schreibvorgängen sowie Strategien zur Minimierung der notwendigen Schreiboperationen.

MaxDB ist zudem für den unterbrechungsfreien Rund-um-die-Uhr-Betrieb ausgelegt. Erforderliche Wartungsaufgaben wie Konfigurationsanpassungen, die Erweiterung von Daten- oder Log-Bereichen, die Datensicherung, das Anlegen von Tabellenindizes etc. lassen sich während des laufenden Betriebs vornehmen, ohne dass die aktiven Anwender dadurch beeinträchtigt werden.

MaxDB ist für SQL92 zertifiziert und bietet auch wichtige Bestandteile von SQL99 und neueren ANSI-Funktionen. SQL-Programme, die für andere Datenbanksysteme erstellt wurden, lassen sich für den MaxDB-Einsatz portieren. Als Schnittstellen zur Datenbank werden unter anderem ODBC, JDBC und der Anschluss an Script-Sprachen wie Perl, Python und PHP unterstützt. Eine einfach bedienbare, grafische Admin-Oberfläche (DBM-GUI), über die sich mehrere SAP DBs von einem Arbeitsplatz beziehungsweise einem Screen aus verwalten lassen, erleichtern dem User den Umgang mit der Datenbank.

MaxDB - Zukunft

Um Java-Entwickler anzuziehen, soll MaxDB 7.6 das Software-Entwicklungs-Framework Eclipse unterstützen. Darüber hinaus wird die Bindung an das Datenbanksystem MySQL verbessert, um die Migration zwischen beiden Datenbanksystemen einfach zu halten. Anwender können auf dieser Basis dann auch Applikationen entwickeln, die beide Datenbanken zugleich benutzen. MaxDB in Version 7.6 soll zum Jahresende zur Verfügung stehen.

MaxDB - Varianten

Die aktuelle MaxDB-Release, Version 7.5.00, ist lediglich eine einfache Umbenennung der Datenbank mit nur wenigen Änderungen. So wurde die Verarbeitung von Queries beschleunigt und der Database Analyser verbessert. Für Windows und Linux gibt es einen Installationsmanager, der die relativ komplizierte Installation vereinfacht.

Mit Erscheinen von MaxDB ist auch die bisherige Website auf eine neue Adresse umgezogen. Hinter dieser URL finden Anwender alle relevanten Informationen, Dokumentationen und Downloads.

Die MaxDB steht mit gleichem Leistungsumfang für Linux, IBM AIX, Solaris, HP-UX, Siemens Unix sowie Windows NT, 2000 und XP zur Verfügung. Wie alle Produkte von MySQL AB wird auch MaxDB unter zwei verschiedenen Lizenzmodellen angeboten. Zum einen steht MaxDB gratis unter der GNU/GPL-Lizenz zum Download zur Verfügung. Neben der GNU/GPL-Version gibt es auch eine kommerzielle Version der Datenbank, die nicht an die Einschränkungen der GPL gebunden ist. Diese Lizenz richtet sich vor allem an Unternehmen, die ihre eigenen Entwicklungen auf Basis von MaxDB nicht wieder unter den Bedingungen der Open-Source-Lizenzen veröffentlichen möchten. Die kommerzielle Lizenz kostet 49 US-Dollar pro User auf einem Ein-Prozessor-System mit mindestens fünf Usern. Alternativ können Anwender eine CPU-abhängige Lizenz für 1490 US-Dollar pro CPU erwerben.

Den Support für MaxDB im SAP-Umfeld wird SAP bereitstellen. Darauf bauen MySQL und SAP ein gemeinsames Support-System auf. Die Unterstützung der kommerziellen MaxDB-Lizenzen, die von MySQL vertrieben werden, leisten beide Unternehmen gemeinsam.

MaxDB - Features

Datenbank

MaxDB

Aktuelle, stabile Version

7.5

URL

www.mysql.de/products/maxdb

Lizenz

GPL

Unterstützte Betriebssysteme

Linux und andere Unix-Systeme, Windows NT, 2000, XP, Mac OS

SQL-Funktionen

Beherrschte Transaktionen

Serializable, Repeatable Read, Read committed, Read uncommitted

Stored Procedures

Ja

Triggers

Ja

Subqueries

Ja

Views

Ja

Foreign Keys

Ja

Inner Joins

Ja

Left-Right Outer Joins

Ja

Volltext-Indizierung

Nein

Soundex-Suche

Ja

Frontends

Admin Text

Ja

Admin GUI

Ja

Admin Web

Ja

SQL Text

Nein

SQL GUI

Ja

SQL Web

Ja

Schnittstellen

ODBC

Ja

JDBC

Ja

Perl

Ja

Python

Ja

.NET

Nein

Beschränkungen

Maximale Datensatzgröße

8 KByte

Spalten pro Tabelle

1024

Maximale Datenbankgröße

32 TByte

Firebird

Firebird basiert auf der Open-Source-Variante von Borlands Datenbank Interbase 6 aus dem Jahre 2000. Interbase wurde ursprünglich von einem gleichnamigen Unternehmen entwickelt und später von Borland aufgekauft. Als die Datenbank kommerziell nicht mehr erfolgreich war, erklärte Borland Interbase kurzerhand zum Open-Source-Projekt und gab die Quelltexte frei. Inzwischen wird Interbase zwar wieder von Borland weiterentwickelt, aber die kommerzielle und die Open-Source-Variante haben sich getrennt.

Seit der Freigabe von Interbase 6 durch Borland firmiert dieses in der Open-Source-Variante unter dem Namen Firebird und wird von einer sehr aktiven und kompetenten Gemeinde weiterentwickelt. Zusätzliche Unterstützung erfährt das Projekt durch eine eigens gegründete Stiftung, die FirebirdSQL Foundation. Sie ist auch unter dem Namen "Phoenix" bekannt.

Auf Grund seiner Herkunft ist Firebird mächtiger und beinhaltet mehr Features als MySQL. Allerdings ist Firebird eher für Datenbankentwickler interessant, und dabei vor allem für jene, die mit Borland-Werkzeugen arbeiten. Wer ein fertig einsetzbares Datebankpaket sucht, ist mit anderen Programmen besser bedient.

Firebird - Übersicht

Nach dem Erscheinen von Firebird 1.0 liegt die Open-Source-Datenbank nun in einer stark überarbeiteten Version 1.5 vor. Im Gegensatz zu Firebird 1.0 ist die neue Version in C++ statt wie bisher in C geschrieben und stellt damit einen ersten Schritt zur geplanten Version 2 von Firebird dar.

Im Vergleich zur Version 1.0 glänzt Firebird mit einigen Neuerungen. So wurden neue Sprachelemente aus dem SQL-92-Standard eingeführt. So genannte Multi-Action-Triggers können mit ein und demselben Code mehrere verschiedene Datenbankereignisse behandeln. Hinzu kommen Server-seitige Datenbank-Aliases, ein neues Speicher-Management, verbesserte Gruppierungsfunktionen und ein SQL-Query-Optimizer, mit dem sich die Geschwindigkeit um 30 bis 60 Prozent gesteigert hat. Außerdem gibt es einen neuen Installer für Windows.

Firebird 1.5 lässt sich unter Win32, Linux und praktisch allen gängigen Unix-Dialekten unter einer modifizierten Version der MPL-Lizenz einsetzen. Bei Sourceforge.net finden sich die Quellen für alle Betriebssysteme und die Dokumentationen. Entwickler, die auf dieser Datenbank aufsetzen wollen, können sich dabei auf den Support einer sehr hilfsbereiten Community verlassen. Auch für Firmen, die sich mit Konzepten wie "Community" schwer tun, gibt es die richtigen Ansprechpartner: Die IBPhoenix-Organisation bietet professionelle Dienste wie Support, Training und Beratung gegen entsprechendes Entgelt an. Daneben stellen sie auf ihren Webseiten auch Dokumente und eine Knowledge-Base kostenlos bereit.

Auf Grund der engen Verwandtschaft mit Interbase besteht immer noch die Möglichkeit, auf diese kommerzielle Variante zu wechseln und dadurch auch den Support von Firmen in Anspruch zu nehmen beziehungsweise auf die Borland-Foren zu Interbase zurückzugreifen.

Firebird - Features

Datenbank

Firebird

Aktuelle, stabile Version

1.5

URL

www.firebirdsql.org

Lizenz

MPL

Unterstützte Betriebssysteme

Linux und andere Unix-Systeme, Windows NT, 2000, XP, Mac OS

SQL-Funktionen

Beherrschte Transaktionen

Repeatable Read, Read commited

Stored Procedures

Ja

Triggers

Ja

Subqueries

Ja

Views

Ja

Foreign Keys

Ja

Inner Joins

Ja

Left-Right Outer Joins

Ja

Volltext-Indizierung

Nein

Soundex-Suche

Nein

Frontends

Admin Text

Ja

Admin GUI

Nein

Admin Web

Nein

SQL Text

Ja

SQL GUI

Nein

SQL Web

Nein

Schnittstellen

ODBC

Ja

JDBC

Ja

Perl

Ja

Python

Ja

.NET

Nein

Beschränkungen

Maximale Datensatzgröße

64 KByte

Spalten pro Tabelle

Uneingeschränkt

Maximale Datenbankgröße

980 GByte

Ingres r3

Das neueste Mitglied im Club der Open-Source-Datenbanken ist Ingres r3. Unter dem Wettbewerbsdruck von IBM, Oracle und Microsoft ist Ingres zu einem Nischenprodukt geworden, das nur mehr etwa 15.000 Anwender einsetzten. Entwickler Computer Associates hat sich deshalb im Herbst 2004 entschlossen, den Quellcode unter der extra geschaffenen Lizenzform "CA Trusted Open Source License" (CATOSL) freizugeben. Diese gestattet es, den Sourcecode kostenlos herunterzuladen und ihn mit anderen Produkten zu vermengen. Weiterentwicklungen müssen nicht zwangsläufig veröffentlicht werden. Damit hofft Computer Associates, die Verbreitung von Ingres r3 zu steigern.

Trotz dieses Schrittes muss CA nicht auf Einnahmen verzichten. Die sollen sich aus dem eigentlich unumgänglichen Support ergeben, für den der Anbieter Gebühren verlangt. CA bietet vier verschiedene Support-Packages an, mit denen das Unternehmen auf Basis der Open-Source-Datenbank Geld verdienen will, während die Kunden damit bei Problemen auf schnelle Hilfe rechnen können. Das Preisschema reicht von 250 US-Dollar pro Monat für Entwickler bis zu 1995 US-Dollar pro Prozessor und Jahr im produktiven Unternehmenseinsatz.

Ingres - Übersicht

Viele der Kunden, die Ingres-Technologie einsetzen, sollen künftig von der Open-Source-Community sowie CAs eigener Forschungs- und Entwicklungsabteilung profitieren. In einem Wettbewerb stellt CA jenen Entwicklern Preisgelder in Höhe von insgesamt einer Million US-Dollar in Aussicht, denen es gelingt, bis Februar 2005 quelloffene Migrationswerkzeuge zu erstellen, mit denen sich ein Umstieg von kommerziellen Datenbanken wie Oracle, IBM und Microsoft auf Ingres unterstützen lässt.

Ingres r3 - Features

Datenbank

Ingres

Aktuelle, stabile Version

r3

URL

www.ca.com

Lizenz

CATOSL

Unterstützte Betriebssysteme

Linux und Windows, Solaris zurzeit Beta, weitere Unix-Derivate und OpenVMS bis Mitte 2005 geplant.

SQL-Funktionen

Beherrschte Transaktionen

Serializable, Repeatable Read, Read committed, Read uncommitted

Stored Procedures

Ja

Triggers

Ja

Subqueries

Ja

Views

Ja

Foreign Keys

Ja

Inner Joins

Ja

Left-Right Outer Joins

Ja

Volltext-Indizierung

Ja

Soundex-Suche

Nein

Frontends

Admin Text

Ja

Admin GUI

Ja

Admin Web

Geplant

SQL Text

Ja

SQL GUI

Ja

SQL Web

Ja

Schnittstellen

ODBC

Ja

JDBC

Ja

Perl

Ja

Python

Ja

.NET

Ja

Beschränkungen

Maximale Datensatzgröße

Physisch 64 KByte, logisch 2048 GByte (BLOB)

Spalten pro Tabelle

1024

Maximale Datenbankgröße

Abhängig vom Dateisystem

Weitere Open-Source-Datenbanken

Neben den fünf großen gibt es eine Reihe weiterer, kleinerer Open-Source-Datenbanken, die entweder auf spezielle Zwecke ausgerichtet sind oder durch besondere Schlankheit und Einfachheit glänzen.

Mehr in die experimentelle Richtung geht MonetDB vom niederländischen Centrum vor Wiskunde en Informatica. Die äußerst schnelle Datenbank liefert sehr gute Benchmark-Ergebnisse und ist ein Tummelplatz für neue Technologien. Support und Wartung sind für die unter der Mozilla Public Licence zur Verfügung gestellte Datenbank allerdings nicht sichergestellt.

SimpleSQL hat sich zum Ziel gesetzt, möglichst einfach benutzbar zu sein. Die Datenbank ist als Java-Version erhältlich, es stehen aber auch Binärdateien für Windows zur Verfügung. Das Programm steht unter GNU/GPL bereit.

Fazit

Kostenlose Open-Source-Datenbanken sind eine überlegenswerte Alternative zu den kommerziellen Systemen. Sie bieten ähnliche Leistungsmerkmale wie die teuren Datenbanken von Oracle oder IBM, sind sehr gut dokumentiert und Firmen, die an der Weiterentwicklung beteiligt sind, liefern zusätzlich kommerziellen Support.

Für welche dieser Open-Source-Systeme man sich entscheidet, hängt stark von den Anforderungen ab. Jede der Datenbanken hat ihre Stärken und Schwächen. MySQL brilliert mit seiner Schlankheit und Schnelligkeit und entfaltet besonders bei Internet-Anwendungen seine Vorzüge. Dazu kommen die einfache Administration, ein großer Funktionsumfang und der breite Support. Dafür fehlt es der Datenbank an professionellen Funktionen wie Stored Procedures oder Triggers, die kommerzielle Datenbankanwendungen oft benötigen, und die erst für die Version 5.0 angekündigt sind.

Diese fehlenden Funktionen stellt PostgreSQL zur Verfügung. Dieses objektrelationale Datenbanksystem empfiehlt sich dann, wenn weniger auf Schnelligkeit als auf großen Leistungsumfang und unternehmensweiten Einsatz Wert gelegt wird. Durch die umfangreichen Features, seine lange Geschichte und Entwicklungszeit genießt PostgreSQL nicht nur im Open-Source-Umfeld einen hervorragenden Ruf. Namhafte Firmen wie BASF oder Cisco haben PostgreSQL schon längere Zeit im Einsatz.

Vom Funktionsumfang ähnlich leistungsfähig wie PostgreSQL präsentiert sich Firebird, es entfaltet seine Vorzüge aber vor allem bei der Entwicklung von Datenbankanwendungen, insbesondere wenn mit Borland-Werkzeugen gearbeitet wird. Hinzu kommt die gute Unterstützung seitens der Firebird-Community.

Gibt es Anforderungen, die auch von PostgreSQL oder Firebird nicht erfüllt werden, sollte über den Einsatz der MaxDB nachgedacht werden. MaxDB ist voll auf Datenbankanwendungen im Unternehmensbereich zugeschnitten und bietet entsprechend reichhaltige Features. Besonders im Bereich Datensicherheit ist es konkurrenzlos und bietet als einziges Open-Source-System die Möglichkeit eines Online-Backups. (mha)