Borlands einstiges Flaggschiff gehört seit letztem Sommer zur freien Open-Source-Welt. Die SQL-Datenbank ist ungewöhnlich standardkonform, bietet viele Funktionen aus dem Enterprise-Bereich und eignet sich damit nicht nur fürs Web, sondern auch als Unternehmens-Datenbank.
Dem Klassiker und Pionier unter den relationalen Datenbanksystemen drohte in den letzten Jahren die unscheinbare Rolle einer bloßen Dreingabe zu Borlands Entwicklungstools wie Delphi oder JBuilder. Seit der im Sommer 2000 erschienenen Version 6.0 schmückt sich Interbase mit dem schick gewordenen Attribut Open Source. Wird es der freien Version gelingen, verlorenen Boden wieder gut zu machen und unter Linux – vielleicht sogar gestützt durch Borlands Kylix – die angestammten Systeme MySQL und PostgreSQL ernsthaft in Bedrängnis zu bringen?
Standardkonformes Verhalten erwünscht
Wie viele andere Konkurrenzprodukte ist Interbase zunächst nur ein relationales Datenbanksystem in Client-Server-Architektur mit SQL-Unterstützung. Nicht ganz alltäglich ist jedoch die Unterstützung des gesamten Basisumfangs des ANSI-SQL/92-Standards sowie der meisten erweiterten SQL-Möglichkeiten – hier haben viele andere verbreitete Datenbanksysteme auch heute noch beträchtliche Lücken.
Die solide Implementierung schlägt sich in der Feature-Liste nieder: Neben Tabellen lassen sich Ansichten (Views) definieren, die einen transparenten Zugriff auf einen Teil einer Tabelle erlauben. Die Unterstützung von Domains erleichtert die Definition von Feldern mit eingeschränkten Wertebereichen oder ermöglicht es, an zentraler Stelle Vorgaben für die Datentypen sich ähnelnder oder zusammengehöriger Felder zu treffen. Eine Besonderheit ist die Unterstützung von Arrays in bis zu 16 Dimensionen. Wird ein Feld als Array definiert, lassen sich in ihm ganze Matrizen speichern – eine nicht nur für mathematische Anwendungen sicherlich interessante Möglichkeit.
Mehr Features
Um zu gewährleisten, dass die gespeicherten Daten in sich schlüssig sind, überprüft Interbase die Daten anhand ihrer referenziellen Integrität. Hierzu müssen die Beziehungen (Relationen) zwischen den Tabellen auf Datenbankebene festgelegt werden. Außerdem lassen sich für jede Spalte einer Tabelle gewisse Beschränkungen (Constraints) definieren, die zusätzliche einfache Überprüfungen bei Einfügung oder Änderung eines Datensatzes ermöglichen.
Noch wesentlich mächtigere Möglichkeiten ergeben sich durch den Einsatz von Triggern: Für die Ereignisse Neuer Datensatz, Datensatz geändert und Datensatz gelöscht in einer Tabelle sind spezielle Routinen in der Datenbank definierbar, die komplexe Prüfungen oder fast beliebige Aktionen durchführen.
Die Routinen für solche anwenderdefinierten Routinen werden in derselben Sprache verfasst, die auch für Stored Procedures verwendet wird, Borland nennt sie schlicht “Interbase procedure and trigger language”. Gespeicherte Prozeduren sind – wie von vergleichbaren Datenbanksystemen bekannt – Unterprogramme. Sie werden von der Datenbank selbst ausgeführt und können auch ganze Tabellen als Antwort liefern.
Die verwendete Sprache erinnert an eine Mischung aus SQL und Pascal und ist sehr mächtig: So stehen ihr viele eingebaute Hilfsfunktionen für allerlei Anwendungen zur Verfügung; selbstverständlich kann diese Funktionsbibliothek auch durch Zusatzmodule um eigene Funktionen erweitert werden. Unabhängig davon, ob man Datenbanken nun manuell oder über Stored Procedures ändert: Alle Operationen werden im Zusammenhang einer Transaktion durchgeführt.
Durch den Einsatz von Zwei-Phasen-Commits werden sogar verteilte Datenbanken unterstützt. Interbase verwendet hierbei eine Multi-Generational Architecture (MGA), die eine hohe Geschwindigkeit speziell bei gleichzeitigem Zugriff durch viele Anwender sicherstellen soll.
Ein weiteres interessantes Merkmal sind die Ereignisse (Events): Innerhalb einer Stored Procedure kann mit dem Kommando POST_EVENT ein Ereignis ausgelöst werden. Anwendungen, die sich zuvor für dieses Ereignis registriert haben, erhalten nun eine entsprechende Benachrichtigung. Das ist eine interessante Lösung Last von der Datenbank zu nehmen. Um beispielsweise auf Änderungen an einer Tabelle reagieren zu können, mussten die Anwendungen bisher selbst die Datenbank periodisch abfragen.
Viel Licht …
Interbase war Ende der 80er Jahre der Pionier bei der Unterstützung von BLObs. Dieser Vorsprung wurde inzwischen ausgebaut, so dass heutzutage beispielsweise so genannte BLOb-Filter definiert werden können. Diese behandeln alle BLOb-Daten vor einem Lese- oder Schreibzugriff. Hiermit lassen sich Daten vor der tatsächlichen Speicherung komprimieren, bei Abruf automatisch in verschiedene Formate konvertieren und anderes mehr. Bei diesem Umfang ist es schon fast selbstverständlich, dass Interbase auch Unicode unterstützt. Damit steht dem internationalen Einsatz in verschiedensten Ländern nichts im Wege.
Zusammengefasst klingt das alles nach einem Datenbanksystem, das kaum Wünsche offen lässt. Warum ist es dann in Linux-Kreisen noch eher unbekannt? Denn gerade Views und Stored Procedures ermöglichen erst einen ernsthaften Einsatz abseits von Webservern in herkömmlichen lokalen Netzen, wofür Systeme wie MySQL nicht gerade geeignet sind. Und tatsächlich sieht Borland auch weniger die freien Datenbanksysteme, sondern eher Microsofts SQL Server, Oracle 8i und begrenzt auch IBMs DB2 als Hauptkonkurrenten.
Es darf zwar bezweifelt werden, dass Interbase tatsächlich so weit nach oben reicht wie die genannten Konkurrenzprodukte, aber für das Mittelfeld und damit für die meisten Anwendungsfälle von Datenbanken ist es zweifellos bestens geeignet. Eine sehr einfache Installation, geringe Hardware-Anforderungen und sehr hohe Zuverlässigkeit – nicht zuletzt gestützt durch über 15 Jahre Erfahrung aus dem praktischen Einsatz – sprechen deutlich für dieses Datenbanksystem. Genau diese Punkte waren auch in der Vergangenheit ausschlaggebend dafür, dass Firmen wie Boeing, Motorola oder Nokia, auf Interbase setzen.
… aber auch Schatten
Auf eine lange Entwicklung kann Interbase tatsächlich zurückblicken. Im Jahre 1985 gründeten Ann Harrison und Jim Starkey die Firma Interbase und veröffentlichten die erste Version des gleichnamigen Datenbanksystems. 1991 wurde die kleine Firma von Ashton-Tate übernommen, die selbst nur Monate später von Borland geschluckt wurde. Zu dieser Zeit war Interbase bereits ein sehr gut etabliertes Produkt, Lizenzen kosteten zeitweise 10000 Dollar und mehr.
Doch es folgte eine Zeit häufiger Management-Fehler bei Borland und so versagte auch das Marketing für das Produkt Interbase. Kurz vor Weihnachten 1999 befand die Führung Interbase überraschend für nicht mehr profitabel genug, was angeblich nachweislich falsch war. Im Zuge der allgemeinen Linux- und Open-Source-Welle wurde beschlossen Interbase als Open-Source-Projekt auszugliedern. Eine vollständige Auslagerung in eine neue Firma – bestehend aus ehemaligen Interbase-Entwicklern – scheiterte jedoch an Borlands Ansprüchen. Stattdessen blieb Interbase selbst im Besitz von Borland und am 25. Juli 2000 erfolgte – mit einem Monat Verspätung – die Freigabe der Quelltexte unter einer der MPL vergleichbaren Lizenz.
Auferstanden aus der Asche
Die Ehemaligen gründeten zusammen mit Ann Harrison die Organisation IBPhoenix, die sich professionellen Support für Interbase sowie die Weiterentwicklung unter dem Projektnamen Firebird auf die Fahnen geschrieben hat.
Eines der ersten Ziele war es, mehr Plattformen zu unterstützen. Borland selbst bietet Interbase für Win32, Linux/x86 sowie Solaris/Sparc an; nach Freigabe der Quelltexte war es im Zuge des Firebird-Projekts schnell auf FreeBSD und Mac OS X portiert. Die in C++ geschriebene Datenbank-Engine ist relativ portabel und auch sonst glücklicherweise halbwegs kompakt und effizient.
Das bestätigt sich auch in den Hardware-Anforderungen: Der Server ist, mit seinem Festplatten-Bedarf von nicht mal 10 MByte für den gebotenen Funktionsumfang verhältnismäßig leichtgewichtig. An den Prozessor und den Hauptspeicher stellt Interbase ebenfalls keine allzu großen Ansprüche. Wie bei anderen Datenbanksystemen auch spielen in der Praxis die Leistungen von Festplatten und Netzwerk die zentrale Rolle.
Einem Drang sollte man aber widerstehen: dem Einsatz von Multiprozessor-Systemen. Der Datenbank-Kern kann zwar mehrere Threads verwenden, aber die Schreibzugriffe werden über einen Mutex im Locking Manager serialisiert – ein zusätzlicher Prozessor bringt also keine Vorteile.
Borland bietet den Server in zwei Varianten an: Classic und Super Server. Der klassische Server verwendet für jede Client-Verbindung einen eigenen Prozess, während der Super Server hierfür Threads einsetzt und daher von einem gemeinsamen Cache profitieren kann.
Neben den Servern und Bibliotheken für Clients (zur Server-Kommunikation) enthalten die Pakete noch eine Reihe von Kommandozeilen-basierten Hilfsprogrammen: Mit Isql lassen sich SQL-Befehle per Kommandozeile oder externer Skript-Datei an den Server übergeben. Zur Verwaltung der Sicherheitsfeatures dient Gsec; mit Gbak steht ein Backup-Tool zur Verfügung, während Gfix defekte Datenbanken reparieren kann (oder dies zumindest versucht). Gsplit verteilt große Datenbanken auf mehrere Medien (etwa Disketten) und Gstat schließlich liefert statistische Informationen zur Datenbank.
Leider gibt es für Linux noch keine wirklich vollständigen Programme für die Administration oder Dateneingabe. Derzeit stehen mit Ibase Admin und Pirat nur zwei einfache Web-basierte Lösungen zur Verfügung. Es bleibt aber die Hoffnung, dass in naher Zukunft eine ähnliche Auswahl an guten Tools zur Verfügung stehen wird, wie das für Win32 ja bereits seit einiger Zeit der Fall ist. Da viele dieser Tools in Delphi geschrieben sind, sind entsprechende Linux-Portierungen mit Hilfe von Kylix ziemlich wahrscheinlich.
Kontaktfreudig
Sehr gut sieht es aber bereits jetzt aus, wenn man die Liste der Software mit Interbase-Unterstützung betrachtet: Borland selbst bietet für alle Plattformen ein C-basiertes API an, das sich von vielen Compilern mit C-Linking-Möglichkeit wie Free Pascal (alternativ zu komfortableren Datenbank-Komponenten) nutzen lässt.
Für Borlands eigene Produkte ist die Unterstützung erwartungsgemäß sehr gut: Unter Win32 bekommen Delphi- und C++-Builder mit IBX entsprechende Komponenten spendiert, unter Linux unterstützt Kylix Interbase via DBExpress und für JBuilder und Java generell gibt es mit Inter Client einen JDBC-Treiber.
Doch auch andere Sprachen müssen nicht zurückstehen: Interbase ist derzeit zusätzlich von Perl (auch über DBI) sowie Python und PHP aus nutzbar. Für C++ gibt’s komfortable freie Klassenbibliotheken, Win32- und Unix-ODBC-Treiber stehen zur Verfügung und auch Zope und AOLServer können mit diesem Datenbanksystem zusammenarbeiten.
Unterm Strich ist Interbase – auch unter Linux – eine mehr als nur interessante Alternative zu MySQL beziehungsweise PostgreSQL. Spannend ist die Frage, ob das in Kürze erscheinende Kylix einen Schub für Interbase bringen wird. Viele Anwender von Borlands Windows-Entwicklungstools verwenden Interbase nicht zuletzt wegen der hervorragenden Schnittstellen-Unterstützung, die in Kylix entsprechend ausfallen wird.
Die Entwicklungsteams von Borland und Firebird werden in der Zwischenzeit aber auch nicht schlafen: Für die nächsten Versionen wartet eine Reihe weiterer Verbesserungen auf die Anwender. Hierzu zählen lokale Server- Zugriffe über Unix-Sockets und direkte Festplatten-Zugriffe zur Steigerung der Geschwindigkeit. Die letzten Lücken in der erweiterten SQL-Unterstützung sollen geschlossen werden und die Trigger werden noch leistungsfähiger. Außerdem hat man nun die Notwendigkeit zur Unterstützung von 64-Bit-Dateioffsets erkannt, wobei erst der Linux-Kernel 2.4 dies auch auf 32-Bit-Plattformen ermöglicht.
Wird Borland es schaffen, die freie Entwicklergemeinde für die Weiterentwicklung von Interbase zu begeistern? Andere große Projekte wie Mozilla oder Star Office, die auch erst spät Open Source wurden, scheiterten dabei bislang. Andererseits ist die Zukunft durch Borland und nicht zuletzt IBPhoenix erst einmal gesichert. Und solange Entscheidungsträger auf technische Aspekte achten und nicht nur Hypes hinterherlaufen, wird Interbase auch seine Anwender haben. (uwo)
Infos |
| Offizielle Website: http://www.interbase.com/ |
Der Autor |
| Wenn Sebastian Günther nicht gerade durch seinen Job als technischer Geschäftsführer der Areca Systems GmbH in München, einem Dienstleister rund um Netzwerke und natürlich Linux, ausgelastet ist, unterstützt er aktiv den Ausbau von Free Pascal zu einer vollwertigen freien Alternative zu Kylix. |






