Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

29.09.2008

Open-Source-Datenbanken im Vergleich

Markus Franz
Quelloffene Datenbanken müssen zumindest in Spezialbereichen den Vergleich mit der kommerziellen Konkurrenz nicht mehr scheuen. Hier ein Überblick über ihre Stärken und Schwächen.

Besonders der schwedische Anbieter MySQL hat sich im Umfeld von Web-Anwendungen einen Namen gemacht - und wurde von Sun Microsystems übernommen. Schon jetzt profitiert die Datenbank vom Lamp-Stack (Linux, Apache, MySQL und PHP etc.). Mit der Akquisition wird sie auch in das Zentrum der Java-Welt vorstoßen und sich hier in den nächsten Jahren noch stärker als bisher etablieren. Sun hat bereits angezeigt, dass die eigenen Produkte wie die Entwicklungsumgebung Netbeans oder der Applikations-Server Glassfish auf die reibungslose Verbindung mit MySQL getrimmt werden.

Neben PostgreSQL steht somit ein weiteres Open-Source-Produkt mit hohem Anspruch der kommerziellen Konkurrenz von Microsoft, Oracle und IBM gegenüber. Zahlreiche andere freie Projekte haben ebenfalls interessante Lösungen entwickelt, so dass sich ein aktueller Blick auf den Markt in jedem Fall lohnt.

Bevor man aber den Einsatz einer freien Software plant, empfiehlt sogar das Bundesministerium für Sicherheit in der Informationstechnik in einem Strategiepapier eine genaue Identifikation der Anforderungen an das System. Dabei kommt es zunächst darauf an, welche Datenmengen verarbeitet werden sollen: Ab mehreren Terabyte kommt man kaum an proprietären Lösungen vorbei. Eine kleine Web-Anwendung dagegen kann mit einer willkürlichen Auswahl problemlos leben.

Die Benutzerverwaltung und ein ausgefeiltes Rechte-Management sind inzwischen Bestandteil eines jeden modernen Datenbank-Servers - hier gibt es kaum noch große Unterschiede.

Deutlicher divergieren hingegen die Features zur Verfügbarkeit: Hier treffen in der Datenbankwelt sehr unterschiedliche Konzepte für Clustering und Backup auf den Kunden.

Allerdings gilt es auch, sich mit der Lizenzpolitik der Open-Source-Anbieter zu beschäftigen, denn MySQL, PostgreSQL, MaxDB, Ingres, Firebird und Derby werden unter verschiedenen Lizenzen vertrieben. MySQL und MaxDB haben beide ein duales Lizenzmodell: Man kann hier zwischen der GPL und einer kommerziellen Lizenz wählen, die dann besseren Support enthält. Hinzu kommt noch, dass MySQL spezielle Enterprise-Produkte im Portfolio hat oder plant, die sich dann auch bezüglich der Features von der freien Community Edition unterscheiden.

PostgreSQL steht unter der BSD-Lizenz. Die Derivate EnterpriseDB beziehungsweise einige Angebote von Sun, das neben MySQL auch PostgreSQL unterstützt, haben im Einzelfall spezielle Lizenzen für die Software. Wesentlich komplizierter stellt sich die Gewährleistung für Datenbanken dar: Hier punkten vor allem MySQL und MaxDB, da hinter diesen große Unternehmen mit professionell organisierten Strukturen stehen.

Dies zahlt sich auch beim Support aus: Für alle großen Open-Source-Datenbanken gibt es Angebote im Stil monatlicher oder jährlicher Subskriptionen. Diese Abonnements beinhalten nicht nur Updates und Garantien für Lebenszyklen, sondern auch unterschiedlich schnelle Hilfe bei Problemen über den Support des Herstellers. Für MySQL bietet sich hier Sun, für PostgreSQL das Unternehmen EnterpriseDB besonders an.

MySQL: Stark im Team mit Linux

Sun hat sich mit MySQL den bekanntesten Vertreter quelloffener Datenbanken gekauft. MySQL ist besonders im Umfeld von Web-Anwendungen stark: Neben einfachem Clustering lässt sich das System sehr unkompliziert administrieren und ist in wenigen Minuten auf einem Server aufgesetzt. Eine Stärke liegt in der Anbindung an Sprachen und Plattformen: Für Java, PHP, Python, Perl, Ruby und C++ sowie C# gibt es unzählige hochwertige Bibliotheken, die eine Verbindung zum Server ermöglichen.

MySQL ist für Windows, Linux, Solaris, Netware, diverse Unix-Derivate und auch für Embedded-Plattformen verfügbar. Die Stärke liegt aber im Zusammenspiel mit Linux: In fast jeder Distribution ist MySQL als optimierte Version enthalten. Gleichzeitig installiert man einfach die MySQL-GUI-Tools, die ein komfortables grafisches Umfeld für die Wartung des Servers anbieten. Einzig beim Backup schwächelt MySQL: Hier benötigt man ein externes Programm, zum Beispiel von Zmanda. Mit der MySQL Workbench gibt es aber neuerdings sogar - wenn auch zunächst nur für Windows - eine Entwicklungsumgebung, mit der u ukomplexe Entity-Relationship-Diagramme direkt auf dem Server abgebildet werden.

Die Hauptkritik erfährt MySQL jedoch aufgrund seiner mangelhaften oder fehlerhaften Unterstützung für richtige Fremdschlüssel, Transaktionen, Stored Procedures, Replikation als Master/Slave und für einige Spezial-Features wie Materialized Views.

Referentielle Integrität, ein Kerngedanke jeder relationalen Datenbank, ist bei MySQL nicht selbstverständlich. Den MySQL-Anwender stört permanent die Auswahl der richtigen Storage Engine, da neben InnoDB und MyISAM eventuell nur eines der zahlreichen anderen Plug-ins die eigenen Anforderungen erfüllt.

Besser soll das erst mit MySQL 5.1 beziehungsweise Version 6.0 werden, wenn den Angaben zufolge die neue Storage Engine "Falcon" alle Probleme löst. Zu hoffen ist auch, dass MySQL dann endlich vollständig kompatibel zum Unicode-Standard ist und eine Möglichkeit bietet, effizient mit XML-Dokumenten umzugehen. Zwar ist MySQL in vielen Features verkümmert, dafür kann die Datenbank aber bei der Performance punkten. Die fehlenden Funktionen spiegeln sich definitiv in der Geschwindigkeit des Servers wieder - kein anderes Produkt ist schneller.

PostgreSQL: Mehr als Relationen

Der Star neben MySQL ist zweifelsohne PostgreSQL. Die Entwickler beschreiben ihr Produkt selbst als "The world‚Äòs most advanced database". Dieser Anspruch nährt sich daraus, dass PostgreSQL besonders auf die korrekte und vollständige Implementierung der SQL-Standards setzt. Ursprünglich wurde das Projekt an der Universität von Berkeley gestartet, später wurde es unter dem Namen Ingres bekannt. PostgreSQL hat sich dann nach einigen Umwegen als freies Kind auf Basis des Ingres-Codes entwickelt.

PostgreSQL gibt es für fast alle Unix-Derivate sowie für Linux. Auf Windows ist der Betrieb immer noch eine schwierige Angelegenheit - hier sollte man von einem produktiven Einsatz absehen. PostgreSQL ist in den meisten Linux-Distributionen ebenfalls mit einer sinnvollen Standardkonfiguration an Bord.

Als eine der wenigen Open-Source-Datenbanken im Testfeld hält sich PostgreSQL an den ANSI-SQL-Standard. So können kompatible Anwendungen unabhängig vom Datenbank-Server ohne großen Mehraufwand integriert werden. Die Schnittstellen sind bei PostgreSQL traditionell gut zu C und den Nachfolgern C++ und C# sowie Java und PHP. Für Python und Ruby sieht es da nicht so gut aus - hier ist der Support für PostgreSQL noch recht instabil.

Besonders verlockend ist PostgreSQL aufgrund der vielen für Unternehmen gedachten Features, die man sonst nur bei Oracle und Co. findet: Neben zahlreichen Index-Typen kann man Funktionen in der eigenen Sprache PL/SQL schreiben. Diese ist dem Oracle-Dialekt sehr ähnlich. Ein ausgefeiltes internes Versionssystem ermöglicht die volle Unterstützung für Acid-Transaktionen, was insbesondere bei Buchungssystemen angenehm auffällt. Dazu kommen zum Beispiel auch Trigger und verschiedene, komplexe Datentypen wie Arrays in Tabellenzellen oder PostGIS für Geosysteme. PostgreSQL kann auch problemlos mit XML-Daten umgehen und diese in einer Datenbank ablegen.

Eigene Objekte und Datentypen sowie Two-Phase-Commit vervollständigen das gute Bild von PostgreSQL. Das System eignet sich damit im Gegensatz zu MySQL nicht nur für Web-Anwendungen, sondern auch für große Unternehmensdatenbanken mit Tausenden Geschäftsdatensätzen. Einen Nachteil bildet jedoch die Geschwindigkeit: PostgreSQL gehört nicht gerade zu den schnellsten Systemen.

Auch die Wartung der Datenbank ist für Umsteiger von MySQL oder Oracle eher gewöhnungsbedürftig: Es gibt zwar verschiedene Template-Tabellen und ein feingranulares Benutzer-Management, dafür aber kaum grafische Admin-Tools. Wer also auf die Kommandozeile verzichten will oder muss, kann nur auf wenige Java- oder Web-gestützte Tools zurückgreifen.

Ingres, Firebird und MaxDB: Die drei Stiefkinder

Neben den Branchengrößen MySQL und PostgreSQL gibt es noch drei weitere wichtige Vertreter offener Datenbanken, die sich mit den Jahren etabliert haben: Ingres, Firebird und MaxDB. Alle Projekte sind geprägt durch eine bewegte Geschichte, die manchmal gleich durch mehrere Softwarehäuser geführt hat.

