ArangoDB-マルチモデルファーストデータベース
ArangoDBは、その開発者からネイティブマルチモデルデータベースとして歓迎されています。これは、他のNoSQLデータベースとは異なります。このデータベースでは、データはドキュメント、キーと値のペア、またはグラフとして保存できます。また、単一の宣言型クエリ言語を使用して、データの一部またはすべてにアクセスできます。さらに、異なるモデルを1つのクエリに組み合わせることができます。また、マルチモデルスタイルにより、3つのデータモデルのいずれかまたはすべてで水平方向にスケーラブルな無駄のないアプリケーションを作成できます。
レイヤードマルチモデルデータベースとネイティブマルチモデルデータベース
このセクションでは、ネイティブマルチモデルデータベースと階層化マルチモデルデータベースの決定的な違いに焦点を当てます。
多くのデータベースベンダーは自社製品を「マルチモデル」と呼んでいますが、キー/値またはドキュメントストアにグラフレイヤーを追加することは、ネイティブマルチモデルとしての資格がありません。
前のセクションですでに述べたように、同じクエリ言語で同じコアであるArangoDBを使用すると、1つのクエリでさまざまなデータモデルと機能をまとめることができます。ArangoDBでは、データモデル間の「切り替え」はなく、クエリを実行するためにデータをAからBにシフトすることもありません。これは、「階層化」アプローチと比較して、ArangoDBのパフォーマンス上の利点につながります。
マルチモーダルデータベースの必要性
[Fowler]の基本的な考え方を解釈することで、永続層のさまざまな部分にさまざまな適切なデータモデルを使用することの利点を実感できます。この層は、より大きなソフトウェアアーキテクチャの一部です。
これによると、たとえば、リレーショナルデータベースを使用して、構造化された表形式のデータを永続化することができます。非構造化されたオブジェクトのようなデータのドキュメントストア。ハッシュテーブルのキー/値ストア。高度にリンクされた参照データのグラフデータベース。
ただし、このアプローチの従来の実装では、同じプロジェクトで複数のデータベースを使用することになります。これにより、運用上の摩擦(より複雑な展開、より頻繁なアップグレード)、およびデータの整合性と重複の問題が発生する可能性があります。
3つのデータモデルのデータを統合した後の次の課題は、データ管理者がドキュメントクエリ、キー/値ルックアップ、グラフィクエリ、任意の組み合わせなどのさまざまなクエリを表現できるようにする共通のクエリ言語を考案して実装することです。これらの。
沿って graphy queries、グラフ理論上の考慮事項を含むクエリを意味します。特に、これらには、エッジからの特定の接続機能が含まれる場合があります。例えば、ShortestPath, GraphTraversal、および Neighbors。
グラフは、関係のデータモデルとして最適です。ソーシャルネットワーク、レコメンダーシステムなどの多くの実際のケースでは、非常に自然なデータモデルはグラフです。リレーションをキャプチャし、各エッジおよび各頂点でラベル情報を保持できます。さらに、JSONドキュメントは、このタイプの頂点およびエッジデータを格納するのに自然に適合します。
ArangoDB─機能
ArangoDBにはさまざまな注目すべき機能があります。以下の顕著な特徴を強調します-
- マルチモデルパラダイム
- ACIDプロパティ
- HTTP API
ArangoDBは、一般的なすべてのデータベースモデルをサポートしています。以下は、ArangoDBでサポートされているいくつかのモデルです。
- ドキュメントモデル
- キー/値モデル
- グラフモデル
データベースからデータを取得するには、単一のクエリ言語で十分です。
4つのプロパティ Atomicity, Consistency, Isolation、および Durability(ACID)データベーストランザクションの保証について説明します。ArangoDBは、ACID準拠のトランザクションをサポートしています。
ArangoDBを使用すると、ブラウザなどのクライアントがHTTP APIを使用してデータベースと対話できます。このAPIはリソース指向であり、JavaScriptで拡張できます。