Carbanadoは、Javaアプリケーションの拡張可能な高性能持続性抽象化レイヤーであり、基礎となる持続性テクノロジーのリレーショナルビューを提供します。永続性は、JDBCアクセス可能なSQLリレーショナルデータベースによって提供されるか、バークレーDBになることができます。また、2つの間で完全に複製することもできます。
バッキングデータベースがSQLベースではない場合でも、Carbonadoは、あらゆる種類のリレーショナルデータベースに見られるコア機能の多くを依然としてサポートしています。クエリ、参加、インデックスをサポートし、クエリの最適化を実行します。この方法で使用する場合、Carbanadoは単にリレーショナルデータベースのレイヤーではなく、リレーショナルデータベースです。 SQLは、リレーショナルデータベースを実装するための要件ではありません。
Carbanadoで新しいタイプを定義するには、Java Beanの規則に続くインターフェイスまたは抽象クラスを作成することが含まれます。追加情報は、特別な注釈を挿入することで指定されています。少なくとも、主キーを指定するには、注釈が必要です。アノテーションは、Java 5で最初に利用できる機能であり、その結果、CarnaladoはJava 5に依存します。
表面的には、CarnaladoのタイプはPojosのように定義されているように見えるかもしれません。違いは、カルボナドでは、タイプが関係のオブジェクト表現であることです。オブジェクトデータベースでも、オブジェクトリレーショナルブリッジでもありません。さらに、データ型の定義は単なるインターフェイスであり、外部構成ファイルはありません。タイプを実装するすべてのコードは自動生成されていますが、追加のビルドタイムステップはありません。
Carnaladoは、実際のストレージにアクセスするときに非常に低いオーバーヘッドを課すことにより、高性能を達成することができます。低オーバーヘッドは、Cojen Libraryを介して、パフォーマンスクリティカルコードを自動生成することによって部分的に達成されます。
Carbonado 1.2は、こことリリースノートにまとめられている多くの新機能を追加します。
一般的な機能
リポジトリ
JDBC機能
クエリエンジン機能
Carbanadoは、より良い依存関係管理のためにいくつかのパッケージバンドルに分類されます。 Carnaladoを始める最も簡単な方法は、Berkeley DB JEバックされたリポジトリを使用することです。このためには、CarbonadoとCarbanadosleepycatjeパッケージのバンドルを入手する必要があります。
Carbonado Core Carbonadoコードは、Apache Commonsのロギング、Joda-Time、およびCojenに依存しています。
Barkeley DB Java Edition、Sleepycat/OracleをサポートするためのリポジトリがCarbarados lepeakycatjeに含まれています。 Berkeley DB JEコードは、個別にダウンロードしてインストールする必要があります。
Carbanados lepeekycatdbには、Sleepycat/Oracle Berkeley DBをサポートするためのリポジトリが含まれています。 Berkeley DBコードは、個別にダウンロードしてインストールする必要があります。
Carbonado用語からSQL用語への緩いマッピング:
カルボナド | SQL |
---|---|
リポジトリ | データベース |
ストレージ | テーブル |
保存可能な定義 | テーブルの定義 |
保存可能なインスタンス | テーブルロウ |
財産 | カラム |
クエリ | ステートメントを選択/削除します |
カーソル | 結果セット |
Carnaladoクエリは、SQLが選択するほど表現力がありません。 SQLとは異なり、Carbonadoクエリはデータ処理や集計関数をサポートしていません。
Carnaladoは、自動インデックスの選択を可能にする最小限のクエリ機能をサポートしています。 SQLで利用可能なその他の機能は、コードでエミュレートできます。データベースがローカルの場合、これはパフォーマンスの損失を提供しません。
CarbanadoをSQLよりも便利なレイヤーとしてのみ使用したいアプリケーションでは、完全なSQL機能を使用できません。 Carbanadoは決してJDBCの代替品ではありません。これらの種類のアプリケーションは、CarbonadoとJDBCのブレンドを選択する場合があります。これを容易にするために、現在のトランザクションで使用されているJDBC接続へのアクセスがサポートされています。
Berkeley DBに裏付けられているCarnaladoリポジトリは、ルールベースのクエリオプティマイザーを使用してクエリプランを作成します。コストベースのオプティマザーは、I/Oコストを推定するため、一般的にはるかに効果的です。 Carbanadoには、主に書くのが簡単であるため、ルールベースのオプティマイザーがあります。
Carnaladoは、さまざまな種類の持続技術をサポートできます。ただし、努力を正当化するのに十分なカルボナド機能を提供するためには、最小限の機能が必要です。
理想的には、Persistenceテクノロジーはトランザクションをサポートする必要があります。そうでない場合は、メモリ内の更新をバッチすることにより、そのトランザクションを実装する必要があります。トランザクションがコミットされるまで、更新は持続しません。アトミックバッチの更新がサポートされている場合、リポジトリは「読み取りcommited」の分離レベルをサポートすることをレポートできます。それ以外の場合は、「committedを読む」の最低レベルのみをサポートできます。
持っているといいが、厳密に必要ではない追加機能: