Java DB

FAQ

Java DB に関するよくある質問 (FAQ)

ここで紹介する FAQ の一覧を参照すると、Java DB に関するよくある質問に対する簡単な回答を得ることができます。この Web サイト内、またはその他のサイトでさらに詳しい情報が提供されている場合は、それぞれリンクが張られています。


一般
  1. Java DB はオブジェクト・データベースですか?
  2. Java DB は Apache Derby から分岐した実装ですか?
  3. Java DB のサポートは受けられますか?
  4. Java DB はマルチユーザーと同時ユーザーに対応していますか?

インストールと構成
  1. Java DB はどこからダウンロードできますか?
  2. Java DB/Derbyのインストールと設定はどうすればよいですか?

SQLの機能
  1. Java DB が提供するデータ型は何ですか?
  2. Java DB は SQL-92 に対応していますか?
  3. Java DB はストアド・プロシージャに対応していますか?
  4. Java DB は WHERE、FROM 節のサブクエリーに対応していますか?
  5. Java DB は組み込み文字列関数に対応していますか?
  6. Java DB は日付/時間値の要素を取り出す関数を提供していますか?
  7. Java DB は日付/時間演算に対応していますか?
  8. Java DB はどの集約関数に対応していますか?
  9. Java DB には ページ設定クエリーのための LIMIT 節、または ROWNUM 関数に相当するクエリーがありますか?

JDBC
  1. Java DB が対応する JDBC のバージョンは何ですか?
  2. Java DB 接続プールと JNDI データソースに対応していますか?
  3. Java DB はメタデータ API に対応していますか?
  4. Java DB には XA 対応はありますか?
  5. Java DB では、同じ接続上で複数の有効な結果が存在することは可能ですか?

システム制限
  1. データベースのサイズの制限はいくつですか?
  2. バイナリ・オブジェクトの最大許容サイズはいくつですか?
  3. Java DB はどのプラットフォームで動作しますか?

データベース管理ツール
  1. データベースのバックアップと管理のためのツールにはどのようなものがありますか?

高度なトピック
  1. 「ディスクキャッシング」はデータベースのパフォーマンスにどのくらい影響しますか? データの永続性はどうですか?
  2. Java DB を JPA/Hibernate/JDO と一緒に使用することは可能ですか?
  3. Java DB を Java ME とともに使用するにはどうすればよいですか?
  4. Java DB にクラスタリング・ソリューションはありますか?

トラブル・シューティング
  1. なぜ自分のテーブル/カラムをJava DB が認識しないのでしょうか?
  2. Java DB のパフォーマンスを向上させる方法はありますか?

一般


Q:Java DB はオブジェクト・データベースですか?

A:いいえ。Java DB はリレーショナル・データベース管理システム(RDBMS) です。SQL または JDBC を介してデータのストアとクエリーを実行します。Java DB は多くの RDBMS と同様に、JPA、Hibernate、JDO などの永続性レイヤーを通じてアクセス可能です。

Q:Java DB は Apache Derby から分岐した実装ですか?

A:いいえ。Java DB はサンが対応する Apache Derby のバージョンで、Apache Derby と同じバイナリが含まれています。

Q:Java DB のサポートは受けられますか?

A:はい。サポートはオラクルが提供しています。また、Apache Derby ユーザー・コミュニティに質問やバグレポートを送ることもできます。

Q:Java DB はマルチユーザーと同時ユーザーに対応していますか?

A:もちろんです。Java DB はマルチユーザー・データベース・エンジンであり、同時ユーザーに対応しています。

先頭に戻る


インストールと設定


Q:Java DB はどこからダウンロードできますか?

A:
Java DBは、Java 7のdbディレクトリに含まれています。
 
Q:Java DB/Derbyのインストールと設定はどうすればよいですか?

A:こちらドキュメンテーションをご覧ください。

先頭に戻る


SQL の機能


Q:Java DB が提供するデータ型は何ですか?

A:Java DB は、すべての SQL 標準の数値と文字データ型に対応しています。その詳細は、SQL-99 and SQL-2003 features including data types are mapped to Derbyの E011、E021節で詳しく述べられています。boolean 型のデータ型対応は将来のリリースに向けて現在検討されています。

Q:Java DB は SQL-92 に対応していますか?

A:はい。Java DB はほぼすべての SQL92 の機能に対応しています。Derby Reference Manualの 「Derby support for SQL-92 features」 節に詳細が記述されています。

Q:Java DB はストアド・プロシージャに対応していますか?

A:はい。Java にプロシージャや関数を実装し、起動する方法の詳細は、Derby SQL RoutinesWiki ページで確認することができます。

Q:Java DB は WHERE、FROM 節のサブクエリーに対応していますか?

A:Java DB は WHERE 節、FROM 節、IN 述語、数量比較述語のサブクエリーには対応していますが、サブクエリーで更新可能なクエリーには現在対応していません。

Q:Java DB は組み込み文字列関数に対応していますか?

A:はい。Java DB はupper、lower、concat、substring、like、length、trim に対応しています。詳しくはSQL-99 and SQL-2003 features including data types are mapped to Derbyの E021 節を参照してください。

Q:Java DB は日付/時間値の要素を取り出す関数を提供していますか?

A:はい。Java DB は DATE、TIME あるいは TIMESTAMP 値から年、月、日、時間、分、秒を抽出することのできる特殊関数を提供します。戻り値は多倍長整数であるため、算術演算処理に利用することができます。

