文档介绍:数据库完整性
数据库的完整性
数据的正确性和相容性
数据的完整性和安全性是两个不同概念
数据的完整性
防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
防范对象:不合语义的、不正确的数据
数据的安全性
保护数据库防止恶意的破坏和非法的存取
防范对象:非法用户和非法操作
*
数据库原理 数据库完整性
*
数据库完整性(续)
为维护数据库的完整性,DBMS必须:
*
数据库原理 数据库完整性
*
第五章 数据库完整性
实体完整性
参照完整性
用户定义的完整性
完整性约束命名字句
* 域中的完整性限制
触发器
小结
*
数据库原理 数据库完整性
*
实体完整性
实体完整性定义
实体完整性检查和违约处理
*
数据库原理 数据库完整性
*
实体完整性定义
关系模型的实体完整性
CREATE TABLE中用PRIMARY KEY定义
单属性构成的码有两种说明方法
定义为列级约束条件
定义为表级约束条件
对多个属性构成的码只有一种说明方法
定义为表级约束条件
*
数据库原理 数据库完整性
*
实体完整性定义(续)
[例1] 将Student表中的Sno属性定义为码
(1)在列级定义主码
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) NOT NULL,
Ssex CHAR(2) ,
Sage SMALLINT,
Sdept CHAR(20));
*
数据库原理 数据库完整性
*
实体完整性定义(续)
(2)在表级定义主码
CREATE TABLE Student
(Sno CHAR(9),
Sname CHAR(20) NOT NULL,
Ssex CHAR(2) ,
Sage SMALLINT,
Sdept CHAR(20),
PRIMARY KEY (Sno)
);
*
数据库原理 数据库完整性
*
实体完整性定义(续)
[例2]将SC表中的Sno,Cno属性组定义为码
CREATE TABLE SC
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY (Sno,Cno) /*只能在表级定义主码*/ );
*
数据库原理 数据库完整性
*
实体完整性检查和违约处理
插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:
1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改
2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
*
数据库原理 数据库完整性
*