Date: Wed, 20 Feb 2002 12:10:11 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんにちは
-----Original Message-----
From: T.Hanami [mailto:who@example.co.jp]
Sent: Tuesday, February 19, 2002 5:34 PM
To: MSDEFunClub_ML
Subject: [ml-msde-beg:00092] 同一サーバ内別データベースについて
>はじめまして、はなみと申します。
>初めて参加させていただきます。
>宜しくお願いします。
こちらこそ、よろしくお願いします
>ダイアグラムでのリレーションシップなどは
>どの様にすれば良いのでしょうか?
参照整合性制約(Accessでいうところのリレーションシップ)は
同一データベース内のテーブル間で設定できるものです。
T-SQL文のFOREIGN KEY宣言で、無理矢理別のデータベース
のテーブルを指定すると、
サーバー : メッセージ 1763
データベースをまたがる外部キー参照はサポートされていません。
というエラーが表示されます。
どうしても別のデータベースのテーブルと整合性を取るためには
トリガで実現するしかありません。
>何らかの障害が発生しデータベースが壊れた時を考えると
>商品マスタや顧客マスタなどのマスタ関係と
>受注データや仕入データなどのテーブルを
>同一サーバ内の別データベースとして
>分けて管理したほうが良いのではないかと思いました。
確かに、データベースが壊れるときの被害を考えれば、複数の
データベースに分割しておけば多少のリスク軽減ができます。
ただそのためには、それぞれのデータベースを物理的に異なる
ストレージ(ハードディスク)に収容して、初めて意味があると
思います。
同じハードディスク内に複数の論理ドライブを用意し、その中で
分散しても、そのハードディスクが壊れたら、全部のデータベース
が壊れる可能性があります。
ディスクの駆動部分や基盤がこわれたら、専門業者に頼むしか
ありません。
FATやNTFSなどのファイル管理システム部分が壊れた程度で
あれば、その論理ドライブだけが壊れるので、分散させてデータ
ベースを入れた効果は出ると思います。
データベースの分割を考えるより、SQLServerではその
データベースアーキテクチャから、データベースを構成する
ファイルグループの設計を重要視します。
あるテーブルのデータは、ドライブCに、あるテーブルのデータは
ドライブDに、というように、テーブル単位で、そのデータの記憶
場所を設計することができます。
一般論としては、関連のあるテーブルは同じデータベース
内に収容した方が、アプリケーションの開発が簡単になると
思います。
------------------------------------
(株)日本技術ソフト開発
堀川 明 (Akira Horikawa)
02月20日(水曜日) 12時08分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|