2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【PureJava】 Derby 1 【OpenSource】

1 :NAME IS NULL:2005/10/09(日) 04:22:21 ID:FOVesS3t
このスレはApacheSoftwareFoundation(以下ASFと略す)傘下で開発が進められているPureJavaRDBのDerbyについて語るスレです。

Derbyって何?
Javaで書かれたRDBMSです。

Derbyで何ができるの?
Javaの実行環境があれば、開発したアプリケーションにRDBを組み込むことができます。
「アプリケーションの出力結果をテキストに吐き出して、必要があればそこから検索して...」
などの作業を、開発を簡単に、実行時に素早く行うことができます。

でも、DBって設定とかいろいろ難しいんでしょ?
Derbyは簡単です。「簡単に使える(Easy to Use)」がDerby開発目的の一つです。

Derbyは誰が開発しているの?
現在はASF傘下でOpenSourceプロジェクトとして開発が進められていますが、
それ以前はIBMがCloudScapeという名称で開発を進めていました。
詳細は2以降のリンク先を参照してください。

2 :NAME IS NULL:2005/10/09(日) 04:23:03 ID:FOVesS3t
関連リンク

The Apache Derby Project
ttp://db.apache.org/derby/

IBM Cloudscape インフォメーション・センター
ttp://publib.boulder.ibm.com/infocenter/cldscp10/index.jsp
Publications home (CloudscapeマニュアルPDF版30冊)
(マニュアル検索をクリック、キーワードCloudscape、表示結果数100で検索)
ttp://www.elink.ibmlink.ibm.com/puc/jsp/index.jsp?country=J1&language=JPN
Cloudscapeと3つの「C」
ttp://www-6.ibm.com/jp/developerworks/ysl/j_ysl-cloud.html
IBM Cloudscape、Apache Derbyについて
ttp://timescape.jugem.jp/
Unofficial DB2 BLOG
ttp://db2.jugem.cc/

IBM DB2 スレ (関連スレ)
http://pc8.2ch.net/test/read.cgi/db/1057170768/

3 :NAME IS NULL:2005/10/09(日) 04:24:04 ID:FOVesS3t
Derbyの最新バージョンは10.1.1.0、対応するCloudscapeのバージョンは10.1です。

Derby 10.1.1.0公開 - Apache Incubatorから卒業
http://pcweb.mycom.co.jp/news/2005/08/05/011.html
Cloudscape 10.1
http://db2.jugem.cc/?eid=526

マニュアル30冊と書きましたが、最新版用マニュアルは7冊です。

Publications home (CloudscapeマニュアルPDF版)
(マニュアル検索をクリック、キーワードCloudscape V10.1で検索)
http://www.elink.ibmlink.ibm.com/puc/jsp/index.jsp?country=J1&language=JPN

IBM Cloudscape 概説およびインストール V10.1
http://publibfp.boulder.ibm.com/epubs/pdf/d8863601.pdf
IBM Cloudscape 開発者ガイド V10.1
http://publibfp.boulder.ibm.com/epubs/pdf/d8863611.pdf
IBM Cloudscape リファレンス・マニュアル V10.1
http://publibfp.boulder.ibm.com/epubs/pdf/d8863621.pdf
IBM Cloudscape チューニング・ガイド V10.1
http://publibfp.boulder.ibm.com/epubs/pdf/d8863631.pdf
IBM Cloudscape ツールおよびユーティリティー・ガイド V10.1
http://publibfp.boulder.ibm.com/epubs/pdf/d8863641.pdf
IBM Cloudscape サーバーおよび管理ガイド V10.1
http://publibfp.boulder.ibm.com/epubs/pdf/d8863651.pdf
IBM Cloudscape V10.1 リリース・ノート
http://publibfp.boulder.ibm.com/epubs/pdf/d8863661.pdf

