第5章数据库完整性
第5章数据库完整性
什么是数据库的完整性
数据的正确性和相容性,防止不合语义的数据进入数据库。
例: 学生的年龄必须是整数,取值范围为14--29;
学生的性别只能是男或女;
学生的学号一定是唯一的;
学生所在的系必须是学校开设的系;
完整性:否真实地反映现实世界
第5章数据库完整性
第5章数据库完整性
为维护数据库的完整性,DBMS必须:
第5章数据库完整性
实体完整性
参照完整性
用户自定义完整性
完整性约束命名子句
触发器
小结
实体完整性
实体完整性定义
实体完整性检查和违约处理
(2)在表级定义主码
CREATE TABLE S
(Sno CHAR(9),
Sname CHAR(20) NOT NULL,
Ssex CHAR(2) ,
Sage SMALLINT,
Sdept CHAR(20),
PRIMARY KEY (Sno)
);
实体完整性
实体完整性定义
实体完整性检查和违约处理
实体完整性检查和违约处理
实体完整性检查和违约处理
实体完整性检查和违约处理
参照完整性
参照完整性定义
参照完整性检查和违约处理
参照完整性定义
参照完整性定义
例如,关系SC中(o)是主码。o分别参照引用S表的主码和C表的主码
[例3] 定义SC中的参照完整性
CREATE TABLE SC
(Sno CHAR(9) ,
Cno CHAR(4) ,
Grade SMALLINT,
PRIMARY KEY (Sno, Cno), /*在表级定义实体完整性*/
FOREIGN KEY (Sno) REFERENCES S (Sno),
/*在表级定义参照完整性*/
FOREIGN KEY (Cno) REFERENCES C (Cno)
/*在表级定义参照完整性*/
);
参照完整性
参照完整性定义
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
参照完整性检查和违约处理
3. 在参照关系中,修改外码的问题
S(Sno,Sname,Sage,…) SC(o,Grade)
95001,张三,20, … 95001,DB,90
95002,李四,19, … 95001,
数据库完整性[DOC可编辑] 来自淘豆网www.taodocs.com转载请标明出处.