Apache Derby
Apache Derby ist ein Projekt der Apache Software Foundation, das ein gleichnamiges Java-basiertes, relationales Datenbank-Management-System entwickelt. Derby gehört zu den leichtgewichtigen Datenbanken, da es bei der Auslieferung nur zwei Megabyte Größe hat und sehr einfach installierbar ist. Derby kommt hauptsächlich, aber nicht ausschließlich, in Java-Projekten zum Einsatz.
Apache Derby | |
---|---|
Basisdaten | |
Hauptentwickler | Knut Anders Hatlen et al. |
Entwickler | Apache Software Foundation |
Erscheinungsjahr | 1997, 29. März 2006[1] |
Aktuelle Version | 10.16.1.1[2] (15. Juni 2022) |
Betriebssystem | Plattformunabhängig |
Programmiersprache | Java[3][1] |
Kategorie | Datenbank, Java |
Lizenz | Apache-Lizenz, Version 2.0 |
db.apache.org/derby/ |
Geschichte
Die Software wurde ursprünglich von der Firma Cloudscape Inc., in Oakland (Kalifornien) unter dem Namen JBMS entwickelt. Die erste Version kam 1997 heraus. Das Produkt wurde später in „Cloudscape“ umbenannt.
1999 wurde Cloudscape von der Firma Informix Software Inc. gekauft, deren Datenbanksparte 2001 von IBM übernommen wurde. 2004 übereignete IBM die Cloudscape-Software der Apache Software Foundation unter dem Namen „Derby“ als Freie Software.
Ab Anfang 2005 beteiligte sich auch Sun Microsystems an Derby. 2006 wurde Derby als Java DB im Java Development Kit ab Java 6 integriert.
Produktmerkmale
Die wesentlichen Merkmale von Derby sind:
- Größe
- Der Datenbankkern in derby.jar ist komprimiert etwa 600 kB groß.
- Plattformunabhängigkeit
- Da Derby zu 100 % in Java realisiert ist, läuft es auf einer Vielzahl von Plattformen
- Einfachheit
- Derby braucht keinen Administrator, es lässt sich einfach installieren und integrieren
- Standardbasiert
- Starke Unterstützung von Standards (Java, JDBC und ANSI SQL). Derby unterstützt die Standards SQL92, SQL99 vollständig sowie SQL2003, SQL2006 und SQL2008 teilweise. Als Programmierschnittstelle für Java wird JDBC in den Versionen JDBC 3.0 bis 4.2 unterstützt. Darüber hinaus werden die Java-Standards JCE, JME, JSR-169 (JDBC Optional Package for CDC/Foundation Profile), Compact Profile2 (JEP 161) und OSGi unterstützt. Als Programmierschnittstelle für C, C++ etc. wird über das XA/DRDA-Protokoll ODBC unterstützt.
- Kompatibel
- Die Inhalte von Derby-Datenbanken sind betriebssystemübergreifend kompatibel. Man kann also beispielsweise auf Betriebssystem A eine Datenbank erstellen, die Dateien auf ein Betriebssystem B kopieren und dort weiterarbeiten. Bei den meisten herkömmlichen Datenbanken müsste dagegen erst ein sogenannter Dump der Datenbank auf A erstellt werden, der mit einem Import- oder Recovery-Werkzeug auf B eingespielt werden müsste.
- Verschlüsselung
- Derby unterstützt die Verschlüsselung sowohl der Kommunikation mit der Datenbank als auch der Datenbank-Files selbst.
- Stored Procedures und Triggers in Java
- Da die Datenbank selbst in Java geschrieben ist, ist es möglich Stored Procedures, Datenbanktrigger und Tabellen-Funktionen in Java zu schreiben. Damit ist es beispielsweise möglich, Constraints der Businesslogik in der Datenbank wiederzuverwenden.
Apache Derby in Java-Anwendungen
Java-Anwendungen sprechen Derby über die JDBC-Schnittstelle an. Derby kennt einen eingebetteten JDBC-Modus und einen Netzwerk-JDBC-Modus. Im ersten Fall läuft die Derby Datenbank auf derselben Java Virtual Machine und im selben Prozess wie die Applikation. Bei einer im Netzwerk-JDBC-Modus (Typ-4 JDBC Treiber) betriebenen Derby-Datenbank hingegen greifen andere Java-Anwendungen über TCP/IP auf einen Derby Netzwerk Server zu, der wiederum über DRDA auf die Derby-Datenbank zugreift. Hierbei kann Derby auch als Master-Slave-Cluster betrieben werden, um eine höhere Ausfallsicherheit zu erreichen.
In einem dritten Modus kann Derby die Datenbank statt auf der Festplatte auch im Hauptspeicher halten. Dieser In-Memory-Datenbank-Modus ist insbesondere bei Tests vorteilhaft oder wenn die Daten nicht sofort persistiert werden müssen, weil bei dieser Betriebsart der einzelne Datenbankzugriff weitaus schneller abläuft als in den anderen Modi. Da Derby in allen drei Modi die gleiche Datenbankstruktur verwendet, kann etwa eine eingebettet angelegte Datenbank ebenso als Netzwerkdatenbank oder als In-Memory-Datenbank betrieben werden; sie wird dazu nur anders gestartet.
Werkzeuge
- ij
- zum Ausführen von JDBC-/SQL-Skripten
- dblook
- zum Extrahieren des Datenbankschemas
- sysinfo
- Hilfsprogramm, um Versionsnummern und den Klassenpfad anzuzeigen
- Eclipse Plug-in
- Datenbankwerkzeuge aus Eclipseaufrufen, Derby-Sicht hinzufügen
Siehe auch
- HSQLDB – alternative kleine Java-Datenbank
- McKoi
- Eingebettetes Datenbanksystem
Weblinks
- offizielle Webpräsenz mit Produktinformation, Dokumentation
- SQL-Unterstützung: wiki.apache.org/db-derby/SQLvsDerbyFeatures
- JDBC-Unterstützung: wiki.apache.org/db-derby/JDBCSupport
- projects.apache.org. (abgerufen am 8. April 2020).
- lists.apache.org. (abgerufen am 10. Oktober 2022).
- The apache_derby Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 26. September 2018).