ArangoDB とは

ArangoDBは、triAGENS GmbHによって開発されたネイティブのマルチモデルデータベースシステムです。データベースシステムは、1つのデータベースコアと統合照会言語AQL(ArangoDB Query Language)を持つ3つの重要なデータモデル(キー/値、ドキュメント、グラフ)をサポートしています。クエリ言語は宣言型であり、単一のクエリで異なるデータアクセスパターンを組み合わせることができます。 ArangoDBはNoSQLデータベースシステムですが、AQLは多くの点でSQLと似ています。

OrientDB とは

OrientDBはJavaで書かれたオープンソースのNoSQLデータベース管理システムです。グラフ、文書、キー/値、およびオブジェクトモデルをサポートするマルチモデルデータベースですが、関係はレコード間の直接接続を持つグラフデータベースのように管理されます。これは、スキーマレス、スキーマ全体およびスキーマ混合モードをサポートしています。これは、ユーザーとロールに基づいた強力なセキュリティプロファイリングシステムを持ち、グラフトラバーサルのために拡張されたSQLとともにGremlinによるクエリをサポートします。 OrientDBは、Bツリーと拡張可能なハッシングに基づくいくつかの索引付けメカニズムを使用します。最後は「ハッシュ索引」と呼ばれ、LSMツリーとフラクタルツリー索引ベースの索引を実装する計画があります。各レコードには、Arrayリスト内のレコードの位置を示す代理キーがあり、レコード間のリンクは、リファラーの内部に格納されたレコードの位置の単一値として、またはレコード位置のBツリー(いわゆるレコードIDまたはRID)として格納されます(O(1)の複雑さを伴う)高速のトラバーサルと、新しいリンクの迅速な追加/削除を実現します。 OrientDBは、2017年9月現在、DB-Enginesのグラフデータベースランキングによると3番目に人気のあるグラフデータベースです。
OrientDBの開発は、元の著者Luca Garulliが作成したOrientDB LTD社が率いるオープンソースコミュニティに依存しています。プロジェクトはGitHubを使用してソース、コントリビュータおよびバージョン管理、Google GroupおよびStack Overflowを管理し、世界中のユーザーに無料でサポートを提供します。 OrientDBはまた、基本を学び、OrientDBを使い始めるために、無料のUdemyコースを提供しています。

Graph database とは

計算では、グラフデータベース(GDB)は、ノード、エッジ、およびプロパティを使用してデータを表現および格納するセマンティッククエリのグラフ構造を使用するデータベースです。システムの重要な概念は、ストア内のデータ項目に直接関連するグラフ(またはエッジまたは関係)です。この関係によって、ストア内のデータを直接リンクすることができ、多くの場合、1回の操作で取得できます。
これは、リレーショナルデータベース管理システムの助けを借りて、物理レコードチェーンのような実装面を課すことなくデータを管理することを可能にするリレーショナルデータベースと対照的です。例えば、データ間のリンクは、論理レベルでデータベース自体に格納され、関係する代数演算(例えば、結合)を使用して、関連する論理形式の関連データを操作して返すことができる。リレーショナル・クエリの実行は、データベースの論理構造を変更することなく性能を高めることを可能にする、物理レベルのデータベース管理システム(例えば、インデックスを使用する)を用いて可能である。
グラフデータベースは、設計上、リレーショナルシステムでモデル化することが難しい複雑な階層構造を簡単かつ迅速に取得できます。グラフデータベースは、1970年代のネットワークモデルデータベースに似ていますが、どちらも一般的なグラフを表していますが、ネットワークモデルデータベースは抽象度が低く、エッジのチェーン全体で容易にトラバースできません。
グラフデータベースの基礎となるストレージメカニズムはさまざまです。あるものはリレーショナル・エンジンに依存し、テーブルにグラフ・データを「格納」します(表は論理的要素ですが、このアプローチはグラフ・データベース、グラフ・データベース管理システム、およびデータが存在する物理デバイス間に別のレベルの抽象化を課します)実際に格納される)。キーストアまたはドキュメント指向のデータベースをストレージに使用し、本質的にNoSQL構造にするものもいます。非リレーショナルストレージエンジンに基づくほとんどのグラフデータベースには、基本的に別のドキュメントへのポインタを持つ関係であるタグまたはプロパティの概念も追加されています。これにより、データ要素をまとめて簡単に検索できるように分類することができます。
グラフデータベースからデータを取得するには、リレーショナルシステムでデータを操作するために設計されたSQL以外のクエリ言語が必要であり、したがって、グラフをトラバースすることを「エレガントに」処理できません。 2017年には、SQLがリレーショナルデータベースのために使用されていたのと同じように、単一のグラフクエリ言語が普遍的に採用されておらず、非常に多くの種類のシステムが存在します。 Gremlin、SPARQL、Cypherなどのマルチベンダークエリ言語につながるいくつかの標準化の取り組みが行われました。クエリ言語インターフェイスを持つことに加えて、一部のグラフデータベースにはアプリケーションプログラミングインターフェイス(API)を介してアクセスします。