BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース HyperSQL 2.0 - 5年の開発期間を経た新リリース

HyperSQL 2.0 - 5年の開発期間を経た新リリース

原文(投稿日:2010/06/18)へのリンク

HyperSQL 2.0 が6月7日にリリースされた。5年以上前に HSQLDB 1.8 が登場して以来,今回が初のリリースになる。HSQLDB 1.8 はこれまでに数多くのツールやフレームワーク,アプリケーションに組み込まれてきた。その中には,Microsoft Access の代替に広く使用されている OpenOffice 3.2 productivity suite組込データベースオプション も含まれている。 HyperSQL は 100% Java で記述されていて,BSD ライセンスの下に提供される。

新バージョンは,既存のどのオープンソースデータベースエンジンよりも多彩な機能を誇る。今回,SQL の新機能やスケーラビリティの拡張,クエリ最適化,その他の機能が新たに追加された。

HyperSQL のコアは完全にマルチスレッドで動作し,2フェーズロッキングと MVCC (マルチバージョン・コンカレンシ・コントロール/Multi-version Concurrency Control) をサポートする。ともにデータベースリソースへの並行アクセスに対処する機構であり,MVCC などは PostgreSQL を初めとする他のデータベースでも採用されている。またトランザクション制御モードとして,これまでは SERIALIZABLE と READ COMMITTED がサポートされていたが,HyperSQL 2.0 では REPEATABLE READ と READ UNCOMMITTED に相当する,2つの新しいアイソレーションレベルのサポートが追加されている。

SQL スキャナやパーザなどの主要コンポーネントは書き直され,ANSI-92 SQL と SQL:2003 のほぼ完全なサポートと,SQL:2008 の大部分の機能 (オプション拡張の多くを含む) を備えるようになった。これによって BETWEEN 句や OVERLAPS 述語,複数項を持つ IN 式,MERGE 文,MATHIES 述語など,数多くの式や構文が新たに記述可能になった。加えて HyperSQL 2.0 では,SQL と Java に対応するトリガ定義のための完全なシンタックスと,読取専用と更新可能の2種類のビューがサポートされている。SEQUENCE 型の生成もサポートされて,ユニークな数値を容易に生成できるようになった。さらに BIT 型や CLOB,BLOB,SQL 標準 INTERVAL 型など,さまざまなデータ型が追加されている。TIME サポートは拡張されていて,分数秒とタイムゾーンをサポートするようになった。Array 型も使用可能になり,ほとんどの型を構成要素として持つことができる。またデータベースエンジンは,JOIN 句や WHERE 句,IN クエリ,MIN や MAX などの集計関数,ORDER BY 句などにおいて,可能であればすべての有効なインデックスを使用する。今バージョンからストアドプロシージャと関数 (function) もサポートされるようになった。ストアドプロシージャ言語では WHILE ループや IF,CASE WHEN などの手続き型構文や例外処理,集計関数がサポートされている。関数は SQL または Java で定義可能で,Java で記述した場合にはポリモーフィズムのような優れた機能も利用可能である。

HyperSQL 2.0 にはこの他にも,管理や操作を容易にするような小規模な変更が数多くある。今回のバージョンでは,一般型のストレージサイズ最大値が 256GB まで拡張されるとともに,最大 64 テラバイトまでサポートする BLOB および CLOB データが追加されている。最新の JDBC 4.0 互換ドライバと Java 1.6 もサポートされる。注目すべきなのは,Statement と PreparedStatement インターフェースで getGeneratedKeys( ) メソッドがサポートされていることだ。これによる利点は多いが,中でも特に ORM ツールとの連携が改善されるだろう。

全体としては機能満載のリリースだ。今回のリリースは,テスト環境あるいは堅実な組込データベースの選択肢としての,このプロジェクトの人気の高さを証明してみせたものといえる。HyperSQL はマインドシェアも最も高いと思われるが,一方で HyperSQL オリジナル版の作者 Thomas Mueller 氏による H2 や,JDK 6 に JavaDB と同梱されている Apache Derby (元は IBM の CloudScape ) などとの競合にも直面している。

詳細な情報は HyperSQL Web サイト を参照して頂きたい。

この記事に星をつける

おすすめ度
スタイル

BT