Wie bereits erwähnt, stammt PostgreSQL vom Ingres-Projekt ab. Das Projekt diente als Basis für eine Vielzahl von Datenbanken, unter anderem auch für Microsofts SQL Server. Heute wird Ingres von der Ingres Corp. vertrieben und weiterentwickelt. Als ältester Vertreter hebt sich Ingres heute nur noch wenig von PostgreSQL ab. Die Feature-Liste ist sehr lang, es gibt praktisch nichts, was mit dieser Datenbank nicht geht. Auch XML und GIS-Support sind standardmäßig enthalten. Insgesamt sollte man aber eher vom Ingres-Einsatz absehen, da das Projekt eingeschlafen wirkt, es gibt keine breite Community. Die Administration ist sehr aufwändig, und es existieren kaum externe Tools. Ein Punkt macht Ingres allerdings für Unternehmen interessant: Das System bietet die viel beachtete Möglichkeit, SQL-Statements parallel von mehreren Prozessoren verarbeiten zu lassen. Das kann kein anderer Anbieter in der Open-Source-Szene so gut wie Ingres. Hier eignet sich das System sicher in einigen Spezialfällen.

Stark bei SAP-Installationen

MaxDB liegt heute wieder beim Softwarehaus SAP. In den ersten Jahren hat SAP diese Datenbank als Basis für anspruchsvolle ERP-Anwendungen entwickelt, sie dann jedoch an MySQL zur Weiterentwicklung übergeben, um sie nun nach einigen Jahren wieder selbst fortzuführen. MaxDB unterstützt zwar nur wenige Features, arbeitet jedoch zuverlässig ohne jeglichen Administrationsaufwand. Zum Glück, denn es gibt so gut wie keine externen Tools für Backup und Wartung. Als Ausgangsbasis für SAP-Installationen ist das System sicher einen Blick wert, da es hier die Stärken der problemlosen Integration ausspielen kann. SAP hat versprochen, in zukünftigen Releases aktiv weitere Features wie zum Beispiel MVCC (Multiversion Concurrency Control) einzuarbeiten. Die Entwicklung geht also weiter.

Der letzte Veteran in der Runde der kleineren Open-Source-Vertreter ist Firebird. Nach dem Niedergang von Interbase hat man das Projekt kurzerhand als Open Source freigegeben und in Russland, der Ukraine und Südamerika die dort traditionell breiten Anwendergruppen integriert. Diese Politik hat sich ausgezahlt, da Firebird immer noch oft eingesetzt wird. Ein solider Grundstock von Funktionen bildet die Basis der Datenbank. Ohne spektakuläre Enterprise-Features kann Firebird immerhin zweiphasige Transaktionen ausführen und versteht perfekte Replikation. Als einzige Datenbank im Testfeld hat Firebird allerdings immer noch Probleme mit Multiprozessor-Systemen: Der Server verschluckt sich gerne zwischen Multithreading und mehreren Prozessen. (ue)

Plus/Minus MySQL

+ Sehr einfache Wartung und Pflege des Systems;

+ hohe Geschwindigkeit und einfaches Clustering;

+ viele anspruchsvolle Tools für Backup und Administration;

+ perfekte Integration in IDEs und Programmiersprachen.

- Mangelhafte Unterstützung für Transaktionen/Trigger;

- keine Verarbeitung von XML- und GIS-Daten;

- die Entwicklung der neuen Storage Engine stockt.

Plus/Minus PostgreSQL

+ Exakte Umsetzung der SQL-Standards (ANSI-SQL);

+ einfacher Umstieg von Oracle durch PL/SQL;

+ umfangreiche Features (Acis-Transaktionen, GIS, XML).

- Komplexere Administration und weniger Tools;

- Anbindung an spezielle Frameworks schwierig.

Was man sich fragen sollte

- Auf welcher Hardware unter welchem Betriebssystem läuft der Datenbank-Server?

- Benötige ich eine Anbindung an spezielle BI-Software?

- Wie werde ich die Datenbank administrieren und warten?

- Möchte ich Cluster bilden und Tausende Benutzer anlegen?

- Welche Lizenzen und Betriebskosten kommen in Frage?

- Haben meine Entwickler Know-how zu der Datenbank?

- Wo erhalte ich Support und Updates für die Software?

IDC über Ingres

Open-Source-Software (OSS) gehört inzwischen zum Mainstream in deutschen Unternehmen, erklärt IDC-Analyst Rüdiger Spies. Einen interessanten Weg hat seiner Meinung nach Ingres eingeschlagen.

Die Firma agiere heute mit einem attraktiven Partnerprogramm im europäischen Wirtschaftsraum. Die Eigenschaft, einen wichtigen Teil der Entwicklungsmannschaft in Europa zu haben, verbindet Ingres mit MySQL/Sun, so dass Europa zum Entstehungs- und Entwicklungsplatz für Open-Source-Datenbanken werde.

Ingres konzentriere sich dabei auf seine Stärken als Anbieter einer relationalen Highend-Transaktionsdatenbank. Allerdings fehle noch die Unterstützung von SAP-Produkten.