数据库完整性
数据库完整性是指数据的正确性和相容性
1.实体完整性
关系模型的实体完整性在create table 中 用primary key 定义。对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。
[例5.1]将Student表中的Sno属性定义为码。
CREATE TABLE Student
(Sno CHAR(9)PRIMARY KEY,--列级定义
Sname CHAR(20) NOT NULL,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
或者
CREATE TABLE Student
(Sno CHAR(9),
Sname CHAR(20) NOT NULL,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20),
PRIMARY KEY (Sno)--表级定义
);
[例5.2]将SC表中的Sno、Cno属性组定义为码。
CREATE TABLE SC
( Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY (Sno,Cno)--两个以上只能在表级定义主码
);
用primary key 定义了主码后,每当用户程序对基本表插入一条记录或对主码列进行更新操作时,自动检查:(1)主码是否唯一,若不是则拒绝插入或修改
(2)主码各个属性是否为空,若有则拒绝插入或修改
2. 参照完整性
关系模型的参照完整性在create table 中用foreign key 定义
[例5.3] 定义SC中的参照完整性。
CREATE TABLE SC
(Sno CHAR(9)NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT