多くのテーブルのペアがあり、どのペアが PK-FK 関係によって相互に関連付けられているテーブルを持っているかを効率的に判断したいと考えています。
- PK-FK 関係が文書化されている場合はそれを利用しますが、常に文書化されているとは限りません。(例えばソースがフラットファイルの場合など)
- 文書化されていない場合は、2 つのテーブルが関連しているかどうかを効率的に判断する方法が必要です。
- ペアのテーブルが非複合キーによって関連付けられていない場合は、複合キーを使用する必要があります。
私が探しているのは、以下のいずれかです。
- 既存のアルゴリズム。
- 任意の研究論文。
- 任意のアイデア/ポインタ。
- オンラインで入手可能な同様の作品のいずれか。
- 本のおすすめなど
例えば:
テーブルのペアの下にあるとします。
{Table1, Table2}
{Table3, Table4}
{Table5, Table6}
などなど...
{Table3, Table4}
上記のペアのうち、テーブル Table3 と Table4 が PK-FK 関係で互いに関連付けられている場合、ペアを返したいと思います。正しいペアを返すには、テーブルが関連しているかどうかを効率的に判断する方法が必要です (関係が文書化されていないと仮定します)。
注:メタデータ ベースの検出だけでなく、テーブル間の PK-FK 関係のデータ ベースの検出を探しています (メタデータが利用できない場合があるため)。
よろしくお願いします。