Freie Datenbanken im Unternehmenseinsatz: Ein Vergleich

Test & Kaufberatung | Test

Auch im Bereich der Datenbanken beginnt Open-Source-Software, sich ihren Platz im Markt zu erobern. Mit Firebird, Ingres, MaxDB, MySQL und PostgreSQL buhlen fünf Kandidaten um die Gunst der Anwender.

Leicht gekürzter Vorabdruck aus dem Open Source Jahrbuch 2006. Der Text steht unter der Creative-Commons-Lizenz (Namensnennung - Weitergabe unter gleichen Bedingungen 2.5) und darf unter Nennung der Autorin und Beibehaltung der Lizenz auch in veränderter Form weitergegeben werden.

2005 war ein aufregendes Jahr bei den Open-Source-Datenbanken. Neue Versionen von MySQL (5.0) und PostgreSQL (8.0, 8.1) warteten mit wesentlichen Funktionserweiterungen auf. Oracle gelang mit dem Kauf von Innobase der Zugriff auf eine wichtige Komponente von MySQL: den InnoDB-Tabellentyp. Sun startete kommerziellen Support für PostgreSQL. Mit Bizgres steht seit diesem Jahr ein vollständiger Open-Source-Business-Intelligence-Stack zur Verfügung. Und schließlich wurde im November in Frankfurt die erste internationale Konferenz zum Thema Open-Source-Datenbanken veranstaltet.

Dieser Artikel vergleicht die Big 5 (Firebird, Ingres, MaxDB, MySQL, PostgreSQL) mit Blick auf ihren Einsatz im Rahmen großer Unternehmensanwendungen. Dabei soll es nicht darum gehen, eine Rangliste zu produzieren. Der Ansatz ist vielmehr, dass für jede Aufgabe das passende Werkzeug verwendet werden sollte: Die Entscheidung für ein bestimmtes Datenbankmanagementsystem (DBMS)muss sich an den Anforderungen des jeweiligen Einsatzszenarios orientieren.

Gerade in Unternehmen mit wenig Erfahrung mit Open-Source-Software stehen viele Entscheider diesem Softwareentwicklungsmodell skeptisch gegenüber. Man befürchtet informellen Support, mangelnde langfristige Planung, ein kompliziertes Wirrwarr unterschiedlicher Lizenz-Modelle, unklare Haftbarkeiten und erhöhten administrativen Aufwand. Speziell Open-Source-Datenbanken wird ein Mangel an Features im Vergleich zu den proprietären Pendants wie Oracle oder MS SQL Server unterstellt. Und nicht zuletzt stellt sich die Frage nach der Verfügbarkeit von Applikationen, die in der Lage sind, mit Open-Source-Datenbanken zusammenzuarbeiten.

Einige dieser Befürchtungen sind leicht zu entkräften. So gibt es für alle fünf großen Open-Source-Datenbanken Anbieter kommerziellen Supports: MySQL AB für MySQL, Computer Associates und Ingres Corp. für Ingres, IBPhoenix (international) und HK-Software (Deutschland) für Firebird, SAP AG und MySQL AB für MaxDB und eine große Auswahl internationaler Firmen (darunter Fujitsu und Sun) für PostgreSQL (im deutschsprachigen Raum beispielsweise credativ und Cybertec). Und die Entwickler der jeweiligen Software direkt per IRC, Mail, Foren oder Bug-Tracker ansprechen zu können, ist für viele AnwenderInnen hilfreicher als die Nutzung einer Telefon-Hotline.

In eine ähnliche Richtung gehen Fragen der Gewährleistung und Haftbarkeit. Bei den drei Datenbanken, die Firmen gehören (MySQL, Ingres, MaxDB), ist auf jeden Fall genauso viel (oder wenig) Haftung wie bei Closed-Source-Software zu erwarten. Was die langfristige Planung anbelangt, so finden sich auf den Webseiten fast aller Open-Source-Datenbanken ausführliche Roadmaps.

Das Thema Lizenzierung ist schon etwas komplizierter. Die fünf großen Open-Source-Datenbanken lizenzieren alle auf unterschiedliche Weise: Firebird verwendet die eigene Interbase Public License (IPL), Ingres die Computer Associates Trusted Open Source License (CATOSL), MySQL und MaxDB duale Lizenzierung (GPL und kommerziell) und PostgreSQL steht unter der BSD-Lizenz.

