数据库应用精品教学(华南理工大学)chp5完整性.ppt
文本预览下载声明
An Introduction to Database System 数据库完整性 DBS能否真实地反映现实世界 数据的正确性和相容性 防止数据库中存在不符合语义规定的数据 防止因错误信息的输入输出造成无效操作或错误信息 在用Insert, Update, Delete语句修改数 据库内容时,数据的完整性可能会遭到破坏,例如: 1. 无效的数据被添加到数据库中。如:某定单所指的产品不存在。 2. 对数据库的修改不一致,如:为某产品增加了一份定单,但却没有调整产品的库存信息。 3. 将存在的数据修改为无效的数据,如:将某学生的班号修改为并不存在的班级 数据的完整性 VS 安全性 数据的完整性 防止数据库中存在不符合语义的数据, 防范对象:不合语义的、不正确的数据 例: 学生的年龄必须是整数,取值范围为14--29; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系; 数据的安全性 保护数据库防止恶意的破坏和非法的存取 防范对象:非法用户和非法操作 数据库完整性(续) 由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。 数据库完整性约束,可以通过DBMS或应用程序来实现。 完整性约束条件 加在数据上的语义约束条件; 为保证数据的完整性而规定的条件; 完整性约束条件作为模式的一部分,存入数据库中。 数据库完整性(续) 数据库的完整性,DBMS必须: 1. 完整性约束条件定义机制:提供定义数据完整性约束条件的方法,完整性约束条件作为模式的一部分存入数据库中; 2. 完整性检查机制:进行完整性检查,检查数据是否满足约束条件; 3. 违约反应:若有违反,采取相应措施(拒绝、报告、改正)处理。 完整性子系统:DBMS中执行完整性控制的子系统。其功能为监督事务的执行,测试其是否违反完整性约束条件;若有违反,则分情况进行预定的处理。 完整性约束条件 完整性约束条件 加在数据上的语义约束条件; 为保证数据的完整性而规定的条件; 完整性约束条件作为模式的一部分,存入数据库中。 完整性检查是围绕完整性约束条件进行的,因此完整性约束条件,是完整性控制机制的核心。 第五章 数据库完整性 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名字句 *5.5 域中的完整性限制 5.6 触发器 5.7 小结 实体完整性规则(Entity Integrity) 若属性A是基本关系R的主属性,则属性A不能取空值 (1) 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。 (2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识。 (3) 关系模型中以主码作为唯一性标识。 (4) 主码中的属性即主属性不能取空值。 主属性如果取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性 5.1 实体完整性 5.1.1 实体完整性定义 方式 单属性 多属性 5.1.2 实体完整性检查和违约处理 5.1.1 实体完整性定义 关系模型的实体完整性 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,C
显示全部