17

ダイアグラムを作成する必要がある非常に大きなデータベースがあります。データベースは、x64上のSQLServer2008です。数百の関連テーブルがあり、それぞれに最大2000のフィールド(一部はスパース)、テーブル間の複数の関係(実際には、テーブルごとに数百)、複数のスキーマがあります。

SQL Server Management Studioのデータベースダイアグラム機能を使用しようとしましたが、Win32Exceptionでクラッシュしました:「このコマンドを処理するのに十分なストレージがありません...」

別のマシンでVisioのリバースエンジニアリング機能を使用して接続し、図を作成しようとしましたが、完了の兆候がなく、数時間続いています。

この巨大なスキーマを構築するためのスクリプトは、私たちがその仕事のために構築したツールによるものです。ツールが正常に機能している間は、出力を視覚化するのは難しいです。

私はこのデータベースの図を作成するためのツールを探しているので、これを実行できます。助言がありますか?

編集:強調するために、図は実際に有用な参照のために使用されることを実際に想定されていません。これは、システムの複雑さ/規模を示すためのクライアント関係管理デバイスです。

4

8 に答える 8

18

私は数百のテーブル(1k近く)がある場所で働いていましたが、システムで何が起こっているのか誰も本当に知りませんでした。会社は成長し、たくさん雇っていました。ある男が図表を作成する任務を負い、彼はさまざまなテーブルを結ぶ線ですべてのテーブルを含む巨大なタイル張りのポスターを自動的に作成しました(あちこちに行きます)。彼が何を使用したかはわかりません。それは何年も前のUnixとOracleでした(Linuxとオープンソースよりずっと前のことです)。彼の図の表のレイアウトには、本当の韻や理由はありませんでした。彼はすべてのテーブルの図を作成することに成功しました。「ポスター」は共用部分の壁に貼ってあり、見た目も少しありましたが、実際に使った人は誰もいなかったので、使い物にならず、雑然としていて、まとまりがありませんでした。結果として、MS-Wordを使用して、20個のメインテーブル(新しいメインテーブルを「発見」したときに数回繰り返した)を含む単一ページの図を作成し、各外部キーと各テーブルの行を論理的に配置しました。列名、データ型、null可能性、PK、およびすべてのFKを示しました。モニターのそばの壁に図を載せました。結局、「ポスター」を作った人を含め、誰もが私の図のコピーを欲しがりました。私がその仕事を辞めたとき、彼らはまだ私の図を新入社員に与えていました。

エクスプローラーのように作業し、主要なテーブルを見つけてマップし、システムを発見するのに必要な数の特定の図を作成することをお勧めします。巨大な「ポスター」を自動的に作成しようとすると、うまく機能しません。

于 2010-08-17T14:12:14.673 に答える
11

そのサイズのデータ​​ベースに対してあらゆる種類の画像を生成することは、単にあえぎを描く壁に貼り付けられた目の保養になり、正直なところ、時折一瞥する以外は本当の目的を果たしません。実際の目的に役立つRedGateのドキュメントツールのようなツールを使用してみませんか?私はこれをあざけるような言い方をしているわけではないことを理解してください。しかし、私は巨大なデータベースを図解しようとする前にこの道を進んでいました。ある程度成功しましたが、それが役立つ良いアウトレットを見つけることはできませんでした。

于 2010-08-17T14:05:46.353 に答える
2

複数のスキーマがあるので、代わりにスキーマごとに図を生成することをお勧めします

于 2010-08-17T14:06:23.873 に答える
2

graphvizを使用します。いくつかのSQLステートメントを使用してダイグラムを生成し、それをdot.exeで実行してPDFまたはPNGを生成します。

これを使用して、SQLServerテーブル内のデータのダイグラムを生成しました。テーブルにも使える理由はありません。

http://www.graphviz.org/

PDFは1ページのみであるため、特大のグラフをナビゲートするためのjava、silverlight、およびAJAXユーティリティもあります。

于 2010-08-17T14:23:08.713 に答える
0

すべてを1つの図で行うことは避けたいと思います。おっしゃるように、ツールがクラッシュし、テーブルごとに数千のレコードが含まれる可能性のある数百のテーブルを含む図を簡単に理解することはおそらく不可能です。他の論理領域と一部重複している、より小さな論理領域の図を生成できますか?

または、graphvizなどを使用してDDLステートメントを解析し、グラフを作成してみることもできます。おそらくしばらくの間は解約するでしょうが、大学のポスターサイズの小さな印刷物の図を見たのを覚えています。それはおそらくあなたと同じ複雑さでした。幸運を!

于 2010-08-17T14:05:51.860 に答える
0

FWIW、これを進めたいと仮定すると、私は個人的に、VisualStudio2010データベースモデラーがこれまでに出会った中で最も優れた図を実行することを発見しました-Linq2SQLに使用するかのようにデータベースをインポートするだけです

于 2010-08-17T14:07:54.170 に答える
0

schemaspy は、graphvizをバックエンドとして使用して、複数のスキーマにまたがるインタラクティブな図を生成するための便利なインターフェイスを提供します。でも、このサイズで試したことはありません。

于 2016-03-24T21:27:52.197 に答える
0

IntelliJ(具体的にはこれを試したばかりのIDEAですが、他のIDEがこの機能を提供していると思いますhttps://www.jetbrains.com/)にはデータベースクライアント機能が組み込まれており、ここからデータベースに接続して個々のテーブルを分析できます、特定の組み合わせまたはテーブル、またはすべてのテーブル。目的のテーブルを強調表示し、「右クリック」して「図」オプションを選択します。後で参照するために保存したり、印刷したりすることもできます。500以上のテーブルの大規模なDBでこれを試したところ、数秒でレンダリングされました。ベクトル図は、データベース構造と特定のテーブル間の関係と制約を視覚的に消化するための代替方法として機能しますが、印刷にはお勧めしません。

ここに画像の説明を入力してください

于 2016-07-19T15:30:11.067 に答える