第五章 数据库完整性
1.数据库的完整性(integrity)是指数据的正确性(correctness)和相容性(compat-ability)。
2.实体完整性
1)定义实体完整性
学生表Student中Sno为码
CREATE TABLE Student(
Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) NOT NULL,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
定义SC表中Sno,Cno属性组为码
CREATE TABLE SC(
Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY(Sno,Cno)
);
2)实体完整性的检查和违约处理:检查主码值是否唯一,如果不唯一则拒绝插入或者修改;检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
3.参照完整性
1)定义参照完整性
CREATE TABLE SC(
Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
);