Da staunen selbst die ganz Großen - Teil 1

08.07.2004
Kostenlose Opensource-Datenbanken werden im professionellen Bereich immer beliebter. Sie bieten einen ähnlichenFunktionsumfang wie kommerzielle Systeme - und das bei erheblicher Kostenersparnis und höherer Flexibilität. Von Klaus Manhart

Bis vor kurzem war die Datenbank-Welt 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 Unternehmen in aller Welt Opensource-Datenbanken durch. "Opensource" bedeutet, dass es für jeden möglich ist, solche Software zu benutzen und zu verändern ohne irgendetwas zu bezahlen.

Die Lizenzbasis bildet meistens die GPL (GNU General Public License). Sie schreibt lediglich vor, dass Derivate von GPL-Software ebenfalls unter GPL stehen müssen. Und das heißt: Entwickelt ein Unternehmen eine Anwendung auf Basis einer GPL-Datenbank, muss der Quellcode frei verfügbar sein. Die BSD-Lizenz (Berkeley Software Distribution) ist noch lockerer: Hier darf lediglich der Copyright-Vermerk nicht entfernt werden, ansonsten kann man alles mit der daraus entwickelten Software tun und lassen - inklusive Closed Source daraus machen und verkaufen. Ähnliches gilt für die neuere MPL (Mozilla Public License).

Das Opensource-Modell wirkt sich insbesondere im Unternehmensbereich positiv aus. Dadurch, dass der Quellcode offen ist, kann die Software ü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.

Vorteile von Opensource

Software mit offenem Quellcode gilt aber auch als zuverlässiger im Vergleich zu den kommerziellen Systemen, da die Kontroll- und Überprüfungsmechanismen stärker ausgeprägt sind. Entwickler von Opensource-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.

Schließlich ist auch das Kostenargument zu bedenken. Kein Nutzer von Opensource-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 Opensource.

Wer setzt Opensource-Datenbanken ein?

Vieles spricht also für Opensource-Software - kein Wunder, dass weltweit die namhaftesten Unternehmen und Organisationen freie Software nutzen: Das reicht von alteingesessenen Konzernen wie Daimler Chrysler, Ikea, Sixt, Sony und Boeing über Internet-Größen wie Yahoo, Cisco und Amazon bis hin zum Zentralverband des Deutschen Handwerks, der Königin von England und dem Weltkirchenrat.

Im öffentlichen Sektor setzen neben den Regierungen von Norwegen und Großbritannien auch die Bundesregierung und die Europäische Kommission auf den verstärkten Einsatz von Opensource. Damit sollen die Kosten für ehrgeizige E-Gouvernment-Projekte deutlich gesenkt werden.

Gründe für Opensource-Datenbanken

Nach einer Studie von Berlecon Research zum "Einsatz von Opensource-Software in Unternehmen und öffentlichen Institutionen" aus dem Jahr 2002 waren Stabilität und Sicherheit die wichtigsten Gründe, warum sich Firmen für den Einsatz von Opensource-Software entscheiden. Das Kostenargument folgte an dritter Stelle. Offenheit und Modifizierbarkeit des Quellcodes spielten hingegen nur eine untergeordnete Rolle. Am weitesten verbreitet war nach dieser Studie die Nutzung von Opensource-Software als Server-Betriebssystem. An zweiter Stelle folgte der Einsatz für Datenbanken. Opensource-Datenbanken wie MySQL sind dabei insbesondere bei Internet-Anwendungen beliebt, wenn es darum geht, dynamische Inhalte zu speichern. Umfangreichere freie Datenbanken wie PostgreSQL oder die SAP DB sind darüber hinaus aber auch für den Einsatz als unternehmensweite Datenbank-Plattformen geeignet.

Besonders attraktiv sind Opensource-Datenbanken nach einhelliger Meinung der Analysten für kleine und mittelständische Unternehmen. 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 einschlägiger sein als bei größeren Firmen. So schlägt beispielsweise die Oracle9i mit mindestens 300 Dollar je Nutzerlizenz zu Buche - und ist damit für viele fast unerschwinglich. Hinzu kommt noch die Komplexität der Implementierung, Installation und Anpassung der technischen und Business-Prozesse. Im Vergleich dazu sind Opensource-Datenbanken wie MySQL nicht nur kostengünstiger, sondern auch wesentlich einfacher zu installieren und besser an Unternehmensbedürfnisse anzupassen.

Relationale Datenbanken

In diesem Beitrag werden die vier wichtigsten Opensource-Datenbank-Server zum Einsatz im Unternehmensbereich vorgestellt: MySQL, PostgreSQL, SAP DB und Firebird. Alle diese Datenbanken setzen unterschiedliche Schwerpunkte, die sich aufgrund 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. Sie verwalten die Informationen in Tabellen, einem sehr intuitiven, leicht verständlichen Darstellungsmittel.

Die Tabellen werden durch definierte Beziehungen (Relationen) 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 den Anwendern 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 Datenbank-System implementiert. Die meisten vermarkteten und im Einsatz befindlichen Opensource-Datenbanken unterstützen SQL92.

Trotz dieser Normierung weicht jedes Datenbank-System vom zu Grunde liegenden Standard mehr oder weniger ab. Dieses "mehr oder weniger" kann eine entscheidende Basis bei der Auswahl eines entsprechenden Systems sein. So bieten manche Datenbank-Systeme über die Standard-SQL-Features hinaus - wie Tabellen anlegen, Datensätze einfügen, suchen und modifizieren - zusätzliche Möglichkeiten etwa zur Gewährleistung sicherer Transaktionen oder zum automatisierten Arbeiten mit Tabellen. Welche Features die vier vorgestellten Opensource-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.

"Sub-Queries" werden verwendet, wenn das Ergebnis einer Abfrage von dem Ergebnis einer anderen Abfrage 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 Tabelle mit dem SELECT-Kommando. Die auf diese Art und Weise 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 Gesamtpaketes 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 Opensource-Datenbanken beherrschen: Read Uncommitted, Read Committed, Repeatable Read und Serializable.

Proprietäre und standardisierte Schnittstellen

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 das Server-Funktionen aufgerufen werden können. Bei der Auswahl einer Datenbank ist immer zu bedenken, mit welchen Programmiersprachen diese Schnittstellen angesprochen werden können.

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 werden über einen Treibermanager Datenbanktreiber geladen, 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 den Anwendern 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 Javaprogrammen 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.

Die Fortsetzung dieses Artikels - mit ausführlichen Features der Daten-bankmanagement-Systeme MySQL, PostgreSQL, SAP DB und Firebird - lesen Sie nächste Woche in der ComputerPartner-Ausgabe 29/04.

tecchannel-Compact "ITechnologie-Ratgeber 2004"

tecChannel.de ist die Nummer eins der Online-Fachmedien in Deutschland (IVW 1/04). Auf www.tecChannel.de finden Sie mehr als 1.700 Beiträge und über 14.000 News zu allen Themen der IT. Das kostenlose Online-Programm wird ergänzt durch das noch umfangreichere kostenpflichtige tecCHANNEL-Premium- und die tecCHANNEL-Compact-Buchreihe.

Im neuen tecCHANNEL-Compact "ITechnologie-Ratgeber 2004" finden professionelle Anwender auf über 220 Seiten Grundlagen, Know-how-, Ratgeber- und Praxisbeiträge.

Insbesondere im Server-, Desktop- und Mobile-Bereich steht ein Generationswechsel bevor. Die Einführung von PCI Express und neuen CPUs, wie Pentium 4 "Prescott" und Pentium M "Centrino", 64-Bit-Computing, sowie der DDR2-Speichertechnologie und Serial Attached SCSI verunsichert die IT-Branche. Die tecCHANNEL-Redaktion beantwortet die Fragen, welche Technologien zukunftssicher sind und die bevorstehenden Investitionen schützen und was beim Umstieg zu beachten ist.

Die Ausgabe ist ab sofort im Handel zu haben oder direkt im Online-Shop unter www.tecChannel.de/shop für 9,90 Euro (gegen Rechnung) inklusive Versandkosten zu bestellen.

Zur Startseite