第5章データベースの整合性
5.1_データベースの整合性の概要
1.データベースの整合性:
データの正確性と互換性
2.データの整合性とセキュリティの違い:
データの整合性:データベースに非セマンティックデータが存在するのを防ぎます。つまり、データベースに誤ったデータが存在するのを防ぎます。
データのセキュリティ:悪意のある破壊や違法性からデータベースを保護しますアクセス
3.データベースの整合性を維持するには、DBMSは次のことを行う必要があります。
- 整合性制約を定義するためのメカニズムを提供する
- 整合性チェックの方法を提供する
- 契約違反
5.2_エンティティの整合性
エンティティの整合性は、主キーの主キー定義です。
1.整合性制約を定義するためのメカニズムを提供します。
- 列レベルの制約:テーブルtable_name(id intプライマリキー)を作成します-現在の列でプライマリを直接定義します
- テーブルレベルの制約:create table table_name(id int、primary key(id))-現在のテーブルでプライマリを個別に定義します
2.完全性チェックと契約違反の処理の方法を提供します。
- メインコード値が一意であるかどうかを確認し、一意でない場合は、挿入または変更を拒否します
- メインコードの各属性が空であるかどうかを確認し、1つが空である限り挿入または変更を拒否します
5.2_参照整合性
エンティティの整合性は、外部キーの外部キーの定義です。
1.整合性制約を定義するためのメカニズムを提供します。
- テーブルレベルの制約:テーブルの作成table_name(id int、foreign key(id)references table_name(id))-テーブルレベルの制約のみ
2.完全性チェックと契約違反の処理の方法を提供します。
5.3_ユーザー定義の整合性
ユーザー定義の整合性とは、特定の属性値に対して満たす必要のあるセマンティック要件を指します
1.整合性制約を定義するためのメカニズムを提供します:(CREATE TABLEで定義)
- 列の値が空ではありません(NOT NULL)
- 一意の列の値(UNIQUE)
- 列の値がブール式を満たしているかどうかを確認します(CHECK)
例:CREATE TABLE SC
(Sno int UNIQUE、
age int NOT NULL、
sex char(2)、
check(sex in( 'male'、 'female')and age> 18 )-性別は男性または女性のみで、年齢は18歳以上です
)
2.完全性チェックと契約違反の処理の方法を提供します。