HeadlinesBriefing favicon HeadlinesBriefing.com

再帰CTE: SQLグラフトラバーサルガイド

Towards Data Science •
×

開発者が階層、経路探索、ソーシャルネットワークなどのグラフ問題に直面したとき、Neo4jやNetworkXを頼りにすることが多い。しかし、サプライチェーン、組織図、ナビゲーション経路など、数千ノードからなる運用データでは、リレーショナルデータベースで大部分のタスクを処理できる。鍵は、1999年に標準化されたSQL標準機能である再帰型Common Table Expression(CTE)で、現在ではめずらしく使われていない。

CTEはSQL文内の一時的な結果セットで、ロジックを名前付きセクションに分割することで、複雑なクエリの可読性を高める。再帰CTEは、自分自身を参照して、新しいデータが生成されないまでに反復的に行を生成するため、実質的な幅優先探索を実現する。

本稿では、標準SQLのみを使用して、グラフトラバーサル、経路探索、サイクル検出を紹介する。例はPostgres、Oracle、MySQL、SQLiteで動作するが、構文は若干異なる。数十億ノード規模の巨大グラフでは依然として専用ツールが必要だが、大半のビジネスグラフ问题是、再帰CTEを使用して既存のリレーショナルデータベースで快適に解決できる。

主要エンティティ: 会社: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite