{"id":10,"date":"2006-02-16T12:40:00","date_gmt":"2006-02-16T12:40:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=10"},"modified":"2006-02-16T12:40:00","modified_gmt":"2006-02-16T12:40:00","slug":"inselraus-die-datenbank-derby","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2006\/02\/inselraus-die-datenbank-derby\/","title":{"rendered":"Inselraus: Die Datenbank Derby"},"content":{"rendered":"<p><span class=\"Kursiv\">Derby<\/span> (<span class=\"Kursiv\">http:\/\/db.apache.org\/derby\/<\/span>)  ist ein pures Java-RDBMS unter der freien Apache-Lizenz. Die Datenbank geht auf <span class=\"Kursiv\">Cloudscape<\/span> zur\u00fcck, was IBM Mitte  2004 auf der LinuxWorld in San Francisco der Apache Software Foundation  \u00fcbergeben hat. (1999 \u00fcbernahm <span class=\"Kursiv\">Informix Software Inc.XE &#8222;Informix  Software Inc.&#8220;<\/span> die Datenbank Cloudscape von <span class=\"Kursiv\"> Cloudscape Inc.<\/span>, doch IBM \u00fcbernahm die Datenbanktechnologien von Informix im Jahre 2001.) Ein gro\u00dfer Vorteil von Derby sind neben dem geringen Speicherbedarf die Transaktionsunterst\u00fctzung, Trigger und SQL-Kompatibilit\u00e4t mit DB2. <\/p>\n<h4>Download und Vorbereitung<\/h4>\n<p class=\"MsoNormal\">Auf der Download-Seite befinden sich drei Archive, wovon  wir eine Datei mit der Endung <span class=\"Kursiv\">-bin<\/span> beziehen (etwa <span class=\"Kursiv\">db-derby-10.1.1.0-bin.zip<\/span>) und auspacken. Wir nehmen  zu Testzwecken <span class=\"Kursiv\">c:\\Programme\\derby<\/span> an, sodass in <span class=\"Kursiv\">C:\\Programme\\derby\\frameworks\\NetworkServer\\bin<\/span> die  Skripte zum Starten und Stoppen des Servers zu finden sein sollten.<\/p>\n<p class=\"MsoNormal\">Derby l\u00e4sst sich in zwei Modi fahren: als eingebettetes Datenbanksystem und als Netzwerkserver. Im Fall eines eingebauten Datenbanksystems ist lediglich die Klasse f\u00fcr den eingebetteten Treiber zu laden und die Datenbank zu bestimmen, schon geht\u2019s los:<\/p>\n<p class=\"ListingStandard\"><span lang=\"EN-GB\">Class.forName( &#8222;org.apache.derby.jdbc.EmbeddedDriver&#8220; );<br \/>Connection con = DriverManager.getConnection( &#8222;jdbc:derby:OpenGeoDB;create=true&#8220; );<\/span><\/p>\n<p class=\"MsoNormal\">Wir wollen Derby als Netzwerkserver starten, um mit unterschiedlichen Clients \u2013 etwa einem Eclipse-Plugin \u2013 auf die Datenbank zugreifen zu k\u00f6nnen. In diesem Modus horcht Derby \u00fcber TCP\/IP an einem Port (standardm\u00e4\u00dfig 1527) auf eingehende Verbindungen.<\/p>\n<p class=\"MsoNormal\">Vor dem Start muss die Umgebungsvariable <span class=\"ListingZeichen\"><span style=\";font-size:9;color:purple;\"  > JAVA_HOME<\/span><\/span> gesetzt sein, und <span class=\"ListingZeichen\"> <span style=\";font-size:9;color:purple;\"  >DERBY_INSTALL<\/span><\/span> auf  das Installationsverzeichnis zeigen. Zun\u00e4chst gehen wir in <span class=\"Kursiv\"> startNetworkServer.bat<\/span> und setzen dort die n\u00f6tigen Umgebungsvariablen:<\/p>\n<p class=\"Listingunterschrift\">Listing 20.1    startNetworkServer.bat<\/p>\n<p class=\"ListingStandard\">&#8230;<br \/>@REM &#8212; This file for use on Windows systems<br \/>@REM &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>@echo off<span class=\"ListingZeichenFett\"><br \/>set JAVA_HOME=C:\\Programme\\Java\\jdk1.5.0<br \/>set DERBY_INSTALL=C:\\Programme\\derby\\<\/span><br \/>&#8230;<\/p>\n<p class=\"MsoNormal\">Ebenso setzen wir in <span class=\"Kursiv\"> startNetworkServer.bat<\/span> die Umgebungsvariablen passend, da wir den Server  auch wieder stoppen wollen.<\/p>\n<h4>Server-Start und weitere Tools<\/h4>\n<p class=\"MsoNormal\">Nun l\u00e4sst sich \u2013 etwa mit Doppelklick \u2013 das Skript <span class=\"Kursiv\">startNetworkServer.bat<\/span> starten, und die Datenbank  quittiert freundlich:<\/p>\n<p class=\"ListingStandard\"> Der Server ist bereit, am Port 1527 Verbindungen zu akzeptieren.<\/p>\n<p class=\"MsoNormal\">Das Programm <span class=\"Kursiv\">sysinfo<\/span> zeigt  Versionsnummer und Klassenpfad an. Mit dem interaktiven Werkzeug <span class=\"Kursiv\">ij<\/span> lassen sich SQL-Anweisungen abschicken und so die  ersten Versuche mit der Datenbank aufnehmen. <span class=\"Kursiv\">dblook<\/span>  extrahiert das Datenbankschema.<\/p>\n<h4>JDBC-Treiber<\/h4>\n<p class=\"MsoNormal\">F\u00fcr einen JDBC-Zugriff ist ein JDBC-Treiber n\u00f6tig, der bei Derby f\u00fcr eine Client-\/Server-Kommunikation nicht dabei ist, denn Derby nutzt die <span class=\"Kursiv\">Distributed Relational Database ArchitectureXE  &#8222;Distributed Relational Database Architecture&#8220;<\/span> (<span class=\"Kursiv\">DRDAXE  &#8222;DRDA&#8220;<\/span>), die auch DB2 verwendet. DRDA ist eine von der <span class=\"Kursiv\">Open GroupXE &#8222;Open Group&#8220;<\/span> definierte M\u00f6glichkeit,  von einem Client eine entfernte relationale Datenbank anzusteuern. Auf <span class=\"Kursiv\">http:\/\/www-128.ibm.com\/developerworks\/db2\/downloads\/jcc\/<\/span>  ist die Datei <span class=\"Kursiv\">db2jcc_for_derby.zip<\/span> aufgef\u00fchrt, die \u2013 nach einer Registrierung \u2013 auf der n\u00e4chsten Seite unter \u00bbReleased product: IBM Cloudscape (IBM DB2 JDBC Universal Driver, for Cloudscape\/Derby)\u00ab heruntergeladen werden kann. Die beiden Jar-Dateien aus dem Archiv, <span class=\"Kursiv\">db2jcc.jar<\/span> und<span class=\"Kursiv\">  db2jcc_license_c.jar<\/span>, sind in den Klassenpfad aufzunehmen. F\u00fcr den Client-\/Server- Modus von Derby ben\u00f6tigen wir keine weiteren Jar-Dateien, insbesondere keine aus dem <span class=\"Kursiv\">lib<\/span>-Verzeichnis von  Derby.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Derby (http:\/\/db.apache.org\/derby\/) ist ein pures Java-RDBMS unter der freien Apache-Lizenz. Die Datenbank geht auf Cloudscape zur\u00fcck, was IBM Mitte 2004 auf der LinuxWorld in San Francisco der Apache Software Foundation \u00fcbergeben hat. (1999 \u00fcbernahm Informix Software Inc.XE &#8222;Informix Software Inc.&#8220; die Datenbank Cloudscape von Cloudscape Inc., doch IBM \u00fcbernahm die Datenbanktechnologien von Informix im Jahre [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}