HSQLDB - HyperSQL Database
Die komplett in Java geschriebene In-Memory-Datenbank HSQLDB steht unter der BSD-Lizenz und ist sowohl im Open-Source-Umfeld als auch im kommerziellen Bereich weit verbreitet. Die Lösung beansprucht als komplette Installation nur 1,3 Megabyte Platz, funktioniert auf allen Java-fähigen Betriebssystemen und ist komplett kostenlos. Aufgrund des offen liegenden Sourcecodes gibt es auf dem Markt bereits eine Vielzahl unterschiedlicher Anbieter. HSQLDB wird für viele verschiedene Applikationen wie beispielsweise "OpenOffice", "Mathematica" und "InstallAnywhere" als Persistenz-Layer eingesetzt.
Als Einsatzgebiet ist der Bereich der kleinen bis mittelgroßen In-Memory-Datenbanken vorgesehen. Die Lösung kann sich hinsichtlich des Funktionsumfangs bei Weitem nicht mit Enterprise-Lösungen wie TimesTen oder SolidDB messen. Die Tabellen in HSQLDB lassen sich wahlweise als reine In-Memory-Tabellen beziehungsweise als Disk-basierende oder persistente Tabellen anlegen. Bei Letzteren werden zusätzlich drei weitere Typen unterschieden:
-
MEMORY (default): Daten/Objekte sind in Form eines SQL-Scripts auf der Festplatte gespeichert.
-
CACHED: Binäres Dateiformat auf der Festplatte. Nicht alle Daten sind im Memory geladen.
-
TEXT: Tabellendaten sind in CSV-Dateien gespeichert.
Jeder der genannten Disk-basierenden Typen garantiert bei einem Server-Absturz die Persistenz der "committed" Transaktionen. HSQLDB lässt sich entweder im so genannten In-Process- oder im "Server-Mode" betreiben. Während In-Process schneller arbeitet, bietet der Server Mode mehr Flexibilität, da auch via Netzwerk auf die Datenbank zugegriffen werden kann. Beim In-Process-Mode befinden sich die Applikation und die Datenbank im selben Speicherbereich, so dass keine Zeit durch die Latenz auf dem Netzwerk verloren geht.
Die Verwaltung der Datenbank erfolgt entweder über ein einfaches Kommandozeilen-Programm oder ein Web-basierendes Interface. Besonders zu erwähnen ist bei HSQLDB die gute Dokumentation in vielen Büchern. Dort geht es meist um die Verwendung der Datenbank im Zusammenhang mit Frameworks wie "Hibernate" oder "Spring". Die Feature-Liste von HSQLDB hebt besonders den guten SQL-Support hervor. Darüber hinaus bietet HSQLDB umfangreiche Java- beziehungsweise JDBC-Unterstützung, da die Datenbanksoftware komplett in Java geschrieben ist.