1
数据库完整性
数据库的完整性是指数据库中的数据必须始终满足数据库语义约束。保证数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库。
通过对数据库中的数据进行语义定义来实现。
第1页/共63页
2
数据库安全性与完整性
数据库安全性与完整性是两个不同的概念:
数据库安全性的防范对象是非法用户与非法操作;
数据库完整性的防范对象是不合语义的数据。
第2页/共63页
3
数据库安全性与完整性
两者相似之处:
DBMS提供定义用户对数据库的操作权限的机制与定义完整性约束的机制;
将定义存储在DBMS的数据字典中;
DBMS完成对数据库安全性,完整性的验证功能。
第3页/共63页
4
数据库完整性(续)
数据库完整性机制的任务是确保数据库中存储的数据符合现实世界语义。
为维护数据库的完整性,DBMS必须:
第4页/共63页
5
第五章 数据库完整性
实体完整性
参照完整性
用户定义的完整性
完整性约束命名子句
* 域中的完整性限制
触发器
小结
第5页/共63页
6
实体完整性定义
关系模型的实体完整性
CREATE TABLE中用PRIMARY KEY定义
单属性构成的码有两种说明方法
定义为列级约束条件
定义为表级约束条件
对多个属性构成的码只有一种说明方法
定义为表级约束条件
第6页/共63页
7
实体完整性检查和违约处理
插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:
1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改
2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
第7页/共63页
8
第五章 数据库完整性
实体完整性
参照完整性
用户定义的完整性
完整性约束命名字句
* 域中的完整性限制
触发器
小结
第8页/共63页
9
参照完整性定义
关系模型的参照完整性定义
在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码
用REFERENCES短语指明这些外码参照哪些表的主码
第9页/共63页
10
参照完整性定义(续)
例如,关系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)
/*在表级定义参照完整性*/
);
第10页/共63页
数据库原理NoPPT课件 来自淘豆网m.daumloan.com转载请标明出处.