Das Vorurteil eines erhöhten administrativen Aufwandes und geringerer Benutzerfreundlichkeit bei Open-Source-Software bestätigt sich im Datenbankbereich nicht: Neben sehr ausgereiften Kommandozeilen-Werkzeugen bringen alle fünf Datenbanken selbstverständlich auch Tools mit grafischen Oberflächen mit. Meist sind sie sogar einfacher zu administrieren als ihre proprietären Gegenparts.

Zwei Argumente gegen den Einsatz von Open-Source-Datenbanken wiegen jedoch schwer. Zum einen ist dies die Frage nach der Unterstützung durch Software-Hersteller. Also: Kann ich das Datenbankdesign-Tool oder die Business Intelligence Suite, die ich bisher mit proprietären Datenbanken genutzt habe, weiter einsetzen? Die Antwort lautet immer noch oft: Leider nein.

Und zweitens muss man den Umfang an unterstützten Features erwähnen. Obwohl alle fünf Open-Source-Datenbanken einen sehr großen Funktionsumfang mitbringen, gibt es doch immer wieder Anforderungen, bei denen einzelne oder sogar alle passen müssen. Materialized Views, eine Technik, die im Data-Warehouse-Bereich genutzt wird, um die Bereitstellung von Daten auf komplexe Abfragen zu beschleunigen, stellt zum Beispiel keines der Projekte zur Verfügung.

Die Argumente für Open-Source-Datenbanken sind dieselben wie für Open-Source-Software im Allgemeinen: niedrige Kosten und die Vorteile des Open-Source-Softwareentwicklungsmodells. Kostenberechnungen sind allerdings kompliziert, weil man nicht nur die Lizenzkosten, sondern auch die mit dem Einsatz und der Administration der Software verbundenen Arbeitskosten mit berücksichtigen muss. MySQL zum Beispiel nimmt in einem White Paper für sich in Anspruch, weniger als halb so viel Kosten zu verursachen wie der Einsatz einer Closed-Source-Datenbank.

Aber neben niedrigeren Kosten hat Open-Source-Software einen weiteren ganz entscheidenden Vorteil: der offene Quellcode. Der Einsatz von Open-Source-Datenbanken in einem Unternehmen bringt die folgenden Vorteile mit sich:

  • Teilhabe an einer weltweiten Community inklusive direktem Zugang zu den EntwicklerInnen, zu umfassender Dokumentation und Support.
  • Unabhängigkeit von einzelnen Anbietern und Produkt-Lebenszyklen.
  • Ein hohes Sicherheits-Niveau aufgrund ständiger Überprüfung des Codes durch eine internationale Entwicklergemeinschaft und schnelle Fehlerbeseitigung.
  • Flexible Anpassungen und Erweiterungen der Software entsprechend der eigenen Anforderungen, indem fehlende Funktionen selbst (oder von beauftragten EntwicklerInnen) hinzugefügt werden.

Ob der Einsatz einer Open-Source-Datenbank möglich und sinnvoll ist, hängt von den Anforderungen an den Funktionsumfang des Systems ab. Ein Datenbanksystem sollte möglichst die unten aufgelisteten Features bieten, um in anspruchsvollen Unternehmensanwendungen einsetzbar zu sein:

  • 1. Datenintegrität: ACID-Transaktionen, Savepoints, zweiphasiges Commit, Locking auf Zeilenebene oder Multiversion Concurrency Control (MVCC)
  • 2. Datenorganisation: Komplexe Datenbank-Objekte wie Sichten, Schemata und temporäre Tabellen
  • 3. Datenzugriff: Umfangreiche SQL-Features: Vererbung, nutzerdenierte Datentypen, Operatoren und Funktionen, Sub-Selects, komplexe Abfragen, fortschrittliche Indexierungs-Strategien und Unterstützung von verteilten Datenbankabfragen; Möglichkeiten der Integration von Geschäftslogik in die Datenbank: Triggers, Events, Sequenzen, Stored Procedures; eine große Auswahl an Schnittstellen, Treibern und APIs
  • 4. Betrieb: Performanz und Skalierbarkeit: Multi-Threading, Multi-Prozessor-Unterstützung, Caching, Partitionierung, Tablespaces, Clustering, Parallelisierung von Abfragen; (Hoch-)Verfügbarkeit: Replikation, umfangreiche unterbrechungsfreie Datensicherungs- und Wiederherstellungsmechanismen; Sicherheit: Verschlüsselung, Gruppen- und Rollenkonzept, feingranulare Rechteverwaltung und Logging

Die folgende Tabelle bietet einen Vergleich der Features der fünf Open-Source-Datenbankmanagementsysteme. Dabei ist zu beachten, dass es wesentlich einfacher ist, SQL-Features und Standard-Konformität zu vergleichen oder die verfügbaren Stored-Procedure-Sprachen aufzuzählen, als Features aus den Bereichen Hochverfügbarkeit, Sicherheit oder Skalierbarkeit zu vergleichen. Diese sind nicht einfach abzählbar und es gibt im Allgemeinen auch keinen Standard, dessen Einhaltung man überprüfen kann. Implementationen desselben Features können sich grundlegend unterscheiden und oft steckt der Teufel im Detail. Auf jeden Fall aber lassen sich die jeweiligen Funktionen benennen und klassizieren.

Firebird Ingres MaxDB MySQL PostgreSQL
Version 1.5 3.0 7.6 5.0 8.1
Datenintegrität
ACID-Transaktionen Ja Ja Ja Ja* Ja
2-phasiges Commit Ja Ja Nein Ja* Ja
Fremdschlüssel Ja Ja Ja Ja* Ja
CHECK-Bedingung Ja Nein Ja Nein Ja
Savepoints Ja Ja Ja Ja* Ja
Locking MVCC zeilenweise zeilenweise, MVCC ab 7.7 MVCC und zeilenweise* MVCC und zeilenweise
Datenbankobjekte
Schema Nein Ja Ja Ja Ja
Temporäre Tabellen Nein Ja Ja Ja Ja
Stored Procedures Ja Ja Ja Ja Ja
Trigger Before/After After After Before/After Before/After
View Ja Ja Ja Ja Ja
Materialized View Nein Nein Nein Nein Nein
Updatable View Ja Nein Ja Ja Ja
Expression Index Nein Nein Nein Nein Ja
Partial Index Nein Nein Nein Nein Ja
Bitmap Index Nein Nein Nein Nein Ja
Volltext-Index Nein Nein Nein Ja (MyISAM) Ja (Tsearch2)
SQL, Datentypen
SQL-Standard 92, 99 92, 99 92 92, 99 92, 99, 03
Nutzerdef. Typen Nein Ja Nein Nein Ja
Nutzerdef. Funktionen Ja Ja Ja Ja Ja
GIS Nein Ja Nein Ja Ja
Boolean Nein Nein Ja Nein Ja
Sub-Select Ja Ja Ja Ja Ja
Full Outer Join Ja Ja Ja Nein Ja
Betrieb
Multi-Threading Ja (Super) Ja (BS) Ja (DB) Ja (BS) Nein
Multi-Processing Ja (Classic) Ja Ja Ja Ja
Abfrage-Parallelisierung Nein Ja Ja Ja (Cluster) Nein
Replikation Ja Ja Ja Ja Ja (Slony)
Multimaster Repl. Ja Ja Nein Nein Nein
Clustering Nein Ja Ja Ja Nein
Load Balancing Nein Ja Nein Ja Nein
Tablespaces Nein Nein Nein Ja Ja
Partitionierung Nein Ja Nein Nein (V. 5.1) Ja (CE)
Point-In-Time Recovery Nein Ja Ja Ja* Ja

(BS: Betriebssystem, DB: Datenbank, CE: Constraint Exclusion, *: InnoDB)

Firebird basiert auf InterBase, dem Datenbankmanagementsystem der Firma Borland. Dadurch reichen seine Wurzeln zurück bis 1984. Im Jahr 2000 entschied sich Borland, den Quellcode von InterBase v6.0 freizugeben, da das Datenbanksystem über keinen nennenswerten Marktanteil mehr verfügte und man hoffte, durch kommerziellen Support für ein durch frisches Blut aus der Open-Source-Community wiederbelebtes Produkt höhere Einnahmen zu erzielen als bisher über Lizenzkosten. Diese Rechnung ging offensichtlich nicht auf, denn wenig später (in Version 7.1) schloss Borland den Code wieder.

