2

MSSQL 2005データベースのエンティティ図を作成する必要があります。外部キーのないデータベースのエンティティ図の作成

リレーションシップは主キーを一貫して使用して定義されますが、外部キーは一切ありません。私はMicrosoft Visioの「リバースエンジニア」機能を試しましたが、外付けキーがないために失敗しました。

したがって、リレーションシップを作成するときに外部キーのみに依存しないダイアグラムツールが必要です。

+0

私もこの質問に対する答えを知りたいです。私は、数千のテーブルのようなものと外部キー定義のない商用製品データベース(この場合はIBM DB2)を扱っています。ただし、列の名前は一貫しているので、ツールで列IDを比較し、関係についての推論を行うことは可能でなければなりません。 –

答えて

1

正しい外部キー関係を作成するスクリプトを作成し、ダイアグラムツールを実行してから、外部キーをドロップする2番目のスクリプトを実行します。

これにより、データベースをあまり乱さずにツールを使用することができます。最初のスクリプトが失敗した場合、データに何か問題があることもわかります。

[EDIT]外部キー列の名前付け方法にいくつかのルールがある場合は、スクリプト言語を使用してSQLを生成できます。

これも失敗した場合は、どのデザインツールでも不足している関係を作成することができます。つまり、おそらくデータの不一致にぶつかるでしょう。ここでの解決策は、テーブル定義のスナップショットを作成し、プライベートデータベースサーバー上で(データなしで)データベースを再作成することです。そこでは、オリジナルのシステムを中断することなく、あなたが望むだけデザインを混乱させることができます。

デザインを修正したら、外部キーを作成するコマンドを抽出し、それを実際のシステムに適用することができます。そうすれば、データベースの混乱がどれほど大きいかを知ることができます。そうでない場合は、単に新しいコピーを保持し、そこに設計変更を加えて、チェックした後に変更を本番データベースに移行することができます。

私自身のシステムでは、現在の開発および運用データベースのクローンをすばやく作成するためのスクリプトが常に用意されています。通常、DerbyやHSQLなどの組み込みデータベースを使用します。ただし、プロセスにフィルタを追加する場合は、DDLファイルに$(SCHEMA)を使用し、同じデータベースを同じサーバー上の異なるスキーマにインストールできます。新しい移行計画の結果を新しいスキーマに保存するデータ移行プロジェクトでは、大きな成功を収めました(TABLE_DATE_XXここでXXは2桁の数字なので、1日に複数のテストを作成できます)。

これにより、さまざまな修正を検証したり、2つの移行を比較したりすることができました。プロセス全体が100%自動化されていたため、既存のスキーマを修正するよりも新しいスキーマを作成する方が安くなりました。

+0

私はツールを使いたいと思っていました。データベースには約100以上のテーブルがあるので、データの不一致を処理する必要はありません。 – TFM

関連する問題