4 :NAME IS NULL:2005/10/09(日) 04:24:49 ID:FOVesS3t
Derbyに含まれているdemoの実行方法
(Windowsを対象とします。UNIXの場合は適宜読みかえてください。db-derby-10.x.x-bin\demo\readme.html より抜粋)
1.コマンドラインを起動します。
2.ダウンロードしたdb-derby-10.x.x-bin.zipを解凍してできたディレクトリをDERBY_INSTALLとして環境変数に設定します。
 例:解凍してできたフォルダが「C\:db-derby-10.x.x-bin」の場合、コマンドラインに
   「set DERBY_INSTALL=C\:db-derby-10.x.x-bin」として実行します。
3.コマンドラインに「cd %DERBY_INSTALL%\demo\simple」と入力し、demo用アプリケーションの存在するフォルダへ移動します。
4.コマンドラインに「set CLASSPATH=.;%DERBY_INSTALL%\lib\derby.jar」と入力し、クラスパスを設定します。
5.コマンドラインに「java org.apache.derby.tools.sysinfo -cp embedded SimpleApp.class」と入力し実行します。
 上記2〜4の設定が正しく行われていれば
  FOUND IN classpath:
  Derby embedded engine library (derby.jar)
  user-specified class (SimpleApp)
  SUCCESS: All Derby-Related classes for embedded environment found in classpath.
 と出力されます。
6.5で正しく環境設定が行われていることを確認したら、コマンドラインに「java SimpleApp」と入力し実行します。
 プログラムが稼働していることを確認してください。

5 :関連リンクを書いた人:2005/10/09(日) 04:39:49 ID:???
>1
激しく乙!

ところでリリースノートのURLを間違えていましたorz
リリースノートはPDFではなく、HTMLです。

IBM Cloudscape V10.1 リリース・ノート
http://publibfp.boulder.ibm.com/epubs/html/d8864661.html

6 :NAME IS NULL:2005/10/09(日) 19:50:57 ID:???
>>1 おつかれ
derby(とcloudscape)って使っている人まだ少ないのかねー。
日本語の情報が全然ないもんね。

こんな良いDBがタダで使えるなんで、他に無いと思うんだけどね。
PostgreSQLとかもいいんだけど、derbyの設定いらず、管理いらずの
よさって他になかなか無いと思う。

なにげにMacでも使えるし。

7 :NAME IS NULL:2005/10/16(日) 07:07:19 ID:???
今月と来月のJavaWorld(2005/11,12)でDelbyの解説をやってるね。
11月号はインストールと簡単な使い方のみでつまんなかったけど。

8 :NAME IS NULL:2005/10/19(水) 18:52:20 ID:1jaemagd
HSQLDBとどっちが速い?特に起動。

9 :NAME IS NULL:2005/10/22(土) 13:50:05 ID:???
起動やちょっと使う程度だと、HSQLDBの方が速いかな。
HSQLDBはデータ量が増えると遅くなるから、derbyにはそのあたりの耐久性を期待。

10 :NAME IS NULL:2005/10/22(土) 19:13:20 ID:GCiqLehV
そうそう。HSQLDBは、更新を行うテーブルの場合、データのコンパクションを行わないと
とてもとても重くなる。 derbyに期待。


11 :NAME IS NULL:2005/10/23(日) 00:40:25 ID:???
HSQLDBって何件くらいで重くなるの?
Derbyで1万件位あるデータの検索は結構速かったよ

12 :NAME IS NULL:2005/11/29(火) 02:23:07 ID:???
なんかこっそり10.1.2.1が出てますね。
ttp://db.apache.org/derby/releases/release-10.1.2.1.cgi

13 :NAME IS NULL:2005/11/30(水) 20:27:40 ID:???
これ使い始めたんだけど、良いね。なんかお手軽な割にしっかり動いてるし。

14 :NAME IS NULL:2005/11/30(水) 22:11:26 ID:???
HSQLと比べてどうかということだね。
Apacheライセンスってことでライセンスを統一しやすいこっちのが好きだけど

15 :NAME IS NULL:2005/12/01(木) 02:30:26 ID:???
たぶんHSQLDBのほうが速いだろうと予測するけども、Derbyは
ちゃんと排他処理とかやってそうな感じだな。