In der Zwischenzeit hatte sich jedoch eine aktive Community um die Codebasis gebildet, die die Software seitdem unter dem Namen Firebird eigenständig weiterentwickelt. Bisher ist Firebird in Westeuropa und den USA wesentlich weniger bekannt als etwa MySQL oder PostgreSQL, vor allem in Brasilien, Russland und der Ukraine aber weit verbreitet. Ein großer Teil der Anwender rekrutiert sich aus vormaligen InterBase-Kunden; einer der hierzulande bekanntesten Nutzer ist die Deutsche Presse Agentur (dpa).

Firebird bringt zwar einen soliden Grundstock an Funktionen mit, jedoch nur wenige anspruchsvollere Features. Es bietet immerhin zweiphasiges Commit (aber ohne Unterstützung des XA-Standards) und die Multi-Generational-Architecture (ein Locking-Mechanismus, welcher der Multi Versioning Concurrency Control (MVCC) entspricht). Hingegen fehlen Firebird die folgenden Funktionen, die die meisten anderen Datenbanken bieten:

  • Geographischer/räumlicher Datentyp
  • Schemas
  • Temporären Tabellen
  • Volltext-Suche
  • Indexierungsalgorithmen außer B-Tree
  • Replikation
  • Load Balancing
  • Clustering
  • Tabellen-Partitionierung
  • SSL-Verschlüsselung der Kommunikation zwischen Client und Server

Parallele Verarbeitung wird nur eingeschränkt unterstützt, je nachdem, welche Datenbankserver-Variante gewählt wird: Der Super Server bietet Multi-Threading, aber keinen Multi-Prozessor-Support. Beim Classic Server ist es genau umgekehrt.

Die Entwicklung an Ingres begann 1974 als Forschungsprojekt der University of California in Berkeley. 1982 wurde Ingres unter dem Dach der Firma Ingres Corporation kommerzialisiert. Das Unternehmen wurde dann zwölf Jahre später von Computer Associates (CA) gekauft. Derselben Logik wie Borland folgend, veröffentlichte CA im Jahre 2004 den Quellcode von Ingres, bot aber weiterhin kommerziellen und Community-Support an. Im Herbst 2005 gliederte CA Ingres aus und verkaufte das Datenbanksystem an die Investment-Firma Garnett & Helfrich Capital, die es nun wiederum unter dem Namen Ingres Corporation weiterhin als Open Source anbietet.

Als älteste der fünf Open-Source-Datenbanken verfügt Ingres selbstverständlich über ein großes Arsenal von Funktionen. Besonders herauszuheben sind dabei der volle XML-Support, die GIS-Funktionalität, nutzerdefinierte Datentypen, Multi-Master-Replikation und Tabellen-Partitionierung. Ingres unterstützt Multi-Threading genauso wie Multi-Processing und bietet außerdem Abfrage-Parallelisierung: Die Bearbeitung eines SQL-Statements kann durch mehrere Prozessoren gleichzeitig erfolgen.

Allerdings fehlen so wichtige Features wie BEFORE-Trigger, Updatable Views, Volltext-Indexierung, MVCC (nur Locking auf Zeilen-Ebene), CHECK-Bedingungen, Tablespaces und SSL-Verschlüsselung.

Die Wurzeln von MaxDB liegen in Deutschland, wo die TU Berlin das System zunächst als Forschungsprojekt namens Distributed Databases on Mini-Computers entwickelte. 1981 wurde es von Nixdorf unter dem Namen DDB/4 kommerzialisiert und 1993 von der Software AG übernommen, die die Datenbank zunächst in Entire SQL DB Server, später in Adabas D umbenannte. SAP übernahm die Software im Jahr 1997 und änderte erneut den Namen, diesmal in SAP DB.

