---
title: 'Inselraus: Die Datenbank Derby'
url: 'https://tutego.de/blog/javainsel/2006/02/inselraus-die-datenbank-derby'
markdown: 'https://tutego.de/blog/javainsel/2006/02/inselraus-die-datenbank-derby.md'
date: '2006-02-16'
description: 'Derby (http://db.apache.org/derby/) ist ein pures Java-RDBMS unter der freien Apache-Lizenz. Die Datenbank geht auf Cloudscape zurück, was IBM Mitte 2004 auf der LinuxWorld in San Francisco der Apache Software Foundation übergeben hat. (1999 übernahm Informix Software Inc.XE „Informix Software Inc.…'
taxonomy:
  category:
    - Allgemein
---

# Inselraus: Die Datenbank Derby

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Inselraus: Die Datenbank Derby

16.02.2006 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Derby (<http://db.apache.org/derby/>) ist ein pures Java-RDBMS unter der freien Apache-Lizenz. Die Datenbank geht auf Cloudscape zurück, was IBM Mitte 2004 auf der LinuxWorld in San Francisco der Apache Software Foundation übergeben hat. (1999 übernahm Informix Software Inc.XE „Informix Software Inc.“ die Datenbank Cloudscape von Cloudscape Inc., doch IBM übernahm die Datenbanktechnologien von Informix im Jahre 2001.) Ein großer Vorteil von Derby sind neben dem geringen Speicherbedarf die Transaktionsunterstützung, Trigger und SQL-Kompatibilität mit DB2.

#### Download und Vorbereitung

Auf der Download-Seite befinden sich drei Archive, wovon wir eine Datei mit der Endung -bin beziehen (etwa db-derby-10.1.1.0-bin.zip) und auspacken. Wir nehmen zu Testzwecken c:\\Programme\\derby an, sodass in C:\\Programme\\derby\\frameworks\\NetworkServer\\bin die Skripte zum Starten und Stoppen des Servers zu finden sein sollten.

Derby lässt sich in zwei Modi fahren: als eingebettetes Datenbanksystem und als Netzwerkserver. Im Fall eines eingebauten Datenbanksystems ist lediglich die Klasse für den eingebetteten Treiber zu laden und die Datenbank zu bestimmen, schon geht’s los:

```java
Class.forName( "org.apache.derby.jdbc.EmbeddedDriver" );
Connection con = DriverManager.getConnection( "jdbc:derby:OpenGeoDB;create=true" );
```

Wir wollen Derby als Netzwerkserver starten, um mit unterschiedlichen Clients – etwa einem Eclipse-Plugin – auf die Datenbank zugreifen zu können. In diesem Modus horcht Derby über TCP/IP an einem Port (standardmäßig 1527) auf eingehende Verbindungen.

Vor dem Start muss die Umgebungsvariable JAVA\_HOME gesetzt sein, und DERBY\_INSTALL auf das Installationsverzeichnis zeigen. Zunächst gehen wir in `startNetworkServer.bat` und setzen dort die nötigen Umgebungsvariablen:

Listing 20.1 `startNetworkServer.bat`

… `@REM` — This file for use on Windows systems

```
@REM ———————————————————

@echo off
```

set JAVA\_HOME=C:\\Programme\\Java\\jdk1.5.0 set DERBY\_INSTALL=C:\\Programme\\derby\\ …

Ebenso setzen wir in `startNetworkServer.bat` die Umgebungsvariablen passend, da wir den Server auch wieder stoppen wollen.

#### Server-Start und weitere Tools

Nun lässt sich – etwa mit Doppelklick – das Skript `startNetworkServer.bat` starten, und die Datenbank quittiert freundlich:

Der Server ist bereit, am Port 1527 Verbindungen zu akzeptieren.

Das Programm sysinfo zeigt Versionsnummer und Klassenpfad an. Mit dem interaktiven Werkzeug ij lassen sich SQL-Anweisungen abschicken und so die ersten Versuche mit der Datenbank aufnehmen. dblook extrahiert das Datenbankschema.

#### JDBC-Treiber

Für einen JDBC-Zugriff ist ein JDBC-Treiber nötig, der bei Derby für eine Client-/Server-Kommunikation nicht dabei ist, denn Derby nutzt die Distributed Relational Database ArchitectureXE „Distributed Relational Database Architecture“ (DRDAXE „DRDA“), die auch DB2 verwendet. DRDA ist eine von der Open GroupXE „Open Group“ definierte Möglichkeit, von einem Client eine entfernte relationale Datenbank anzusteuern. Auf <http://www-128.ibm.com/developerworks/db2/downloads/jcc/> ist die Datei db2jcc\_for\_derby.zip aufgeführt, die – nach einer Registrierung – auf der nächsten Seite unter »Released product: IBM Cloudscape (IBM DB2 JDBC Universal Driver, for Cloudscape/Derby)« heruntergeladen werden kann. Die beiden Jar-Dateien aus dem Archiv, db2jcc.jar und db2jcc\_license\_c.jar, sind in den Klassenpfad aufzunehmen. Für den Client-/Server- Modus von Derby benötigen wir keine weiteren Jar-Dateien, insbesondere keine aus dem lib-Verzeichnis von Derby.

Kategorien: [Allgemein](https://tutego.de/blog/javainsel/category/allgemein/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)
