読み方 : じゅんかんさんしょう

循環参照【circular reference】

概要

循環参照とは、複数の要素が互いを参照し合い、その参照関係をたどると輪のように元の要素へ戻ってしまう状態のこと。表計算ソフトの数式やプログラムオブジェクトデータベースのテーブル間の関係など様々な場面で発生し、処理が正常に完了しない原因となる。

表計算における循環参照

最も身近な例が表計算ソフトの数式である。A1セルに「B1の値に10を足す」という数式を、B1セルに「A1の値を2倍にする」という数式を入力すると、どちらの値も相手の計算結果が確定しなければ求められなくなる。

多くの表計算ソフトはこうした入力を検知するとエラーを表示し、計算処理を中断する。設定によっては「反復計算」という、一定回数または収束条件まで計算を繰り返して近似値を求める機能を用いて意図的に循環参照を利用する場合もある。

メモリ管理における循環参照

プログラミングの分野ではメモリ管理で循環参照が問題となることある。参照カウント方式でオブジェクトの管理を行う場合、あるオブジェクトを参照している別のオブジェクトの数を数え、その数がゼロになった時点で使われなくなったと判断してメモリを自動的に解放する。

このとき、オブジェクト間に循環参照が生じているとお互いに参照し合っているためカウントがゼロにならない。不要になったオブジェクトが解放されないままメモリ上に残り続ける「メモリリーク」(memory leak)という現象を引き起こすことがある。これに対応するため、マークアンドスイープ方式など循環参照にも対応できるガベージコレクションの仕組みが採用されることがある。

データベース設計における循環参照

データベース設計においても、社員テーブルが部署テーブルを参照し、その部署テーブルが責任者として特定の社員テーブルを参照するというように、テーブル同士が外部キーを介して互いを参照する構造が組まれる場合がある。この場合、テーブルの作成順序やデータの削除処理の順序に制約が生じ、設計や運用が複雑になりやすい。

(2026.7.3更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。