文档介绍:数据库系统概论
An Introduction to Database System
第五章 数据库完整性
数据库系统概论第五章
数据库完整性
数据库的完整性
数据的正确性和相容性
数据的完整性和安全性是两个不同概念
数据的完整性
防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
防范对象:不合语义的、不正确的数据
数据的安全性
保护数据库防止恶意的破坏和非法的存取
防范对象:非法用户和非法操作
数据库系统概论第五章
数据库完整性(续)
为维护数据库的完整性,DBMS必须:
数据库系统概论第五章
第五章 数据库完整性
实体完整性
参照完整性
用户定义的完整性
完整性约束命名字句
* 域中的完整性限制
触发器
小结
数据库系统概论第五章
实体完整性
实体完整性定义
实体完整性检查和违约处理
插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:
1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改
2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
数据库系统概论第五章
检查记录中主码值是否唯一的一种方法是进行全表扫描
索引
数据库系统概论第五章
参照完整性
参照完整性定义
参照完整性检查和违约处理
数据库系统概论第五章
参照完整性定义
关系模型的参照完整性定义
在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码
用REFERENCES短语指明这些外码参照哪些表的主码
数据库系统概论第五章
参照完整性定义(续)
例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。Sno,Cno分别参照引用Student表的主码和Course表的主码
[例3] 定义SC中的参照完整性
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)
/*在表级定义参照完整性*/
);
数据库系统概论第五章