16 :NAME IS NULL:2005/12/01(木) 21:41:24 ID:???
ストアドプロシージャやPreparedStatementが使えるなら
一般用途では性能なんてほとんど「気のせい」の世界じゃない?


17 :NAME IS NULL:2005/12/10(土) 23:37:20 ID:???
HSQLとの対比がわかる表があったら嬉しい。
HSQLはファイルモードで複数ファイル作るから、こっちが1ファイルならちょっと考えちゃう。

18 :NAME IS NULL:2005/12/11(日) 04:39:36 ID:???
>>17
使えばすぐわかるが、複数ファイルだよ

19 :NAME IS NULL:2005/12/11(日) 20:28:58 ID:???
・・・やばい、Derby遅い。

スキーマ
create table test(id integer not null, name varchar(20))

forName
HSQL org.hsqldb.jdbcDriver
DERBY org.apache.derby.jdbc.EmbeddedDriver

connectionString
HSQL jdbc:hsqldb:file:db/hsql/hsqldata
DERBY jdbc:derby:db/derby/derbydata;create=true

1000件(左transaction, 右autoCommit)
insert into test values(" + i + ",'string" + i + "')
HSQL 0.172秒, 0.172秒
DERBY 6.203秒, 7.172秒

prepareStatement and transaction(左1,000件, 右100,000件)
insert into test values(?,?)
HSQL 0.094秒, 1.235秒
DERBY 0.906秒, 14.547秒

マシンスペック
Pentium4 1GHz, メインメモリ768MB


20 :NAME IS NULL:2005/12/11(日) 20:32:01 ID:???
キャッシュなしで36倍、キャッシュありで10倍遅い。
何か起動も2秒くらいかかってるし、チューンできる場所があるのかな?

21 :NAME IS NULL:2005/12/12(月) 18:39:53 ID:???
追加や更新をたくさん実行した直後のconnectが特に遅いんだよね。
その後のconnectは速いのに…なんなんだろ?

22 :NAME IS NULL:2005/12/13(火) 12:42:05 ID:???
>>21
エンジンですから暖気が必要なのです。


23 :NAME IS NULL:2005/12/13(火) 23:37:33 ID:???
ゲームに組み込むのにDerbyはどうなんだろ・・・
HSQLなら速度もネイティブと戦える速度みたいだけど
Derbyの遅さはちょっと気になるところ。

BLOGの速さを調査してみるか。

24 :NAME IS NULL:2005/12/13(火) 23:37:57 ID:???
BLOGじゃねーBLOBだったw

25 :NAME IS NULL:2005/12/14(水) 00:36:32 ID:???
なんかログのクリアとかしてる気がするんだよなぁ<再接続時

サーバモードで動かしたときのパフォーマンスも調べてみないとダメかなぁ

26 :NAME IS NULL:2005/12/14(水) 01:57:04 ID:???
ログは正直イラネです。接続文字列のときに欲しけりゃ指定みたいにして、デフォはなくして欲しい。

27 :25:2005/12/14(水) 12:06:41 ID:???
気になって調べてみたんだが、ちゃんとシャットダウンしないと
次回起動時にリカバリー処理が走るらしい。
  DriverManager.getConnection("jdbc:derby:DBNAME;shutdown=true");
で、このgetConnectionは必ずSQLExceptionを吐く。

ijとかのツールは自動的にshutdownしてくれるから気が付かなかったっぽいけど、
まぁちゃんとマニュアルくらい嫁という話だったよ orzスマン

28 :NAME IS NULL:2005/12/19(月) 23:14:16 ID:???
Sunが次期Sun Studioにバンドルするとかなんとか。

29 :NAME IS NULL:2005/12/23(金) 03:19:13 ID:???
SunのJ2EE SDKにはPointBaseの前Cloudscapeがついてたしな

30 :NAME IS NULL:2006/02/03(金) 13:58:02 ID:DqM+Y4IV
>>16
PreparedStatementよりもストアドプロシージャのほうが
速いと思ってたけど、さほぼ変わりない?

というか最近じゃHibernateのようなO-Rマッピングツールばかりに頼って
ストアドプロシージャのこと考えないケースが多いのかな?

