9

私は最近、あまりうまく設計されていないデータベースを維持する仕事を引き継ぎました。デザイナーは質問をすることができません。そして、近い将来、さらにいくつかの道が開かれます。

視覚的な補助やデータベース図を使用せずに、テーブル間の関係を理解し​​ようとするのは困難でした。

これにはどのツールが推奨されるのか疑問に思いました。私はVisioについて知っていますが、そこにいくつかの優れたオープンソース/フリーウェアアプリケーションがあることを望んでいました。データベースを変更するのに必要ありません。それを読んで、ある種の視覚的な補助を作成して、物事がどのようにレイアウトされているかを理解し、データがどのように関連するかについてデザイナーが何を考えているかを理解しようとします。


追加の回答データ:SchemaSpyは私が探していたようなものでしたが、昔はコマンドラインで多くのことをしていなかったので、SchemaSpyGUIを使用することにしました。また、Javaをあまり使用しないため、慣れるための構成もいくつかありましたが、最終的には私が探していたものになりました(VisioのER図のオープンソースの置き換え)。

4

13 に答える 13

15

SchemaSpyを試してください。かなり複雑なデータベースに対して実行したところ、結果に非常に満足し、最適化に関するアドバイスがありました.

于 2008-09-22T22:03:00.843 に答える
2

DBVis を試してみてください - http://www.minq.se/products/dbvis/ からダウンロードしてください- プロ版 (必要ありません) と十分なオープン版があります。

あなたがしなければならないことは、適切な JDBC を取得することです - データベース ドライバー。ツールは、1 つのボタンを押すだけで、テーブルと参照を直交、階層、円で表示します ;-) など。楽しみ!

于 2008-09-22T21:48:21.173 に答える
1

どのDBMS(データベース管理システム)を使用していますか?SQLサーバーやAccessなどの最新のDBMSの多くは、ER図を作成できます。

Microsoft Visioは優れたツールであり、任意のデータソースからSQLをリバースエンジニアリングできます。

DDT(データベース設計ツール)は、Windows上の生のSQLからリバースエンジニアリングでき、非常に軽量です(非常に小さな無料ダウンロード)。

MySQL Workbenchは、最も人気のあるMySQLツールの1つであり、無料でダウンロードできるバージョンがあります。

SQLFairyは、Linux上のMySQLに対して同じことを実行できます。

于 2008-09-22T21:33:36.200 に答える
1

まず、私はあなたの痛みを感じています!
ここに私のヒントのいくつかがあります:

  1. 一般に、ツールは、設計者がすべての主キーと外部キーを正しく定義している場合にのみ役立ちます。そのため、ツールがすべての重要な関係を取得するとは限らないことに注意してください。
  2. 最も役立つのは、クライアント コードによって実行されているクエリを確認することです。これにより、存在するリレーションシップだけでなく、最も頻繁に使用されるテーブルとリレーションシップがわかります。ここに集中して取り組む必要があります。
于 2008-09-23T08:41:59.230 に答える
1

オープンソースのソフトウェアはいくつかありますが、Visio Professional のデータベース スキーマのリバース エンジニアリング ツールは非常に優れています。ほとんどのサイトですぐに利用できる傾向があるため、私はこれをよく使用します。

Visio の優れた機能の 1 つは、リバース エンジニアリングを行い、リバース エンジニアリングされたスキーマから独自の図を作成できることです。これは、スキーマの参照ドキュメントを対話的に作成する一環としてこの作業を行っているため、スキーマを調べて理解するための非常に良い方法です。私はこの手法を使用して、活動ベースの原価計算システムから保険引受システムまで、通常はベンダーの助けを借りずにあらゆるものをリバース エンジニアリングしました。Visio の図をいじっていると、とてもリラックスできます。

これと、FK 関係に関するちょっとした仮説テスト (FK がテーブルに物理的に存在しない場合) との間に、非常に複雑なスキーマを理解することができます。リバース エンジニアリングされたモデルを非常に便利な方法で簡単に操作できるため、このような作図アプローチにより、Visio が頭脳派のリーダーになっていることがわかりました。不足している外部キーを埋めたり、サブジェクト エリア図を作成したり、図に注釈を追加したりできます。このプロセスの双方向性により、優れた学習ツールになります。

これはやや主観的な見方ですが、双方向性は私にとって学習プロセスとして非常にうまく機能し、私の好みのアプローチです。ほとんどのサイトは、ライセンスを取得するために 300 ポンド程度を支払うことはありません。私がこれまでに働いた唯一のサイトは、Pro ではなく Visio Standard を使用していたためです。私はうまく尋ね、PHBはそれを承認しました。

于 2008-09-22T21:39:26.250 に答える
1

dbdescは無料ではありませんが、とても良いと聞いています。いくつかの主要なデータベースで動作します。

幸運にも、他の人のデータベース スキーマをまだ解読する必要はありませんでした。CodeSmithに付属の一連のテンプレートを使用しました。

于 2008-09-22T22:09:00.033 に答える
0

mysqlデータベースにはmysqlworkbench(http://www.mysql.com/products/workbench/ )を使用しています。ワークベンチをデータベースに接続すると、ERダイグラムが描画されます。

于 2008-09-22T21:37:17.003 に答える
0

pgsql / win32を使用すると、CPANのGraph::Easyを利用したperlスクリプトを作成するのが最も簡単な解決策であることがわかりました。データベースに外部キー関係を照会し、テーブルをノードとして、FK関係をリンクとして有向グラフを作成します。これがあなたの設定であれば、私はコードを投稿することができます。

于 2008-09-22T21:37:47.407 に答える
0

私は、DB スキーマのリバース エンジニアリングに関して、 Aqua Data Studioでかなりの経験を積んでいます。非常に機能が豊富で、Informix や Sybase などのよりエキゾチックなデータベースもサポートしています。

于 2008-09-24T18:31:49.757 に答える
0

出発点として設定された主キーと外部キーの関係を見てください。

既存のダイアグラムのないデータベースでは、正式に関係が設定されていない可能性があるため、テーブルの構造と名前を調べて、何が何に関連している可能性があるかについて最善の推測を行い、構造を掘り下げて明らかな関係があるかどうかを確認します (ただし、 undefined) 外部キー。ストアド プロシージャを調べて、テーブルがどのように結合され、どのフィールドがクエリされているかを把握します。

データベースを把握するための自動化されたツールは気の利いたものですが、データベースの詳細を自分で実際に掘り下げると、自動的に作成された画像から得られるよりもはるかによく理解できるようになります.

于 2008-09-22T22:57:36.047 に答える
0

データベースを使用するアプリケーションが、使用する SQL (または DB バックエンド自体) をログに記録する方法があるかどうかを試してみるのが好きですが、扱いにくい傾向があります。データベースでどのようなリクエストが実行されたかを把握することで、重要なテーブルに集中できます。

ほとんどのものと同様に、ここでも 80/20 ルールが適用されます。つまり、テーブルの 20% が興味深いものの 80% を実行します。それらを理解したら、図が必要になることはめったにありません。

于 2008-09-22T21:39:33.940 に答える