グラフデータベースは、グラフを作成および操作するための専用の単一目的プラットフォームと定義されます。グラフには、ノード、エッジ、およびプロパティが含まれており、これらはすべて、リレーショナルデータベースでは機能しない方法でデータを表現および格納するために使用されます。
グラフ分析は、もう1つの一般的に使用される用語であり、特に、データポイントをノードとして、関係をエッジとして使用して、グラフ形式でデータを分析するプロセスを指します。グラフ分析には、グラフ形式をサポートできるデータベースが必要で、専用のグラフデータベース、またはグラフを含む複数のデータモデルをサポートする統合データベースである可能性があります。
グラフデータベースの一般的なモデルには、プロパティ・グラフとRDFグラフの2つがあります。プロパティグラフは分析とクエリに重点を置いていますが、RDFグラフはデータ統合に重点を置いています。どちらのタイプのグラフも、点(頂点)とそれらの点間の接続(エッジ)のコレクションで構成されています。ただし、違いもあります。
グラフデータベースの一般的なモデルには、プロパティ・グラフとRDFグラフの2つがあります。プロパティグラフは分析とクエリに重点を置いていますが、RDFグラフはデータ統合に重点を置いています。どちらのタイプのグラフも、点(頂点)とそれらの点間の接続(エッジ)のコレクションで構成されています。ただし、違いもあります。
プロパティグラフは、データ間の関係をモデル化するために使用され、それらの関係に基づくクエリとデータ分析を可能にします。プロパティグラフには、主語に関する詳細情報を含めることができる頂点と、頂点間の関係を示すエッジがあります。頂点とエッジには、プロパティと呼ばれる属性を設定でき、それらは関連付けることができます。
この例では、一連の同僚とその関係がプロパティグラフとして表されています。
プロパティグラフは非常に用途が広いため、金融、製造、公衆安全、小売など、幅広い業界やセクターで使用されています。
RDFグラフ(RDFはResource Description Frameworkを表します)は、文を表現することを目的とした一連のW3C(Worldwide Web Consortium)標準に準拠しており、複雑なメタデータとマスターデータを表現するのに最適です。これらは、リンクトデータ、データ統合、およびナレッジグラフによく使用されます。また、ドメイン内の複雑な概念を表すことも、データに関する豊富なセマンティクスと推論を生成することもできます。
RDFモデルでは、文は3つの要素で表されます。つまり、文の主語、述語、目的語を反映するエッジにより接続された2つの頂点です。これはRDFトリプルと呼ばれています。すべての頂点とエッジは、一意のURI(つまり一意リソース識別子)によって識別されます。RDFモデルは、明確なセマンティクスを持つ標準形式でデータを公開する方法を提供し、情報交換を可能にします。政府の統計機関、製薬会社、医療機関は、RDFグラフを広く採用しています。
グラフとグラフデータベースは、データの関係を表現するグラフモデルを提供します。これにより、ユーザーは接続に基づいて「トラバーサルクエリ」を実行し、グラフアルゴリズムを適用してパターン、パス、コミュニティ、インフルエンサー、単一障害点、その他の関係を見つけることができるようになります。その結果、大量のデータに対する大規模でより効率的な分析が可能になります。グラフのパワーは、分析、グラフにより生成されるインサイト、異種のデータソースをリンクするその機能にあります。
グラフの分析に関しては、アルゴリズムが頂点間のパスと距離、頂点の重要性、頂点のクラスタリングを調査します。例えば、重要度を判断するため、アルゴリズムは多くの場合、入力エッジ、隣接する頂点の重要度、その他の指標を調べます。
グラフアルゴリズム(グラフ内のデータ間の関係や動作を分析するために特別に設計された操作)により、他の方法では見にくいものを理解することができます。グラフの分析に関しては、アルゴリズムが頂点間のパスと距離、頂点の重要性、頂点のクラスタリングを調査します。アルゴリズムは多くの場合、入力エッジ、隣接する頂点の重要度、その他の指標を調べることにより、重要度を判断します。たとえば、グラフアルゴリズムは、ソーシャルネットワークまたはビジネスプロセスで他の人と最も関連している個人またはアイテムを識別できます。アルゴリズムは、個人または関連するトランザクションを接続するコミュニティ、異常、一般的なパターン、およびパスを識別できます。
グラフデータベースには関係が明示的に格納されるため、頂点間の接続を利用するクエリとアルゴリズムは、数時間や数日単位ではなく1秒未満で実行できます。ユーザーは無数の結合を実行する必要がなく、分析や機械学習にデータを簡単に使用して、周囲の世界についてより多くのことを知ることができます。
グラフ形式は、関係の強さや質などに基づいて、離れた接続を見つけたり、データを分析したりするための、より柔軟なプラットフォームを提供します。グラフを使用すると、ソーシャルネットワーク、IoT、ビッグデータ、データウェアハウスの接続とパターン、さらには銀行での不正検出、ソーシャルネットワークでの接続の検出、顧客360などの複数のビジネスユースケースの複雑なトランザクションデータを探索して発見できます。今日、グラフデータベースは関係のつながりをより明確にする方法とされ、データサイエンスの一部としてますます使用されています。
グラフデータベースには関係が明示的に格納されるため、頂点間の接続を利用するクエリとアルゴリズムは、数時間や数日単位ではなく1秒未満で実行できます。ユーザーは無数の結合を実行する必要がなく、分析や機械学習にデータを簡単に使用して、周囲の世界についてより多くのことを知ることができます。
グラフデータベースは、非常に柔軟で非常に強力なツールです。グラフ形式のため、複雑な関係を決定して、はるかに少ない労力でより深いインサイトを得ることができます。グラフデータベースは通常、プロパティグラフクエリ言語(PGQL)などの言語でクエリを実行します。以下の例は、PGQLとSQLでの同じクエリを示しています。
上記の例に見られるように、PGQLコードはより単純ではるかに効率的です。グラフはデータ間の関係を強調するため、いくつかの異なるタイプの分析に最適です。特に、グラフデータベースは次の点で優れています。
グラフデータベースの簡単な実例は、下の画像です。これは、人気パーティーゲームの「六次のケビン・ベーコン」を視覚的に表したものです。ご存じない方のために説明すると、このゲームでは、相互映画チェーンに基づいて、ケビン・ベーコンと別の俳優のつながりを見つけ出す必要があります。この関係の強調は、グラフ分析を実証するための理想的な方法になります。
これまでに作成されたすべての映画とそれらの映画に出演したすべての俳優という、2つのカテゴリのノードを持つデータセットを想像してみてください。次に、グラフを使用して、ケビン・ベーコンをMuppetアイコンのミス・ピギーに接続するように求めるクエリを実行します。結果は次のようになります。
この例では、使用可能なノード(頂点)は俳優と映画の両方であり、関係(エッジ)は「演じられた」ステータスです。ここから、クエリは次の結果を返します。
グラフデータベースは、このケビン・ベーコンの例について、次のようなさまざまな関係をクエリできます。
もちろん、これはグラフ分析のどの使用法よりも面白い例です。しかし、このアプローチはほぼすべてのビッグデータで機能し、多数のレコードが相互に自然な接続を示している状況です。グラフ分析を使用する最も一般的な方法のいくつかは、ソーシャルネットワーク、通信ネットワーク、Webサイトのトラフィックと使用状況、実際の道路データ、および金融取引とアカウントを分析することです。
マネーロンダリングは、概念的にはシンプルです。汚れたお金は、合法の資金と混ぜるために回され、有形資産となります。これは、パナマ文書の分析で使用された種類のプロセスです。
より具体的には、循環送金には、不正に得た大金を自分自身に送金する犯罪者が関与しますが、「正常な」口座間で長く複雑な一連の有効な送金を行うことでそれを隠します。それらの「正常な」口座は、実際には合成IDで作成された口座です。それらは、盗まれたID(メールアドレス、住所など)から生成されるため、通常は似たような一定の情報を共有しています。不正な出所を明らかにするのにグラフ分析が最適であるのは、そのような関連する情報があるためです。
不正を検出しやすくするため、ユーザーは、エンティティ間のトランザクションに加えて、メールアドレス、パスワード、住所などの情報を共有するエンティティからグラフを作成できます。グラフが作成された後、簡単なクエリを実行すると、似たような情報の口座を持つすべての顧客が検索され、どの口座が相互に送金しているかが明らかになります。
グラフデータベースはさまざまなシナリオで使用できますが、一般的にはソーシャルネットワークの分析に使用されます。実際、ソーシャルネットワークは大量のノード(ユーザーアカウント)と多次元接続(さまざまな方向への関与)を伴うため、ケースを理想的に使用します。ソーシャルネットワークのグラフ分析では、次のことを判断できます。
ただし、この情報は、ボットによって不自然に歪められている場合は役に立ちません。幸いなことに、グラフ分析はボットを識別して除外する優れた手段を提供できます。
実際のユースケースでは、オラクルチームはOracle Marketing Cloudを使用して、ソーシャルメディアの広告とトラクションを評価し、具体的にはデータを歪めた偽のボットアカウントを特定しました。これらのボットによる最も一般的な動作は、ターゲットアカウントをリツイートすることであり、その結果、それらの人気を人為的に膨らませました。単純なパターン分析により、リツイート数と近隣への接続密度を使用した外観が可能になりました。当然のことながら人気のあるアカウントは、ボット主導のアカウントと比較して、近隣との関係が異なります。
この画像は、自然に人気のあるアカウントを示しています。
この画像は、ボット主導のアカウント動作を示しています。
ここで重要なのは、グラフ分析の力を使用して、自然なパターンとボットのパターンを識別することです。そこからは、それらのアカウントを除外するのと同じくらい簡単ですが、ボットとリツイートされたアカウントの関係などを調べるためにさらに深く掘り下げることも可能です。
ソーシャルメディアネットワークは、全体的なユーザーベースのエクスペリエンスに影響を与えるため、ボットアカウントを排除するために最善を尽くします。このボット検出プロセスが正確であることを確認するため、フラグが立てられたアカウントが1か月後にチェックされました。結果は次の通りです。
罰せられたアカウントのこの非常に高い割合(91.2%)は、パターンの識別とクレンジングプロセスの両方の正確さを示しました。これは、標準の表形式データベースではかなり時間がかかりますが、グラフ分析を使用すると、複雑なパターンをすばやく特定できます。
グラフデータベースは、不正を検出する手段として、金融業界で強力なツールになっています。カードに埋め込まれたチップの使用など、不正防止技術の進歩にもかかわらず、不正は依然としてさまざまな方法で発生する可能性があります。スキミングデバイスは、磁気ストリップから詳細を盗むことができます。これは、チップリーダーがまだインストールされていない場所で一般的に使用されている手法です。これらの詳細が保存されると、それらを偽造カードにロードして、購入したり、お金を引き出したりすることができてしまいます。
不正検出の手段として、パターンの識別は多くの場合、防御の最前線です。予想される購入パターンは、場所、頻度、店舗の種類、およびユーザープロファイルに適合するその他のものに基づいています。何かが完全に異常に見える場合(たとえば、サンフランシスコのベイエリアに住んでいるのに、フロリダで突然深夜に買い物をする人など)、それは潜在的に不正であるとフラグが立てられます。
これに必要な計算能力は、グラフ分析によって大幅に簡素化されます。グラフ分析は、ノード間のパターンの確立に優れています。このケースでは、ノードのカテゴリは、アカウント(カード所有者)、購入場所、購入カテゴリ、トランザクション、および端末として定義されています。自然な行動パターンを特定するのは簡単です。たとえば、特定の月に、人は次のことをする可能性があります。
不正検出は通常、機械学習で処理されますが、グラフ分析はこの取り組みを補完して、より正確で効率的なプロセスを作成できます。関係性に焦点を当てたおかげで、結果は不正な記録を特定してフラグを立てる際の効果的な予測因子になりました。実際に使用する前に、データをキュレートして準備します。
グラフデータベースとグラフ技術は、過去10年間で計算能力とビッグデータが増加するにつれて、進化してきました。実際、複雑なデータ関係の素晴らしい新世界を分析するための標準ツールになることがますます明らかになっています。企業や組織がビッグデータや分析の機能を推進し続けるにつれて、ますます複雑な方法でインサイトを引き出す能力により、グラフデータベースは今日のニーズと明日の成功のためになくてはならないものになっています。
オラクルにより、グラフ技術の採用が容易になります。Oracle DatabaseとOracle Autonomous Databaseには、グラフデータベースとグラフ分析エンジンが含まれているため、ユーザーは、グラフアルゴリズム、パターン・マッチング・クエリ、視覚化を活用することによりデータからより多くのインサイトを見つけることができます。グラフは、マルチモデル、マルチワークロード、マルチテナントの要件(すべて単一のデータベース・エンジン)をサポートするオラクルの統合データベースの一部です。
どのグラフデータベースも高性能をうたっていますが、オラクルのグラフ製品は、クエリのパフォーマンスとアルゴリズムの両方で高いパフォーマンスを発揮し、Oracle Databaseと緊密に統合されています。これにより、開発者は既存のアプリケーションにグラフ分析を簡単に追加し、データベースによってデフォルトで提供されるスケーラビリティ、一貫性、リカバリ、アクセス制御、セキュリティを簡単に利用できるようになります。