2000 stellte SAP die Datenbank als Open Source unter die GPL. Drei Jahre später gingen SAP und MySQL AB eine Partnerschaft ein, die MySQL sowohl den Vertrieb und die Weiterentwicklung als auch eine erneute Umbenennung des Datenbanksystems erlaubte. Entwicket wird MaxDB jedoch weiterhin nahezu ausschließlich von SAP, was auch die SAP-Zertizierung mit einschließt.

MySQL AB offeriert seine Produkte unter einer so genannten dualen Lizenzierung: Nutzt man die Software im Rahmen einer Applikation genutzt, die selbst unter der GPL steht, ist das Produkt kostenfrei. Ist dies nicht der Fall, etwa beim Einsatz der Datenbank als Backend einer kommerziellen Closed-Source-Applikation, so bietet MySQL AB eine kommerzielle Lizenzierung (mit Lizenzkosten) an.

SAP nutzte das Datenbanksystem als Backend der hauseigenen Großanwendungen wie SAP R/3. Es ist daher weltweit in SAP-Systemen so bekannter Firmen wie Toyota, Intel, DaimlerChrysler, Bayer, Yamaha und der Deutschen Post zu finden.

Die Stärken von MaxDB liegen vor allem in der parallelen Verarbeitung: Neben Ingres ist es das einzige System, das sowohl Multi-Threading als auch Multi-Processing und außerdem die parallele Abfrage-Bearbeitung beherrscht. Auch im Bereich von Backup und Recovery kann MaxDB punkten: Komplette Backups im laufenden Betrieb werden genauso unterstützt wie Point-in-Time Recovery und Savepoints. Daneben beherrscht die Datenbank Replikation und Clustering, jedoch fehlt die Möglichkeit, Lasten im Cluster zu verteilen: Load-Balancing funktioniert nur zwischen den Prozessoren einer Maschine.

Die Liste der fehlenden Features wird noch länger: Man vermisst einen räumlichen Datentyp, BEFORE-Trigger (geplant für Version 7.7), sämtliche Indexierungs-Algorithmen außer B*-Tree, zweiphasiges Commit, MVCC (geplant für Version 7.7), nutzerdefinierte Datentypen, kaskadierendes UPDATE, Tablespaces und Tabellen-Partitionierung.

Der Wechsel von Version 7.5 auf 7.6 brachte einige interessante neue Features, zum Beispiel bietet MaxDB nun Replikation per Synchronisation Manager sowie nutzerdenierte Funktionen.

Die schwedische Firma MySQL AB veröffentlichte MySQL im Jahr 1995. Open-Source-Software von Anfang an, entwickelte sich schnell eine sehr große Nutzergemeinde rund um das Datenbanksystem, welches eine der vier Säulen des LAMP-Stacks bildet (Linux, Apache, MySQL, PHP/Python/Perl).

Wie MaxDB wird auch MySQL unter dualer Lizenzierung angeboten. Bekannte Nutzer sind Associated Press, Yahoo, Slashdot, SourceForge, die NASA, Lycos und T-Systems. In einer Reihe von Open-Source-Projekten arbeitet MySQL als Backend, etwa Typo3 und Drupal (CMS), Nucleus undWordpress (Blog), Wikipedia/MediaWiki, PHProjekt und eGroupware (Projekt Management und Groupware). MySQL AB bietet kommerziellen und Community-Support.

Mit der Version 5.0 hat sich MySQL zu einer Datenbank gemausert, die auch für komplexe Unternehmens-Anwendungen einsetzbar ist. Die neue Version bietet folgende Neuerungen:

  • Stored Procedures (nach SQL 2003 Standard)
  • Triggers
  • (Updatable) Views
  • Serverseitige Cursors
  • Unterstützung von XA-Standard und zweiphasigen Commits
  • Nutzer-definierte Funktionen
  • Abfrage der Datenbank-Metadaten über das INFORMATION_SCHEMA
  • Strikter SQL-Modus

