Apache DerbyとHSQLDB
この2つ、ブログやオンラインの記事にいっしょに出てきたりして、混乱するので自分なりにまとめてみました。
Apache Derby
IBMがCloudscapeのコードをApacheにdonationした結果生まれたオープンソースのPure Java RDBMS。現在、SunのJava DBとIBMのCloudscapeの2つのディストリビューションがある。Java DBはJava 6(Mustang)やNetBeansに組み込まれた。HSQLDBよりはheavyweight(2MB)。
HSQLDB
以前はHypersonicDBという名前だったらしい。オープンソースのPure Java SQL DB(RDBMSではない)。いろいろなところで組み込まれて使われている。有名どころではOpenOfficeに組み込まれている。Hibernateと一緒に使われることが多い。Derbyよりもlightweight(600KB)。
DerbyとHSQLDBの違うところ
パフォーマンスは?
HSQLDBがものすごく速いそうです。"Performance Benchmarking of Embedded Databases(http://jamie.ideasasylum.com/notebook/performance-benchmarking-of-embedded-databases/)"にベンチマークの結果が出ていますが、これを見るとDerbyはMySQLよりもかなり速いですが、それでもHSQLDBに比べるとものすごく遅い感じです。ただし、2年くらい前のデータなのでその後変わったかもしれません。
その他
- Sunはどっちを推進していくんだ?という内容のブログがここに。"Java DB or HSQLDB?(http://weblogs.java.net/blog/joconner/archive/2006/06/java_db_or_hsql_1.html)"
- CloudscapeとApache Derbyの関係についてのQ&Aがここに。"Meet the Experts: Why IBM is open sourcing Cloudscape as Derby(http://www.ibm.com/developerworks/db2/library/techarticle/dm-0410prial/)"
*1:Atomicity,Consistency,Isolation,Durability (http://www.geocities.com/mailsoftware42/db/#acid)参照。ビジネスの世界ではACID compliantであることが重要らしい