SNSのようなネットワーク型の構造を持つデータに対する複雑な検索は、RDBMSの場合、多数の結合が発生するため、高速に検索することは困難とされてきた。今、これを可能にするグラフデータベースが注目されている。本稿では、RDBMSとグラフデータベースの違いを明確にしたうえで、グラフデータベースを効果的に活用するためのポイントを解説する。
RDBMSとグラフデータベースの違い
グラフデータベースの「グラフ」とは、数学のグラフ理論で取り扱うネットワーク型の構造を持つデータを意味しRDBMSがデータの構造を表のかたちで表現するのに対して、グラフデータベースでは、データのエンティティを表すノードと、ノード間の関係性を表すエッジで表現する。
例えば、SNSの4人のユーザーとその友達関係を表現する場合、RDBMSでは、「ユーザー」と「友達」の2つの表が使用されるのに対して、グラフデータベースでは、4つのノードとそれらをつなぐエッジが使用される(図1)。
出典:ITR
RDBMSに対するグラフデータベースの優位性は、データ・エンティティ間の関係をたどって行われる検索処理の速度に表れる。図1の例で、「東京 太郎」の友達の友達の名前を検索する場合、RDBMSでは、3回表の結合が必要であるが、グラフデータベースでは、ノードからノードへの探索を2回行うだけでよい(図2)。さらに、RDBMSでの結合が表単位で行われるのに対して、グラフデータベースの探索はエンティティ単位で行われるため、1回の処理にかかる時間についてもグラフデータベースがはるかに優位である。
このようなグラフデータベースの優位性は、データ量が増大するにつれてさらに顕著に表れるため、ビッグデータ分析の分野において特に注目されている。
出典:ITR