Freie Datenbanken im Unternehmenseinsatz: Ein Vergleich

Seite 2: Freie Datenbanken im Unternehmenseinsatz: Ein Vergleich

Inhaltsverzeichnis

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)