关系模型的完整性规则是对关系的约束条件。
三类完整性约束:实体完整性 参照完整性 用户定义的完整性
实体完整性: 基本关系R的主属性不能取空值(主码唯一标识)
参照完整性:(引用存在的事件)
定义: 设F 是基本关系R的一个或一组属性,但不是关系R的码,
Ks 是基本关系S的主码。如果F 与Ks 相对应,则称F是R的外码,并称
基本关系R为参照关系,基本关系S为被参照关系或目标关系。
规则: 参照完整性规则 若属性F 是基本关系R的外码,它与基本
关系S的主码Ks相对应,则对于R中每个元祖在F上的值必须:
或者取空值,或者等于S中某个元祖的主码值。
用户定义的完整性:NOT NULL(不为空)、UNIQUE(唯一)、NULL(空)、CHECK(检查是否在某一范围之内)
1.定义null/ not null 约束
create table tablename{
id integer primary key,
name char(10) not null,
rkey integer references region(rkey)
}
2. 定义属性的缺省值
create table tablename{
id integer primary key,
num interger default '0'
}
3. 定义属性unique 约束
create table tablename{
id interger primary key,
name char(10) unique
}
4. 使用check
create table tablename{
status char(1) check(orderstatus in ('0','1'))
}