Spezisch für MySQL ist, dass es elf verschiedene Tabellentypen zur Auswahl gibt: MyISAM, MERGE, MEMORY (HEAP), BDB (BerkeleyDB), EXAMPLE, FEDERATED, ARCHIVE, CSV, BLACKHOLE, InnoDB und MySQL Cluster (NDB). Eine Datenbank kann Tabellen verschiedenen Typs enthalten. Die Wahl eines Typs ist abhängig vom Einsatzzweck der Tabelle. Jeder Tabellentyp hat bestimmte Charakteristika, zum Beispiel:

  • Nur der InnoDB-Typ bietet Fremdschlüssel, MVCC, Savepoints, Tablespaces und XA-konforme verteilte Transaktionen mit zweiphasigem Commit.
  • Nur InnoDB und Berkeley DB bieten ACID-Transaktionen.
  • Nur InnoDB und NDB bieten Locking auf Zeilenebene (BDB: Locking auf Seiten-Ebene).
  • Nur MyISAM-Tabellen unterstützen Volltext- und R-Tree-Indexierung.
  • Für Clustering und Load Balancing verwendet man NDB-Cluster-Tabellen. Diese bieten auch die parallele Bearbeitung von Abfragen auf mehreren Cluster-Knoten gleichzeitig.

Neben den genannten Features unterstützt MySQL Replikation (Single-Master, Multi-Slaves), Multi-Threading und Multi-Prozessor-Support. Nur eingeschränkt zur Verfügung stehen Sequenzen (eingeschränkte Implementierung über AUTO_INCREMENT) und Constraints (MySQL bietet nur UNIQUE und NOT NULL). Partitionierung (geplant für Version 5.1) und Rollen- oder Gruppenkonzepte für das Rechtemanagement fehlen vollständig.

Das 1986 auf Ingres folgende Datenbank-Forschungsprojekt der Universität Berkeley wurde Postgres getauft. Als das Projekt im Jahr 1994 auslief, fügte man noch einen SQL-Interpreter zum Code hinzu, benannte die Software um in Postgres95 und veröffentlichte sie unter BSD-Lizenz als Open-Source-Software. 1996 einigte man sich schließlich auf den Namen PostgreSQL.

PostgreSQL ist ein Objekt-relationales Datenbanksystem mit einer großen Nutzer- und Entwickler-Community, für die verschiedene Unternehmen wie Fujitsu oder Sun kommerziellen Support anbieten. Bekannte Nutzer von PostgreSQL sind der Domain-Namen-Registrar Alias, BASF und Fujitsu. Die ZEIT nutzt PostgreSQL zur Speicherung der Metadaten ihres Content-Management-Servers. In verschiedenen Open-Source-Projekten kommt PostgreSQL als Backend zum Einsatz, etwa in der Kollaborationsplattform GForge, ERP-, CRM- und Groupware-Systemen wie EGS, FISTERRA und FacturaLUX sowie in verschiedenen Projekten, die sich der GIS-Implementation von PostgreSQL bedienen.

Spezisch für PostgreSQL sind die so genannten Distributionen: Unternehmen können selbstentwickelte Features zum Datenbank-Code hinzufügen und dann selbst verteilen oder verkaufen - die BSD-Lizenz erlaubt das Schließen des Codes. Beispiele sind Greenplum mit Bizgres und EnterpriseDB.

PostgreSQL zeichnet sich durch eine enorme Funktionsvielfalt aus. Zu den anspruchsvolleren Features gehören MVCC, CHECK Constraints, nutzerdefinierte Funktionen, Datentypen und Operatoren sowie räumliche, Boolesche und Netzwerkadress-Datentypen (IPv4, IPv6, MAC). Als einzige der Open-Source-Datenbanken stellt PostgreSQL die spezialisierten Indexierungs-Algorithmen Expression Index, Bitmap Index und Partial Index zur Verfügung. Daneben gibt es natürlich auch R-Tree, Heap- und Volltext-Indexierung.

PostgreSQL bietet anspruchsvolle Replikation mittels der Slony-Software. Zweiphasiges Commit für verteilte Transaktionen steht ebenfalls zur Verfügung, jedoch bisher ohne Unterstützung des XA-Standards.

Schwächen zeigt PostgreSQL außerdem beim Thema Parallelisierung. Zwar unterstützt die Datenbank mehrere Prozessoren, jedoch kein Multi-Threading. Auch auf eingebaute Clustering- und Load-Balancing-Lösungen muss man verzichten.

PostgreSQL erlaubt, Stored Procedures in fast jeder Programmiersprache zu schreiben. Neben der Standard-Stored-Procedure-Sprache PL/pgSQL stehen C, Java, PL/Perl, PL/PHP, PL/Python, PL/Ruby, PL/sh, PL/TCL und PL/R zur Verfügung.

