再帰関連とは?さいきかんれん
再帰関連とは、同じ実体どうしを結ぶ関連。組織の上下関係や部品の親子関係のように、同じ型のインスタンス間に階層や順序があるときに用いる。表では自表を参照する外部キーを置くか、親子の対を別表に切り出して表し、階層の深さが変わっても構造を変えずに済ませられる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
階層は深さが業務によって変わり、しかも途中で変わる。深さのぶんだけ表を作る設計にすると、階層が1段増えるたびに表とプログラムを直す羽目になる。そこで深さに依存しない形として、同じ実体を参照する関連を1本置く表現が使われる。読む側の負担は再帰的な問合せへ移り、物理設計では階層の探索性能が論点になる。
具体例
部品表に「上位部品コード」という自表を参照する外部キーを置けば、何段の部品構成でも同じ表で表せる。多対多になる部品構成(1つの部品が複数の製品に使われる)なら、(親部品コード, 子部品コード, 員数)の対応表に切り出す。PostgreSQLやOracle DatabaseのWITH RECURSIVEで階層をたどれる。
試験での引っ掛け
参照制約だけでは循環(AがBの親、BがAの親)を防げないので、循環禁止はアプリケーションやチェック処理で別途課す必要がある。また自表参照の外部キー列はNULLを許さないと根(最上位)を表現できない。1対多の階層と多対多の部品構成は表現が違い、後者は必ず対応表になる。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問3(IPA)
部、課、係の階層関係から成る組織のデータモデルとして、モデルA〜Cの三つの案が提出された。これらに対する解釈として、適切なものはどれか。組織階層における組織の位…
正解:モデルCでは、組織の親子関係が循環しないように制約を課す必要がある。
要点:対応表方式の階層モデルには循環禁止制約を別途課す
モデルCは組織と組織構造(親子の対応表)で階層を表す方式で、図に循環を禁じる制約が示されていない。この構造では親をたどると元に戻るような登録も可能になってしまうため、循環しないことを別途制約として課す必要がある。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問6(IPA)解説で登場
階層構造をもつ組織と、従業員の組織への所属を表すUMLのクラス図のうち、"従業員は組織階層中のどの組織にも所属できるが、兼務はしない"とするものはどれか。
正解:選択肢エ:組織(下位*、上位0..1の自己再帰)が従業員と「所属する」関連(1対*)を持つ。上位組織・末端組織の汎化は無し。
要点:兼務なしは従業員側から組織への多重度1で表す
「どの組織にも所属できる」とは、末端の組織に限らず階層のどのノードにも従業員が結び付けられるということなので、従業員は上位・末端を区別しない組織クラスそのものと関連を持つ必要がある。また「兼務はしない」は、従業員1人から見た所属組織が1つであることを意味し、従業員側から組織への多重度が1になる。階層は組織クラス自身の再帰関連(上位0..1、下位は複数)で表す。この3点を満たす図が正解である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。