web-dev-qa-db-ja.com

データベーススキーマからER図を自動的に作成する

193個のテーブルを持つデータベースがあり、それらからエンティティ関係図を作成する必要があります。 FKに関して、テーブル間に正式な関係はありません。関係は1- *テーブルでマップされます。

問題のデータベースは、見つかったMusicBrainzデータベースです here

SchemaSpy は関係を検出しません。

私が手動で作成する以外に、誰かが何か提案をしていますか?または、このデータベースに精通していて、何らかの支援を提供できる人はいますか?

3
Mike

リレーショナルデータベース内のテーブル間の関係は、外部キーを使用して行われます。

ウィキペディアから 定義

外部キーは、データベース設計において重要な役割を果たします。 データベース設計の重要な部分の1つは、外部キーを使用して1つのテーブルから別のテーブルを参照することにより、実際のエンティティ間の関係が参照によってデータベースに確実に反映されるようにすることです。

FKなしでは、2つのテーブルが関連していることを知るスキーマモデリングツールはありません。

解決策としては、テーブルの名前(関連するテーブルの名前が類似している場合)、次に関係を定義する列の名前とデータ型を解析してFKをスクリプト化することが考えられます。しかし、それは簡単なことではありません。

6
Marian

それはその価値よりも厄介かもしれませんが、リバースエンジニアリングリレーショナルデータベーススキーマに関する論文があります: データベースリバースエンジニアリングのための抽象的なERスキーマへの関係のクラスタリング

このペーパーでは、外部キーがない場合に関係を推論するためのアルゴリズムについて説明します。私は、ある程度の成功を収めて、学校の課題の一部としてこの部分を実装しました。

3
Rankinstein

Debian/Ubuntuファミリにはpostgresql-autodocという名前のパッケージがあります。使いやすく、豊富な形式の図(.dia、.html、.neato、.dot、.xml)を生成

2
eddy85br

私はあなたのための解決策を持っています- Dataedo ツール。他のツールと同様にデータベーススキーマを読み取りますが、欠落しているFKをドキュメント自体で(データベースに干渉することなく)定義できるというのが強みです。次に、そのモデルからER図を作成できます。テーブルと列を記述し(データディクショナリを作成)、完全なドキュメントとしてPDFとHTMLにエクスポートします。

私はDataedoの製品マネージャーです。

1
Bad Pitt