2005 veröffentlichte die PostgreSQL-Community mit den Versionen 8.0 und 8.1 zwei Updates, die sich vor allem auf die Einführung von Features für anspruchsvolle Unternehmens-Anwendungen konzentrierten: Point-in-Time Recovery, Savepoints, Tablespaces, Bitmap Scan, zweiphasiges Commit, Rollenkonzept für die Rechteverwaltung und Tabellen-Partitionierung. Außerdem läuft PostgreSQL seit 8.0 nativ auf Windows-Plattformen.

Die bislang diskutierten Features sind vor allem in der klassischen Datenverarbeitung interessant, dem Online Transactional Processing (OLTP). Mit immer besseren Möglichkeiten zur Datenerfassung und -speicherung steigt jedoch auch der Bedarf an Lösungen zur Analyse dieser Daten (Online Analytical Processing, OLAP). Dies geschieht mittels so genannter Business-Intelligence-Software, die auf Daten in einem Data Warehouse zugreift. Dabei handelt es sich um eine Datenbank, deren Schema speziell für diesen Einsatz optimiert wird.

Es gibt keine bekannte Fallstudie für den Einsatz von MaxDB oder Firebird im Rahmen eines Data Warehouse. Dasselbe gilt für Ingres, jedoch wird diese Datenbank im Rahmen der DATAllegro Data Warehouse Appliance eingesetzt. MySQL hingegen ist in dem Markt präsent. So nutzt beispielsweise der O'Reilly-Verlag das System im Rahmen einer selbstentwickelten Data-Warehouse-Lösung. Die Business-Intelligence-Anbieter Business Objects und Hyperion (Essbase) unterstützen den Einsatz von MySQL mit ihren Produkten.

Besonders interessant ist jedoch, dass im letzten Jahr komplette Open Source Business Intelligence Software Stacks entstanden sind, also Projekte, die mehrere Open-Source-Anwendungen zusammenfassen, um komplette Business-Intelligence-Lösungen anzubieten. Eines dieser Projekte ist Bizgres. Es enthält die Bizgres-Datenbank (ein um OLAP-Funktionalitäten erweitertes PostgreSQL), das Bizgres Toolkit (KETL für den Extraction-Transformation-Load-Prozess, Mondrian/JPivot für multidimensionale Analyse, JasperReports für Reporting und OpenI als Framework) und Bizgres Clickstream, eine komplette Beispielapplikation zur Analyse von Log-Daten.

Es ist nicht möglich, im Rahmen eines allgemeinen Vergleichs der Datenbanken einen eindeutigen Sieger zu benennen. Alle fünf vorgestellten Open-Source-Datenbanken bieten einen Funktionsumfang, der ihren Einsatz in großen Unternehmens-Anwendungen rechtfertigt. Dabei hat jedoch jedes System seine Stärken und Schwächen, und welche Datenbank die richtige für einen konkreten Anwendungsfall ist, hängt in erster Linie von den Anforderungen des jeweiligen Szenarios ab.

MySQL und PostgreSQL haben in den letzten Versionen Funktionserweiterungen erhalten, welche den Einsatz in anspruchsvollen Unternehmens-Anwendungen ermöglichen. Damit verwischen sich auch die Unterschiede zwischen diesen beiden Datenbanken: Lange hielt sich das Vorurteil, MySQL sei zwar schnell, aber es mangele an Funktionen, während PostgreSQL über anspruchsvolle Features verfüge, aber langsam sei. Nun hat MySQL mit der Version 5.0 im Bereich der anspruchsvollen Features entscheidend aufgeholt, während PostgreSQL schon lange wesentliche Performance-Gewinne zu verzeichnen hat.

MySQL verbindet eine aktive Community und eine riesige Nutzer-Basis mit der Unterstützung und dem Marketing eines kommerziellen Unternehmens. Während der bisherige Erfolg sich hauptsächlich aus dem Einsatz in Web-Anwendungen speiste, bringt die Version 5 Funktionen mit, die MySQL auch für anspruchsvollere Szenarien qualizieren. Unklar ist bisher, welche Auswirkungen sich aus dem Kauf von Innobase (und damit des InnoDB-Tabellentyps) durch Oracle ergeben.

