注:元々この質問はPostgreSQLに対して行われたものですが、その答えは、外部キーの関連付けを検出できるJDBCドライバーを備えたほとんどすべてのデータベースに当てはまります。
外部キーとテーブル間の関係についてPostgreSQLデータディクショナリにクエリを実行するのは非常に簡単ですが、その情報を使用してテーブル間の関係のグラフを生成するにはどうすればよいですか?
これを実行できるツールに関する推奨事項はありますか?
編集: GraphVIZ/DOTが役立つことは知っていますが、コーディング方法についてはわかりません有向グラフ.DOTファイルを生成するアプリ。
MicrosoftVisioはこれを簡単に実行できます。
少なくともOracleの場合は、このクエリを実行するか、DBAに実行して結果を送信するように依頼します。結果をテキストファイルに直接コピーして、Graphvizのツールで解釈し、データベース図を作成できます。
SELECT '"' || Source.TABLE_NAME || '" -> "'
|| Destiny.TABLE_NAME || '";' AS For_GraphViz
FROM dba_constraints Source
JOIN dba_constraints Destiny
ON Source.owner='my_db_owner' AND Destiny.owner='my_db_owner'
AND Source.CONSTRAINT_TYPE='R'
-- theoretically this validation should be redundant
-- AND Destiny.Constraint_type = 'P'
AND Source.R_CONSTRAINT_NAME = Destiny.CONSTRAINT_NAME
ORDER BY Source.TABLE_NAME, Source.CONSTRAINT_TYPE, Source.CONSTRAINT_NAME
, Source.R_CONSTRAINT_NAME, Source.INDEX_NAME;
同様のクエリはSQLServerでも簡単に作成できますが、MySQLやPostgreSQLなどについては知りません。
Dot はマルチプラットフォームであり、役立つ場合があります。
DBVisualizer も無料で素敵な代替手段です。