3章グラフでのデータモデリング

前章では、ドキュメント、カラムファミリー、キーバリューといったNoSQLストアや従来のリレーショナルデータベースと比較したグラフデータベースの大きな利点を説明しました。しかし、グラフデータベースを採用すると、グラフで世界をどのようにモデリングするのかという疑問が湧きます。

本章では、グラフのモデリングを重点的に取り上げます。プロパティグラフモデル(最も広く採用されているグラフデータモデル)のまとめから始め、本書のコード例のほとんどで使用するグラフクエリ言語Cypherの概要を説明します。Cypherは、プロパティグラフの記述とクエリのための言語の1つです。リレーショナルデータベース管理システム(RDBMS)の世界にはSQLが存在しますが、現在、グラフクエリ言語に合意に至った標準は存在しません。Cypherを選んだ理由は、1つには著者がCypherに堪能であるからですが、学習や理解がしやすく、広く使われているからでもあります。これを基に、グラフのモデリングの2つの例を詳しく見ていきます。最初の例はシステム管理ドメインの例であり、リレーショナルモデリングとグラフのモデリングの手法を比較します。2つ目のシェイクスピア文学の製作と消費の例では、グラフを使って全く異なる複数のドメインをつなげてクエリを行います。本章の最後では、グラフでモデリングするときの一般的な落とし穴に目を向け、優れた実践方法を浮き彫りにします。

3.1 モデルと目的

グラフでのモデリングを深く掘り下げる前に、モデルに関して一般的に説明します。モデリングは、特定の要求や目的を動機とした抽象化作業です。モデリングは、手に負えないドメインの特定の側面を構造化して操作できる空間に変換するために行います。世界を「ありのまま」に表現する自然な方法はなく、目的を持った多くの選択、抽象化、簡素化がありますが、その中には特定の目的を満たすために、役に立つ方法があります。 ...

Get グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.