Q:Java DB は日付/時間演算に対応していますか?

A:はい。Java DB は TIMESTAMP 値の TIMESTAMPADD、TIMESTAMPDIFF 関数を使用して、日付/時間演算に対応しています。

Q:Java DB はどの集約関数に対応していますか?

A:Java DB は SQL 標準集約関数 COUNT、MIN、MAX、AVG、SUM に対応しています。

Q:Java DBに はページ設定クエリー用の LIMIT 節、または ROWNUM 関数に相当するクエリーがありますか?
A:Java DB は現在この機能には対応していませんが、ROW_NUMBER については開発中です。

先頭に戻る


JDBC


Q:Java DB が対応する JDBC のバージョンは何ですか?

A:Java DB はJDBC 4.1 に対応しています。

Q:Java DB 接続プールと JNDI データソースに対応していますか?

A:はい。Java DB はこれらの機能に対応しています。

Q:Java DB はメタデータ API に対応していますか?

A:はい。Java DB は完全な JDBC メタデータ API 実装 (java.sql.DatabaseMetaData) を提供しています。

Q:Java DB には XA 対応はありますか?

A:はい。Java DB には XA 対応があります。

Q:Java DB では、同じ接続上で複数の有効な結果が存在することは可能ですか?

A:はい。Java DB では可能です。

先頭に戻る


システム制限


Q:データベースのサイズの制限はいくつですか?

A:Java DB は、各基本テーブルと各インデックスを単一ファイルに格納するため、実行する JVM と OS のファイルサイズの制限がデータサイズの制限ということになります。Derby はJava 64 ビット・インタフェースでこれらのファイルにアクセスするようコーディングされているため、内部の最大テーブルサイズはおよそ2**64 になります。テーブル数は、唯一 64 ビット長のテーブル識別子が制約となり、合計でおよそ 2**64 テーブルになります。実際には、ディスク領域などのシステムリソースがサイズ制限の要因になると考えられます。Java DB は350 GB 以上のディスク領域上で、5 億組 (tuple) 以上を含むテーブルを使ってテストされています。

Q:バイナリ・オブジェクトの最大許容サイズはいくつですか?

A:Java DB に格納された CLOB または BLOB の最大サイズは 2 GB です。

Q:Java DB はどのプラットフォームで動作しますか?

A:Java DB はCDC/FP 1.1, Java 5, Java 6, Java 7で動作します。

先頭に戻る


データベース管理ツール


Q:データベースのバックアップと管理のためのツールにはどのようなものがありますか?

A:Derby で提供されるインタラクティブな SQL スクリプティング・ツールijを使用して、バックアップと管理作業ができます。現在 Java DB には、管理のための GUI ツールが含まれていませんが、コミュニティでは強い関心がもたれていて、将来は開発される可能性があります。SQuirreL SQL Client など、Darby に対応するオープンソースと商用 GUI ツールが利用可能です。Derby は容易な利用 (ease of use) に注力しており、ほとんどのユーザーにとってこれらのツールは有用です。

先頭に戻る


高度なトピック


Q:「ディスクキャッシング」はデータベースのパフォーマンスにどのくらい影響しますか? データの永続性はどうですか?

A:Windows や Linux など多くのプラットフォーム上で、ディスク書込みキャッシュがデフォルトで有効になっています。これにより、ディスクのパフォーマンスは向上しますが、停電や機器の障害などが起こった場合にはデータ損失や破損が発生することがあります。詳細については「The story of the write cache and half a wormをお読みください。

Q:Java DB を JPA/Hibernate/JDO と一緒に使用することは可能ですか?

A:可能です。Using JPOX JDO with DerbyInitializing Embedded Derby using JPAHibernateHelpWiki ページが参考になります。

Q:Java DB を Java ME とともに使用するにはどうすればよいですか?

A:Java DB は次のJava ME テクノロジー、CDC 1.1、Foundation Profile 1.1、JDBC Optional Package for CDC/Foundation Profile (JSR169)とともに使用することができます。詳しい情報についてはJavaMESupport Wiki ページを参照してください。

Q:Java DB にクラスタリング・ソリューションはありますか?

A:Java DB には現在組み込まれたクラスタリング対応はありません。Java DB で動作するクラスタリング・ソリューションとして、Apache ライセンスのオープンソース Sequoiaがあります。

先頭に戻る


トラブル・シューティング


Q:なぜ自分のテーブル/カラムをJava DB が認識しないのでしょうか?

A:特殊文字や大文字・小文字を区別したい識別子を含む SQL 識別子は、二重引用符で囲まなければなりません。 引用符で囲まれていない識別子は大文字・小文字を区別しません。大文字の区別と特殊文字の使用についてはDerby Reference Manualを参照してください。

Q:Java DB のパフォーマンスを向上させる方法はありますか?

A:Java DB で、障害のあるシナリオでもデータを損失することのない最適なパフォーマンスを得るための構成方法についての概要は、Java DB Performanceプレゼンテーションで参照できます。PerformanceDiagnosisTipsWiki ページでは、Derby Release において発生する可能性のあるパフォーマンスの問題について調べることができます。

先頭に戻る

Left Curve
Java SDKとツール
Right Curve
Left Curve
Javaリソース
Right Curve