Arangodb-data-models-and-modeling

提供:Dev Guides
移動先:案内検索

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

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

  • データベースの相互作用
  • データ・モデル
  • データ検索

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

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

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

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

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

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

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