再帰結合はリレーショナルデータベースで使用される操作であり、「固定小数点結合」と呼ばれることもあります。これは結合操作を繰り返す複合操作であり、通常は毎回より多くのレコードを蓄積し、繰り返しによって結果(前回の反復結果と比較して)が変化しなくなるまで続きます。[1]
たとえば、家族関係のデータベースを検索する場合、各人物のレコードに「母親」と「父親」のフィールドがあるとします。この場合、再帰結合は、人物の既知の祖先すべてを取得する 1 つの方法です。まず、人物の直系の両親のレコードが取得され、次に両親の情報を使用して祖父母のレコードが取得され、新しいレコードが見つからなくなるまでこの処理が続けられます。
この例では、実際の多くのケースと同様に、繰り返しには単一のデータベース テーブルのみが関係するため、より具体的には「再帰的な自己結合」になります。
再帰結合は、インデックス作成、キーフィールドの追加、その他の手法による最適化が行われない限り、非常に時間がかかります[2] 。グラフトラバーサルは、再帰結合よりも低コストです[3] 。
再帰結合は階層データに特有の特徴であるため、 XMLデータでは深刻な問題となります。XMLでは、ある要素が別の要素を含んでいるかどうかを判定するといった操作が非常に一般的であり、XMLデータをリレーショナルデータベースに格納する場合、再帰結合はおそらくこれらの操作を実装する最も分かりやすい方法と言えるでしょう。
SQL:1999標準では、再帰結合を定義する標準的な方法は、再帰共通表式(CTE)を使用することです。再帰CTEをサポートするデータベース管理システムには、 Microsoft SQL Server、Oracle、PostgreSQLなど があります。
参照
参考文献
- ^ Zygiaris, Sotirios (2018-08-23). データベース管理システム:ORACLE、MySQL、MS Access を使用したビジネス指向のアプローチ. Emerald Group Publishing. p. 136. ISBN 978-1-78756-696-5。
- ^ ヒーリー、クリストファー・G. (2016年11月17日). ビッグデータのためのディスクベースアルゴリズム. CRC Press. p. 127. ISBN 978-1-315-30286-7。
- ^ リソース、マネジメント協会、情報 (2016年4月20日)。ビッグデータ:概念、方法論、ツール、およびアプリケーション。IGI Global。596ページ。ISBN 978-1-4666-9841-3。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク)