おそらく、グラフベースのデータベース(graph db)のようなタイプのデータベースの存在を認識している人はあまりいないでしょう。 以前のNOSQL環境では、このような計画の1つのシステムのみが配布されました-Neo4j。 今日、さらに2つ、InfogridとHyperGraphDBが届きました。 後者について説明します。
作成者自身がシステムを説明しているように:
「HyperGraphDBは、無料の(オープンソースの)ストレージエンジンを備えた、拡張可能でポータブルな分散型の組み込み汎用システムです。 このシステムは、人工知能とセマンティックWebの機能を使用するプロジェクト専用に設計されており、あらゆる規模のプロジェクトの組み込みのオブジェクト指向データベースとして使用できます。
同意します、それは強いようです。 しかし、詳細が必要です。 すべてのNOSQLプロジェクトのシェルター-http : //nosql-database.orgおよびプロジェクトの公式サイト-http : //www.kobrix.comにアクセスします 。 そこから私たちが学ぶことは次のとおりです。
- Java5 +動作に必要
- Windows * nixおよびmacプラットフォーム用の実装があります
- JavaのみのAPI(およびJavaプラットフォームの言語)
- Javaで書かれた
- クエリメソッド-JavaまたはP2P
- 分散コンピューティングとデータのためのP2PレプリケーションとP2Pフレームワーク、およびデータレプリケーション
- 一貫性(同時実行性)はSTMメカニズムに基づいています-ソフトウェアトランザクションメモリ(データベース内のトランザクションに類似したメカニズム-詳細はen:Wikipedia )
- LGPLライセンス
HyperGraphDBのプライマリストレージユニットはatomと呼ばれます。 各原子には任意の値があり、任意の数の他の原子を示すことができます。 データ型は、ハイパーグラフの構造に組み込まれた単一の拡張可能なシステムによって管理されます。
データストレージスキームはプラットフォームに依存せず、任意のプラットフォームで任意のプログラミング言語を使用してデータを操作できます。 低レベルでは、データストレージはBerkeleyDBに基づいています。 実質的に存在しないサイズ制限。 HyperGraphDBはグラフのサイズに制限を導入しませんが、個々のエンティティのサイズはストレージシステム(BerkeleyDBの場合は2 Gb)によって制限されます。 ただし、このアーキテクチャにより、必要に応じて、一部のアトムのBerkeleyDBの制限を回避できます。
現在の実装は完全にJavaベースです。 Javaデータ型をHyperGraphDB型に自動的に変換する機能により、HyperGraphDBをほとんどのビジネスアプリケーションのオブジェクト指向データベースとして使用できます。 C ++の実装は何度も熟考されてきましたが、開発者がいないため開始されていません。
ご覧のとおり、kobrix.comのユーザーはかなり興味深いシステムを作成し、多くのNOSQLシステムに正常に組み込まれました。 さて、興味がある人のために、私はいくつかのリンクを提供します:
プロジェクトページ -http://www.kobrix.com/hgdb.jsp
Google Codeのソースコード -http://code.google.com/p/hypergraphdb/
HyperGraphDBの使用例-http : //www.kobrix.com/wikishow ? project = hypergraphdb&page = FirstSteps