Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » データ整合性の確保

 

データの整合性を維持するためのツール

データ整合性を確保するため、デフォルト値、データ制約、データベースの参照構造を保つための制約を利用できます。

デフォルト値

各エントリのデータの信頼性を高めるために、カラムにデフォルト値を設定できます。次に例を示します。

  • すべてのユーザ、またはクライアント・アプリケーションによるトランザクション日を記録するデフォルト値を、現在の日付にする。

  • 新しいローの追加以外で、特にユーザが操作しなくてもカラムのデフォルト値を自動的に 1 ずつ大きくしていく。このようにすると、(発注書などの) 項の値をユニークに、また連続の値にできます。

カラムに対して設定できるデフォルトの詳細については、カラム・デフォルトの使い方を参照してください。

制約

カラムやテーブルごとに、データに対して適用できる制約がいくつかあります。次に例を示します。

  • NOT NULL 値制約を適用すると、カラムに NULL 値が入力されるのを防ぐことができる。

  • 検査制約をカラムに適用すると、カラム内のデータが常に一定の条件を満たすようにできる。たとえば、Salary (給与) カラムに上限と下限を設定して入力エラーを防げます。

  • 検査制約を使って、それぞれのカラム値の差を検査できる。たとえば、図書館データベースで、DateReturned (返却日) エントリが DateBorrowed (貸出日) エントリよりも必ず後になるように指定できます。

  • トリガを使うと検査条件をより高度な形で適用できる。プロシージャ、トリガ、バッチの使用を参照してください。

また、カラム制約をドメインから継承させることもできます。上記の制約を含む、テーブルやカラムの制約の詳細については、テーブル制約とカラム制約の使い方を参照してください。

エンティティ整合性と参照整合性

関係は、プライマリ・キーと外部キーで定義され、リレーショナル・データベース・テーブル間の情報の橋渡しをします。関係は、データベースの設計に直接組み入れてください。次に示す整合性規則を使って、データベース構造を維持できます。

  • エンティティ整合性   エンティティ整合性はプライマリ・キーを追跡します。これはテーブルの各ローが IS NOT NULL を保証するプライマリ・キーによってユニークに識別できることを保証します。

  • 参照整合性   参照整合性はテーブル間の関係を定義する外部キーを追跡します。これは、すべての外部キーが対応するプライマリ・キーの値に一致すること (NULL 値が許可されている場合には NULL も可) を保証します。

参照整合性の確保の詳細については、エンティティ整合性と参照整合性の確保を参照してください。プライマリ・キーと外部キーの関係の正しい設計に関する詳細については、SQL Anywhere でのデータベースの作成を参照してください。

高度な整合性規則のためのトリガ

データ整合性の確保にはトリガも使用できます。「トリガ」はデータベースに格納されたストアド・プロシージャの一種で、特定のテーブル情報が修正されると自動的に実行されます。トリガはデータベース管理者や開発者にとって、データの信頼性を維持するための強力な手段です。

トリガの詳細については、プロシージャ、トリガ、バッチの使用を参照してください。