Apache Derby
HSQLDB を試すつもりだったのだが・・。
1.Derbyとは?
- フリー百科事典『ウィキペディア(Wikipedia)』Apache Derby
- http://ja.wikipedia.org/wiki/Apache_Derby
IBMから寄贈されたCloudscapeのソースコードを元に、 Apache Software Foundationによってプログラムの開発が進められている、Java技術で実装されたRDBMSのソフトウェア。
Derbyの記事
google:Apache Derby
2.インストール
- The Apache Derby Project
- http://db.apache.org/derby/
- Official Releases の 10.1.1.0 (Aug 3, 2005 / SVN 208786)をクリック
- Distributions の db-derby-10.1.1.0-bin.zip をクリック
- db-derby-10.1.1.0-bin.zip をダウンロード
- jar xvf db-derby-10.1.1.0-bin.zip で解凍
- D:\opt 配下へディレクトリを移動し、D:\opt\db-derby へディレクトリ名を変更
- D:\opt\db-derby
- demo
- docs
- frameworks
- embedded\bin
- NetworkServer\bin
- javadoc
- lib
- derby.jar
- derbyclient.jar
- derbyLocale_ja_JP.jar
- derbynet.jar
- derbyTesting.jar
- derbytools.jar
3.設定
- D:\opt\db-derby 配下にデータベース格納用のディレクトリD:\opt\db-derby\data を作成する。
- D:\opt\db-derby\data ディレクトリに、環境変数を設定するバッチファイル D:\opt\db-derby\data\derby_run.bat を作成する
@rem derby setup batch file. @rem create: 2005/08/28 @rem author: papa33 @rem @rem set env @rem set JAVA_HOME=D:\opt\j2sdk1.4.2_05 set PATH=%JAVA_HOME%\bin;%PATH% set DERBY_INSTALL=D:\opt\db-derby set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbyLocale_ja_JP.jar;%DERBY_INSTALL%\lib\derbynet.jar;%DERBY_INSTALL%\lib\derbyclient.jar;%DERBY_INSTALL%\lib\derbytools.jar java org.apache.derby.tools.sysinfo echo "java org.apache.derby.tools.sysinfo" echo "java org.apache.derby.tools.ij" cmd /f:on
4.起動
derby_run.bat を起動する
D:\opt\db-derby\data>java org.apache.derby.tools.sysinfo ------------------ Java 情報 ------------------ Java バージョン: 1.4.2_05 Java ベンダー: Sun Microsystems Inc. Java ホーム: D:\opt\j2sdk1.4.2_05\jre Java クラスパス: D:\opt\db-derby\lib\derby.jar;D:\opt\db-derby\lib\derbyL cale_ja_JP.jar;D:\opt\db-derby\lib\derbynet.jar;D:\opt\db-derby\lib\derbyclient jar;D:\opt\db-derby\lib\derbytools.jar OS 名: Windows XP OS アーキテクチャー: x86 OS バージョン: 5.1 Java ユーザー名: papa33 Java ユーザー・ホーム: C:\Documents and Settings\papa33 Java ユーザー dir: D:\opt\db-derby\data java.specification.name: Java Platform API Specification java.specification.version: 1.4 --------- Derby 情報 -------- JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 [D:\opt\db-derby\lib\derby.jar] 10.1.1.0 - (208786) [D:\opt\db-derby\lib\derbynet.jar] 10.1.1.0 - (208786) [D:\opt\db-derby\lib\derbyclient.jar] 10.1.1.0 - (208786) [D:\opt\db-derby\lib\derbytools.jar] 10.1.1.0 - (208786) ------------------------------------------------------ ----------------- ロケール情報 ---------------- 現行ロケール : [日本語/日本 [ja_JP]] ロケールのサポートが見つかりました: [ja_JP] バージョン: 10.1.1.0 - (208786) ------------------------------------------------------
5.Derbyの利用
ijはDerbyの対話型環境で、SQLステートメントやスクリプトを実行できます。
ij バージョン 10.1 ij>簡単なウォームアップとしてデータベース内にテーブルを作成し、データの挿入、内容の照会を行います。 表(テーブル)は、データベースの中に作成されますが、まだこの段階ではデータベースが作成されていません。Derby では、次の構文でデータベースを作成できます。末尾のセミコロンを忘れないで下さい。connect 'jdbc:derby:(データベース名);create=true';ここでは「sample」と言う名前でデータベースを作成します。ij> connect 'jdbc:derby:sample;create=true'; ij>作成したデータベース「sample」に対して任意のSQLステートメントを実行できます。たとえばデータベース「sample」に接続して、表(テーブル)「社員」を作成し、3行のデータを挿入し、内容を表示します。ij> connect 'jdbc:derby:sample;create=true'; ij> connect 'jdbc:derby:sample'; ij(CONNECTION1)> CREATE TABLE 社員 (社員ID DEC(4), 名前 VARCHAR(20), 給与 dec(8), 部門id dec(4)); 0 行が挿入/更新/削除されました ij(CONNECTION1)> INSERT INTO 社員 VALUES (1000, '田中', 0, 20), (1002, '佐藤', 0, 10), (1003, '井上', 0, 20); 3 行が挿入/更新/削除されました ij(CONNECTION1)> SELECT * FROM 社員; 社員ID |名前 |給与 |部門ID ------------------------------------------ 1000 |田中 |0 |20 1002 |佐藤 |0 |10 1003 |井上 |0 |20 3 行が選択されました ij(CONNECTION1)>ijを終了するにはexitコマンドを使用します。ij(CONNECTION1)> exit; D:\opt\db-derby\data>6.システムテーブル
第6 章Derby システム表 システム表はすべて、SYS スキーマ内にあります。これはデフォルト・スキーマではないため、システム表にアクセスする照会にはすべて、SYS というスキーマ名で修飾します。「Japanese IBM CloudsCape リファレンス・マニュアル V10.1 (SD88-6362-01)」より> java org.apache.derby.tools.ij >ij バージョン 10.1 ij> connect 'jdbc:derby:sample'; ij> select * FROM SYS.SYSALIASES; ij> select * FROM SYS.SYSCHECKS; ij> select * FROM SYS.SYSCOLUMNS; ij> select * FROM SYS.SYSCONGLOMERATES; ij> select * FROM SYS.SYSDEPENDS; ij> select * FROM SYS.SYSFILES; ij> select * FROM SYS.SYSFOREIGNKEYS; ij> select * FROM SYS.SYSKEYS; ij> select * FROM SYS.SYSSCHEMAS; ij> select * FROM SYS.SYSSTATISTICS; ij> select * FROM SYS.SYSSTATEMENTS; ij> select * FROM SYS.SYSTABLES; ij> select * FROM SYS.SYSTRIGGERS; ij> select * FROM SYS.SYSVIEWS; ij> exit;7.FAQ
データベースの削除は、drop database コマンドではなくて、オペレーティング・システムのコマンドを使うようだ。
- Creating, Dropping, and Backing Up Databases
- http://db.apache.org/derby/docs/10.0/manuals/develop/develop13.html
There is no drop database command. To drop a database, delete the database directory with operating system commands. The database must not be booted when you remove a database.8.参考文献
- Apache Derby Java接続入門
- http://www.oklab.org/storage/selection_db.html
- Derby -PukiWiki-
- http://tidus.ultimania.org/wiki/index.php?Derby
- IBM Cloudscape/Apache Derbyを利用した演習
- http://www-6.ibm.com/jp/developerworks/ysl/050603/j_ysl-academic.html
- Japanese IBM CloudsCape 概説およびインストール V10.1 (GD88-6360-01)
- http://www-1.ibm.com/support/docview.wss?uid=pub3gd88636001
- Japanese IBM CloudsCape 開発者ガイド V10.1 (GD88-6361-01)
- http://www-1.ibm.com/support/docview.wss?uid=pub3gd88636101
- Japanese IBM CloudsCape リファレンス・マニュアル V10.1 (SD88-6362-01)
- http://www-1.ibm.com/support/docview.wss?uid=pub3sd88636201
- Japanese IBM CloudsCape チューニング・ガイド V10.1 (SD88-6363-01)
- http://www-1.ibm.com/support/docview.wss?uid=pub3sd88636301
- Japanese IBM CloudsCape ツールおよびユーティリティー・ガイド V10.1 (SD88-6364-01)
- http://www-1.ibm.com/support/docview.wss?uid=pub3sd88636401
- Japanese IBM CloudsCape サーバーおよび管理ガイド V10.1 (SD88-6365-01)
- http://www-1.ibm.com/support/docview.wss?uid=pub3sd88636501
より
- Unofficial DB2 BLOG - db2.jugem.cc
- http://db2.jugem.jp/
スクリプト言語のPythonからApache Derby (Cloudscape 10)に接続する方法を解説した資料
- IBM CloudscapeTM インフォメーション・センター
- http://publib.boulder.ibm.com/infocenter/cldscp10/index.jsp
Pythonからの接続よりもDerbyとRuntime clientの導入の説明に多くの行数を割いているので、Derbyを導入したい人も参考になる Pure Java RDBMSのパフォーマンス比較
- Connect to Apache Derby databases using Python
- http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0505gibson/
参考の比較対象としてMySQLを取り上げている。
- Performance Benchmarking of Embedded Databases
- http://jamie.ideasasylum.com/notebook/index.php?id=4
DerbyのアプリケーションをEclipseで開発する
- Open Source Database Engines in Java
- http://java-source.net/open-source/database-engines
- Develop Apache Derby applications in Eclipse
- http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0501roux/
- IBM Integration plug-in for Derby
- http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0501cline/
- IBM DB2 plug-ins for Eclipse, Version 1.0.2 Beta
- http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0408cline2/index.html
- Integrate Cloudscape Version 10 or Derby with Tomcat
- http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0508bader/