文档详情

数据库应用精品教学(华南理工大学)chp5完整性.ppt

发布:2018-07-04约1.22万字共64页下载文档
文本预览下载声明
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
显示全部
相似文档