hUZ6T
hUZ6T
hUZ6T
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
DB2デザイン・ガイド<br />
解説<br />
©日本IBMシステムズ・エンジニアリング(株) Information Management部<br />
26<br />
データベース物理設計<br />
� 制約を利用すると、データの保護や、データ間の相互関係の定義をデータベース・システ<br />
ムに行わせることが可能です。これにより、アプリケーションでコードを作成し、これらの規<br />
則を施行する必要がなくなります。<br />
� 事前に制約を使用するか否かの方針決めを最初に確定させる必要があり、使用するので<br />
あれば、制約違反エラーのハンドリング・ロジックは必要となります。<br />
� データ格納時にDB2により厳格にチェックされるため、バッチによる大量の更新時や、特に<br />
テスト環境でのテスト・データ作成時に、格納順番やデータの値を考慮するが必要ありま<br />
す。例えば、参照制約が定義されている表については、データのINSERTは必ず親表を先<br />
にする必要があります。<br />
� DB2は以下の種類の制約を提供しています。<br />
� 固有制約<br />
� 表の 1 つまたは複数の列に重複する値を指定することを禁止する規則<br />
� 表検査制約<br />
� 表の各行の1つ以上の列について可能な値を指定する規則のことです。<br />
� 参照制約<br />
� 外部キーの値が親キーの値として現れる場合、または外部キーの構成要素の一部がヌル値の場合のみ有効とする<br />
規則<br />
� (情報制約)<br />
� V8から、情報制約(Informational Constraint)と呼ばれる新しいタイプの制約により、DB2による制約情報チェックの適<br />
用/非適用が設定可能になりました。<br />
� 制約情報を非適用とすることにより、ビジネス・アプリケーションのロジックによってチェックされ、この場合、データベー<br />
ス・マネージャーによってチェックされることはありません。また、オプティマイザーによる制約の利用を活動化、または<br />
非活動化させる指定も可能です。<br />
� 下記のオプションを CREATE または ALTER TABLE で指定します。<br />
– ENFORCED:DB によって更新操作時、常に制約をチェックさせる。<br />
– NOT ENFORCED:DB に制約をチェックさせない。また、SET INTEGRITY を使用しても、チェックされません。この場合、<br />
実際に制約に違反するデータが入る可能性あるため、アプリケーションでのチェックする必要があります。<br />
– ENABLE QUERY OPTIMIZATION:オプティマイザーのQuery Rewriteを活動化する。<br />
– DISABLE QUERY OPTIMIZATION:オプティマイザーのQuery Rewriteを非活動化する。<br />
� 制約は、CREATE TABLE文およびALTER TABLE文を使用して、表の列に対して定義します。