ArangoDB-データモデルとモデリング

この章では、次のトピックに焦点を当てます-

  • データベースの相互作用
  • データ・モデル
  • データの取得

ArangoDBは、ドキュメントベースのデータモデルとグラフベースのデータモデルをサポートしています。まず、ドキュメントベースのデータモデルについて説明します。

ArangoDBのドキュメントはJSON形式によく似ています。ドキュメントには0個以上の属性が含まれ、各属性に値が付加されます。値は、数値、ブール値またはnull、リテラル文字列などのアトミックタイプ、または埋め込みドキュメント/オブジェクトや配列などの複合データ型のいずれかです。配列またはサブオブジェクトはこれらのデータ型で構成されている場合があります。これは、単一のドキュメントが重要なデータ構造を表すことができることを意味します。

さらに階層では、ドキュメントはコレクションに配置されます。コレクションには、(理論的には)ドキュメントが含まれていないか、複数のドキュメントが含まれている場合があります。ドキュメントを行に、コレクションをテーブルに比較できます(ここで、テーブルと行はリレーショナルデータベース管理システム(RDBMS)のものを指します)。

ただし、RDBMSでは、列を定義することは、レコードをテーブルに格納し、これらの定義スキーマを呼び出すための前提条件です。ただし、新しい機能として、ArangoDBにはスキーマがありません。ドキュメントに含まれる属性を指定する、事前の理由はありません。

また、RDBMSとは異なり、各ドキュメントは別のドキュメントとはまったく異なる方法で構造化できます。これらのドキュメントは、1つのコレクションにまとめて保存できます。実際には、コレクション内のドキュメント間に共通の特性が存在する場合がありますが、データベースシステム、つまりArangoDB自体は、特定のデータ構造にバインドしません。

次に、ArangoDBの[を理解しようとします。graph data model]、2種類のコレクションが必要です。1つ目はドキュメントコレクション(群論言語では頂点コレクションと呼ばれます)、2つ目はエッジコレクションです。これら2つのタイプには微妙な違いがあります。エッジコレクションにもドキュメントが格納されますが、2つの固有の属性が含まれているという特徴があります。_from そして _toドキュメント間の関係を作成するため。実際には、ドキュメント(読み取りエッジ)は2つのドキュメント(読み取り頂点)をリンクし、両方ともそれぞれのコレクションに保存されます。このアーキテクチャは、ラベルだけでなく、それ自体がドキュメントのような完全なJSONである可能性があるエッジを除いて、ラベル付きの有向グラフのグラフ理論の概念から派生しています。

新しいデータを計算したり、ドキュメントを削除したり、それらを操作したりするには、クエリを使用します。クエリは、指定された基準に従ってドキュメントを選択またはフィルタリングします。「クエリの例」のように単純であるか、「結合」のように複雑であるかのいずれかで、クエリはAQL(ArangoDBクエリ言語)でコーディングされます。