完整性约束条件也称之为完整性规则,是数据库中的数据必须满足的语义约束条件。它表达了给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的真确、有效和相容。
1、实体完整性(primary key)
关系模型的实体完整性在create table 中用primary key 定义。对单属性构成的码有两种说明方法:一种是定义为列级约束条件,另一个是定义为表级约束条件。对多个属性构成的码只有一种说法,即定义为表级约束条件。
1》检查主码值是否唯一,如果不唯一则拒绝插入或修改。
2》检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。从而保证了实体完整性。
例:将Websites表中的id定义为主键:
create table Websites (
id int(8) primary key,
name varchar(30),
url varchar(30),
alexa int(8),
country char(6)
);
或
create table Websites (
id int(8),
name varchar(30),
url varchar(30),
alexa int(8),
country char(6),
primary key (id)
);
将 access_log 表中的 aid 和 site_id 定义为主键
create table access_log
(aid int(4),
site_id int(4),
count int(8),
date datetime,
primary key (aid,site_id)
);
2、参照完整性
参照完整性在 create table 中的 foreign key 短语定义哪些列为外码,用 references 短语指明这些外码参照哪些表的主码。
create table access_log
(
foreign key (aid) references access_log(aid),
foreign key (site_id) references Websites(site_id)
);
参照完整性将两个表中的相应元组联系起来。因此,对被参照表和参照表进行增、删、改操作时有可能破坏参照完整性,必须进行检查以保证这两个表的相容性。