it-swarm-ja.com

実体関連図を自動的に生成してレイアウトするためのツール?

既存のデータベースからERDをリバースエンジニアリングできるツールをたくさん見てきましたが、合理的な方法でダイアグラムを自動的にレイアウトできるツールを見つけることができませんでした。それらのほとんどは、すべてのエンティティを互いに重ね合わせて、それを1日と呼びます。エンティティを整理しようとする人もいますが、うまく機能していません。

既存のデータベースの構造をリバースエンジニアリングし、データベースの構成をわかりやすく明らかにする方法で自動的にレイアウトするツールはありますか?そのようなツールを作るとしたら、エンティティを結ぶ線の長さを最小限に抑え、互いに交差する線の数を最小限に抑え、関連するエンティティのグループを互いに目立たせることができます。また、どのテーブルがルックアップテーブルであるか、どのテーブルがマナツーメニーの中間テーブルであるかなどを推測し、これらの役割が図を見ている人にわかるようにエンティティをレイアウトしようと思います。

私は上記を行うための資金を正確に持っていませんが、それが良ければそのようなツールを購入するための資金はあります。

編集:私は100以上のテーブルでデータベースを図解しようとしているので、可能な限り自動化したいと思います。データベースは私がよく知っているものではないので、私が知っていることを図にダンプするのではなく、図を見ることから学びたいと思っています(これはほとんどの図作成ツールが設計されているようです)。

7
user18352

データベースに外部キーがある限り、Visioはかなり良い仕事をしていることがわかりました。さまざまな外部キーを介して接続された4つの異なるマージプロジェクトからの約150のテーブルを含むpostgresqlデータベースがあり、すべての関係を抽出してテーブルをグループ化するという素晴らしい仕事をしました。広範囲の外部キーにもかかわらず、図にはわずかな重複線しかありませんでした。また、外部キーの論理要素が適切にグループ化されているため、ほとんどのテーブルがどのデータベースで作成されているかが明確でした。

2
Pridkett

SchemaCrawler GraphVizを使用して、データベースからダイアグラムを自動的に生成します。 SchemaCrawlerの真の力はそれです

  1. 正規表現を使用してダイアグラム内のテーブルと列を制限できるため、見慣れないデータベースを探索するときに非常に便利です。
  2. 「弱い関連付け」機能を使用して、外部キーとして表現されていないテーブル間の関係を検出できます。

SchemaCrawlerをダウンロードし、Javaパスのどこかに配置して、次のように実行します。

Java -classpath $(echo ../../_schemacrawler/lib/*.jar | tr ' ' ':') schemacrawler.Main -server=mysql -database=your_database_in_localhost -user=your_user -password=your_password -infolevel=maximum -command=graph -outputformat=pdf -outputfile=my_database_diagram.pdf $*

次のようなさまざまなファイル形式を選択できることにも注意してください。

  • png
  • jpg
  • ドット
  • svg

と他の多く。

また、Schemacrawler構成ファイルschemacrawler.config.propertiesで次のプロパティーを設定することにより、外部キー名、列の序数、およびスキーマ名を表示するかどうかを決定することもできます。

  • schemacrawler.format.show_ordinal_numbers = true
  • schemacrawler.format.hide_foreignkey_names = true
  • schemacrawler.format.show_unqualified_names = true

詳細と例は http://schemacrawler.sourceforge.net/diagramming.html にあります。

2
Sualeh Fatehi

おそらく、使用しているデータベースによって異なります。これをMicrosoftSQL Server Management Studioで試したところ、図が作成されてレイアウトされました。要件を満たしているかどうかはわかりませんが、Express Editionは無料なので、いつでも試すことができます。

0
Paxxi

私は過去にこれに Druid を使用し、非常に満足しています。これはオープンソース/無料であり、ダイアグラム内のオブジェクトを移動できます。ただし、UIにはかなりの慣れが必要です。

0
Pops