PostgreSQL verfügt über einen enormen Funktionsumfang und legt großen Wert auf Standardkonformität. Der Entwicklungsprozess vollzieht sich ausschließlich im Rahmen der Open-Source-Community. Nichtsdestotrotz gibt es eine Reihe von Unternehmen, die professionellen Support für PostgreSQL anbieten. Einigen fehlenden Features im Bereich der Skalierbarkeit und Hochverfügbarkeit weist die Roadmap hohe Priorität zu. Daneben ist zu bemerken, dass PostgreSQL im Rahmen der Bizgres-Distribution die einzige Open-Source-Datenbank ist, die einen Business Intelligence Stack für den Einsatz im Data Warehouse-Bereich anbietet.

Firebird, Ingres und MaxDB verfügen über eine lange Geschichte im kommerziellen Bereich und versuchen sich nun mit wechselndem Erfolg daran, in die Open-Source-Softwareentwicklung und -Vermarktung einzusteigen.

Firebird ist es gelungen, sich als Open-Source-Projekt eigenständig weiterzuentwickeln, nachdem Borland den InterBase-Code nach einem kurzen Ausug in die Open-Source-Welt wieder schloss. Die Community wächst, die Datenbank verfügt über eine loyale Nutzerbasis und die Weiterentwicklung des Codes wird vorangetrieben. Als Schwachstellen sind derzeit noch die geringe Dokumentation zu nennen sowie die unzureichenden Fähigkeiten des Systems in Bezug auf Hochverfügbarkeit und Skalierbarkeit. Aber das Projekt hat Schwung und eine klare Roadmap, sodass die kommenden Versionen diese Probleme angehen werden.

Ingres lässt kaum Wünsche offen, was Funktionen, Skalierbarkeit und Stabilität anbelangt. Leider wurde die Software lange Jahre vom Anbieter Computer Associates (CA) vernachlässigt, kaum weiterentwickelt und schlecht vermarktet. Der Verkauf an die Investoren von Garnett & Helfrich Capital sowie der Versuch, seit letztem Jahr eine Open-Source-Community um das System aufzubauen, könnten dies ändern und Ingres wieder zu einer ernst zu nehmenden Größe im Datenbank-Markt machen.

SAP DB ist zwar schon seit 2000 Open Source, zog aber dennoch wenig Aufmerksamkeit auf sich. Erst als MySQL 2003 begann, das System als MaxDB zu vermarkten, wuchs das öffentliche Interesse. Die Weiterentwicklung der Datenbank geschieht jedoch weiterhin ausschließlich innerhalb der SAP AG, die nur geringes Interesse für eine Anbindung an die Open-Source-Community zeigt. Da auch keine öffentliche Roadmap vorliegt, ist unklar, ob und wann die fehlenden Funktionen angegangen werden.

Für die nächsten Jahre ist bei MySQL und PostgreSQL eine Konsolidierung auf hohem Niveau zu erwarten, während die Entwicklung der Open-Source-Newcomer Ingres, Firebird und MaxDB spannend bleibt. Die kommenden Themen im Datenbank- Bereich sind OLAP-Fähigkeiten, XML-Unterstützung und die performante Verarbeitung sehr großer Datenmengen (Very Large Databases). Die Zukunft der Open-Source-Datenbanken wird davon abhängen, inwiefern sie innovative Lösungen in diesen Bereichen anbieten können. (odi)


Lizenzen

Firebird: Interbase Public License (IPL), ähnlich Mozilla Public License 1.1

Ingres: Computer Associates Trusted Open Source License 1.1 (CATOSL), von der OSI als Open-Source-Lizenz anerkannt

MaxDB: Duale Lizenzierung (General Public Licence (GPL) und kommerziell)

MySQL: Duale Lizenzierung (General Public Licence (GPL) und kommerziell)

PostgreSQL: BSD-Lizenz

Jutta Horstmann bietet mit ihrer Firma Data in Transit IT-Dienstleistungen rund um Open-Source-Software an und ist technische Projektleiterin des Portals OpenUsability.org.

Anzeige