というか、このDerbyがHibernateなどのO-Rマッピングツールに
対応しているのか気になる。もし対応していたら使ってみようかなという気分になる。
Apache系だから
Jakarta Torqueにしか対応していないだったりして。

それより、PostgreSQL並みの機能を搭載しているのかも気になる。
性能は、やっぱりPureJavaでないDBよりも遅くなるのかな。



31 :NAME IS NULL:2006/02/03(金) 14:00:28 ID:DqM+Y4IV
>>27
DataSourceは使ってないんですか?

32 :NAME IS NULL:2006/02/03(金) 14:05:25 ID:DqM+Y4IV
>>27
コネクションを切るときに

Conneciton con = null;
try{
con = DriverManager.getConnection("〜〜〜〜〜");
//(ry
} catch ( /* (ry */ ) {
 //(ry
} finally {
 try{
  if(con != null || con.isClosed()){
   con.close();
  }
 } catch( /* (ry*/ ){
  //(ry
 }
}

でclose()しておかないとエラーになるという話とは違う?
このcatchが多いclose()コードを見ていると、いい加減に、APache Jakarta Commons DBUtils使うべきかな・・・
それともHibernate使うべきかな・・・・



33 :NAME IS NULL:2006/02/04(土) 00:06:36 ID:???
O/Rマッピングのツール類って、JDBCドライバさえあればどんなDBでも
マッピングできるでしょ。ApacheだからTorqueにしか対応してないなんて
ことはないでそ。

34 :27:2006/02/04(土) 04:23:49 ID:???
>>32
> でclose()しておかないとエラーになるという話とは違う?

まったく別。shutdownしないっていうことは、
サーバ型DBのプロセスをいきなり殺すくらいに相当するみたいよ。

35 :NAME IS NULL:2006/02/04(土) 11:05:56 ID:???
O/Rマッピングは標準SQLが基本で、方言はそれようのクラスを指定するんじゃねーの?

36 :NAME IS NULL:2006/02/11(土) 16:49:25 ID:???
次スレが早くもたちました。

Apache Derby
http://pc8.2ch.net/test/read.cgi/db/1139638967/


37 :NAME IS NULL:2006/02/12(日) 08:31:29 ID:???
ファイルモードで動かすとやたら重く感じるけど
Postgresより速いといわれてるってことはサーバモードは優秀なんだろうな

38 :NAME IS NULL:2006/02/12(日) 10:14:14 ID:???
>>37
なんでそうなるんだよ
サーバモードはファイルモードの上に一層かぶさってるだけだから
Postgresがむちゃくちゃ遅くない限りそれはないだろ

>>27をやってなくて次のgetConnectionに時間がかかる、という話ならわかるが。

39 :NAME IS NULL:2006/02/12(日) 10:56:33 ID:???
Derbyっていう名前がちょっとモニョモニョなんだよなあ
CLOUDSCAPEの方が格好よかった

40 :NAME IS NULL:2006/02/14(火) 17:18:38 ID:Mz661nHs
これって外部結合できんの?

41 :NAME IS NULL:2006/02/15(水) 06:10:43 ID:???
できるよ

42 :NAME IS NULL:2006/02/16(木) 00:21:03 ID:???
Derby=Postgres
HSQL=MyS

43 :NAME IS NULL:2006/02/16(木) 00:21:38 ID:???
Derby=Postgres
HSQL=MySQL
という位置づけになっていくんだろうか

と囲うとしたら送信しちゃったじゃないか!




44 :NAME IS NULL:2006/02/16(木) 01:43:28 ID:???
H2は?

45 :NAME IS NULL:2006/02/17(金) 09:47:26 ID:???
あだち充

46 :NAME IS NULL:2006/02/18(土) 05:21:44 ID:???
>>45
くだらねーーーー
しんでくれ

47 :NAME IS NULL:2006/02/19(日) 08:54:06 ID:NpweOF0L
これってサブクエリ使えるの?

48 :NAME IS NULL:2006/02/19(日) 10:40:10 ID:???
>>47 とうぜんだ

