SQL Server 2008 を使用して聖書のような割合のリレーショナル データ ウェアハウスを構築する必要がある場合、外部キーを使用してデータの整合性を確保しますか?それとも他の手段を使用しますか?
私が外部キーを気に入っている理由は、一度だけ正しく取得する必要があり、完全性を保護するために常にそこにあるからです。無効化、ロード、有効化のルートを考えていました。
何かご意見は?
前もって感謝します。
SQL Server 2008 を使用して聖書のような割合のリレーショナル データ ウェアハウスを構築する必要がある場合、外部キーを使用してデータの整合性を確保しますか?それとも他の手段を使用しますか?
私が外部キーを気に入っている理由は、一度だけ正しく取得する必要があり、完全性を保護するために常にそこにあるからです。無効化、ロード、有効化のルートを考えていました。
何かご意見は?
前もって感謝します。
そもそも、リレーショナル スキーマに (物理的に) 準拠するデータ ウェアハウスを構築するつもりはありません。提案されたデータ ウェアハウスは完全に正規化されますか?それとも、質問の「リレーショナル」という言葉は、単に SQL データベースに構築されることを示していますか?
はい、通常は外部キーを使用します。これはどのデータベースでも重要ですが、ウェアハウスが多くのテーブルを持つ複雑なものである場合は特に重要です。
ウェアハウスで整合性制約を使用する理由は、他のデータベースの場合とほぼ同じです。誤ったデータがデータベースに入るリスクを最小限に抑えます。多くの場合、このような整合性ルールを実装する最も経済的でパフォーマンスの高い方法です。これは、クエリのパフォーマンスを向上させるために、これらの制約をオプティマイザーで使用できることを意味します。制約は、データを使用してその構造を解釈する必要がある開発ツールおよびユーザーにも使用できます。
ああ、私は間違いなくそうするでしょう!覚えておく必要があるのは、データベースはデータ ストアであり、フロントエンドの単なるデータ ストアではないということです。これは微妙な違いですが、将来を考え始めるときに重要です。現在、(おそらく) 管理アプリケーションを所有しているのはあなたですが、将来もそうであるとは誰が言えますか?
できる限り多くの検証をデータベースにオフロードすることで、アプリケーションの将来性をいくらか証明できます。少なくとも、誰かがあなたのデータベースに対して開発を試みたとしても、あなたの想定がより多く保持されます。
これをデータベース側に置くことの欠点は、挿入が遅くなることです。そのため、読み取りと書き込みに対するアプリケーションの負荷を比較検討する必要があります。仕事では、書き込みよりも読み取りの需要がはるかに多いため、参照整合性は明らかです。ただし、私たちのテーブルは大きい (そして自由にインポートできる) ため、テーブルを作成し、データを挿入し、インデックスを作成し、外部キーやその他の制約を作成するという、複数のステップのインポート ルートをたどります。
これが役立つことを願っています!