49 :NAME IS NULL:2006/02/19(日) 11:41:02 ID:???
>>48
じゃあ何が出来ないの?
外部結合もサブクエリも出来るのなら、出来ないことないじゃん。

50 :NAME IS NULL:2006/02/19(日) 16:33:27 ID:???
>>49 できないことがなきゃだめなの?(´・ω・`)

51 :NAME IS NULL:2006/02/19(日) 16:46:09 ID:???
よくわからん流れだなw

52 :NAME IS NULL:2006/02/19(日) 17:08:28 ID:???
もし全能の神が存在するとしたら、そのような神は常に邪悪であり信じてはいけない。

53 :NAME IS NULL:2006/02/19(日) 21:04:28 ID:???
>>49
Derbyは、Pure Javaで書かれたデータベースの中では
飛びぬけて高機能だよ。
外部結合、view、制約、副照会、トリガー、ストアドプロシージャ
など、ほしいと思う機能のほとんどが使える。

54 :NAME IS NULL:2006/02/20(月) 12:22:50 ID:???
ちょっと遅いけどね (゚∀゚)

55 :NAME IS NULL:2006/02/25(土) 19:52:30 ID:ODRgUBxJ
つまり>>43のような位置づけになるのか?

欲張りたければDerbyを使えと?
それでよろし?

56 :NAME IS NULL:2006/02/27(月) 02:17:23 ID:???
>> 55
何か機能に問題があるわけじゃないんだから、
とりあえず自分で一度使ってみれば?
使うの全然難しくないから。

57 :NAME IS NULL:2006/03/10(金) 20:58:27 ID:???
ストアドプロシージャがあるのか
してその性能は如何に?

58 :NAME IS NULL:2006/04/23(日) 19:53:27 ID:???
でるびー?
でるばい?

59 :NAME IS NULL:2006/04/23(日) 22:27:55 ID:???
×でるびー
×でるばい
○ダービー

60 :NAME IS NULL:2006/04/24(月) 09:37:18 ID:???
あいだとって
デービーでいいよ

61 :NAME IS NULL:2006/06/18(日) 20:30:07 ID:hit/Nk0X
Mustangスレによると、このApache Derbyが次世代Java
Java SE 6 Mustangに取り込まれるらしい。


これにはびっくりした。

62 :NAME IS NULL:2006/06/19(月) 00:20:04 ID:???
組み込まれるのは事実だが、JDKに組み込まれることに注意。
JREじゃないからね。

63 :NAME IS NULL:2006/06/20(火) 09:10:22 ID:GmFddXaR
VMに組み込まれrんじゃないのか・・・残念

64 :NAME IS NULL:2006/06/21(水) 00:09:03 ID:hYnCNjr4
>>62-63
VMに組み込まれると一体どんなメリットがあるんだ?
native実装による高速化にでも期待しているのか?



65 :NAME IS NULL:2006/06/21(水) 00:12:00 ID:???
というかVMに組み込むってどういうことよ。
それってDellのPC(ハードウェア)にデータベース組み込むと言ってるのと同じでは。

66 :NAME IS NULL:2006/06/21(水) 01:12:11 ID:???
というか、
WindowsにAccessが標準搭載、
みたいな感じがする。

まあJDK限定じゃ、開発用のおためしDBに
使ってねって感じなんですかね。

67 :NAME IS NULL:2006/06/21(水) 02:03:50 ID:???
ですねえ。思い切ってJREに付属しちゃえば普及は加速しそうだし、
「JRE 6に付属したJava DBの使い方」みたいな記事も大量に書かれそう
なんだけど。
DBベンダーからの反発がきつくなりそうだから止めたのかな。

68 :NAME IS NULL:2006/06/21(水) 02:32:13 ID:hYnCNjr4
>>65
だからnative実装で高速化じゃないか?

それでは、100%PureJavaというApache Derbyの特徴を
妨害することになってしまうが。

今のところ、そのまま標準APIの一部として組み込んだほうがマシだな。
ネイティブで実装すると、各OS毎に実装するコストがかかりそうだ。



69 :NAME IS NULL:2006/06/21(水) 02:47:00 ID:???
なぜデータベース「エンジン」という「環境」の話をしているのに「標準APIの一部として
組み込め」という話になるのか。

APIはちゃんとJPAで標準化されたでしょ。

70 :NAME IS NULL:2006/06/21(水) 03:01:53 ID:hYnCNjr4
>>69
よくみろ、>>65に対するレスだろう。
あの時点では>>65はデータベースエンジンの
話はしていないので
ああいう話になっても仕方がないだろう。

71 :NAME IS NULL:2006/06/21(水) 18:32:08 ID:???
>>61-62
JDK内のファイルであっても再配布可なものもあるし、実際の
ライセンス見ないとな。

72 :NAME IS NULL:2006/06/22(木) 16:18:25 ID:???
>>68
RDBMSをネイティブ実装して速くなるか?
ほとんどのケースで、かえって遅くなると思われ。
JNIを呼ぶコストはでかい。
そして動的最適化はRDBMSみたいなものに向いてる。

Derbyでクラスタリングができるようになったら、
RDBMSベンダは真っ青だろうな。

73 :NAME IS NULL:2006/06/25(日) 11:33:37 ID:Q3NPiH82
>>72
それはあーる!別にJava原理主義者じゃないけど。

74 :NAME IS NULL:2006/06/26(月) 10:39:26 ID:5JBPy/j1
weblogicでクラスタ組むときにderbyを使用すると勝手にミラーリング
してくれるのか??table情報とかも??

だったら凄いけど。

75 :NAME IS NULL:2006/06/28(水) 21:28:54 ID:/+PVX7Cs
HSQLならMySQLやSQLite並に速いんだろ?
Java DBとして昇格したDerbyは準拠型、H2は性能型と住み分ければいいよ。

76 :NAME IS NULL:2006/07/29(土) 21:37:22 ID:ZzwYSITf
>>72
Java純度がほぼ100%近いNetBeansがネイティブに頼ってるEclipseに
速度面で勝ってしまったことからDerbyをネイティブ化
するのはかえって遅くなると言うことか。


77 :NAME IS NULL:2006/07/29(土) 21:45:27 ID:???
純粋な実行速度だけなら、HotSpotの最適化技術は凄く効果的だから
遅くなるとすればI/O処理だと思われる

78 :NAME IS NULL:2006/07/29(土) 22:15:56 ID:???
DerbyはPostgreSQL、HSQLDBとH2はMySQLと考えればいいんじゃね?

79 :NAME IS NULL:2006/07/30(日) 02:07:18 ID:UsI3khps
Updateは遅いが、Queryは良い線行ってる気がする。
「Embedded用途のなんちゃってDB」と言う認識で
使い始めたのだが、なかなかどうして優秀じゃん。

80 :NAME IS NULL:2006/07/30(日) 05:40:40 ID:BqjUn7yu
ほほう。selectは頑張ってるのか。
insertでぶっちぎりでHSQLに負けたから敬遠してた。

81 :NAME IS NULL:2006/08/25(金) 14:19:31 ID:DlehecX3
Apache Derby Performance
ttp://wiki.apache.org/apachecon-data/attachments/Us2005OnlineSessionSlides/attachments/ApacheCon05usDerbyPerformance.pdf

82 :NAME IS NULL:2006/08/26(土) 10:10:53 ID:???
>>81
非常に良い資料だね。特に15pageあたりは興味深いよ。

83 :NAME IS NULL:2006/08/26(土) 15:47:00 ID:X1UwdJ0K
Java6 betaにJDBC4.0対応のDerbyが入っていて、細々と実験中。
なかなか良い感じですな。

84 :NAME IS NULL:2006/12/20(水) 08:52:53 ID:fVwb+c+T
ij のrunコマンドでsqlファイルを読み込む場合、文字コードを指定することは出来ますか?
derby.ui.codesetオプションをつけてみたら、ijコマンド全体が文字化けしてしまいましたorz

21 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)