欢迎来到天天文库
浏览记录
ID:16681305
大小:382.00 KB
页数:87页
时间:2018-08-23
《数据库系统原理 - 课件 第05章-数据库完整性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库系统原理PrinciplesofDatabaseSystem第五章数据库完整性第五章数据库完整性数据库的完整性(Integrity)数据的正确性、有效性和相容性防止不合语义的数据进入数据库例:学生的年龄必须是整数,取值范围为14-35;学生的性别只能是男或女;学生的学号一定是唯一的;学生所在的系必须是学校开设的系;完整性:能否真实地反映现实世界数据的完整性和安全性是两个不同概念数据的完整性防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据防范对象:不合语义的、不正确的数据数据的安全性保护数据库防止恶意的破坏和非法的存取防范
2、对象:非法用户和非法操作第五章数据库完整性为维护数据库的完整性,DBMS必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件称为“数据库完整性约束条件”,作为模式的一部分存入数据库_数据字典_中。DBMS中检查数据是否满足完整性条件的机制称为完整性检查。DBMS完整性控制机制为维护数据库的完整性,DBMS必须:1、提供完整性约束条件的定义机制2、提供完整性的检查方法3、违约处理1、提供完整性约束条件定义机制完整性约束条件也称为完整性规则完整性约束条件:数据模型的组成部分,约束数据库中数据的语义实体
3、完整性参照引用完整性用户自定义完整性DBMS应提供定义数据库完整性约束条件,并把它们作为数据库模式的一部分存入数据字典中2、提供完整性检查方法DBMS中检查数据是否满足完整性约束条件的机制称为完整性检查。检查用户发出的操作请求是否违背了完整性约束条件。3、违约处理DBMS如果发现用户的操作违背了完整性约束条件,则采取一定的动作来确保数据库数据的完整性。拒绝执行用户的操作级联执行其他操作……完整性子系统主要功能:定义完整性:提供定义完整性约束条件的机制。检查完整性:检查用户发出的操作请求,看其是否违背了完整性约束条件。控制完整性:监视数据操作的整个
4、过程,如果发现用户的操作请求使数据违背了完整性约束条件的情况,则采取一定的动作来保证数据的完整性。关系数据库的完整性实体完整性:PRIMARYKEY、UNIQUE参照完整性:FOREIGNKEY域完整性:数据类型、CHECK、NOTNULLRULE、DEFAULT用户定义完整性:列/表级约束、存储过程、触发器第五章数据库完整性5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名子句*5.5域中的完整性限制5.6触发器5.7小结5.1实体完整性5.1.1实体完整性定义5.1.2实体完整性检查和违约处理5.1.1实体完整性定义
5、关系模型的实体完整性在CREATETABLE中用PRIMARYKEY定义单属性构成的码有两种说明方法定义为列级约束条件定义为表级约束条件对多个属性构成的码只有一种说明方法定义为表级约束条件PRIMARYKEY约束也称主关键字约束,是实体完整性约束。该约束用于定义主关键字,它能保证主关键字的唯一性和非空性。PRIMARYKEY约束定义主关键字方法①PRIMARYKEY约束直接写在列名及其类型之后;②按照语法在相应列名及类型后单独列出:CONSTRAINT<约束名>PRIMARYKEY其中:<约束名>是PRIMARYKEY约束的名字。③在CREATE
6、TABLE语句列出基本表的所有列之后,再附加一个声明:PRIMARYKEY(<列名1>[,<列名2>,…])或CONSTRAINT<约束名>PRIMARYKEY(<列名1>[,<列名2>,…])例1Student表中的Sno属性定义为码(1)在列级定义主码CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20));例1Student表中的Sno属性定义为码(2)在表级定义主码CREATETABLEStude
7、nt(SnoCHAR(9),SnameCHAR(20)NOTNULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20),PRIMARYKEY(Sno));例2将SC中的Sno,Cno属性组定义为主码,且成绩的取值在0~100之间CREATETABLESC(SnoCHAR(9),CnoCHAR(4),GradeSMALLINTCHECK(GradeBetween0and100),PRIMARYKEY(Sno,Cno));5.1.2实体完整性检查和违约处理用PRIMARYKEY定义了关系的主码后,每当用户/应用程序对基本
8、表插入一条记录或者对主码进行更新操作时,RDBMS将按照实体完整性规则自动进行检查。实体完整性规则:若属性(一个或若干个)A是基本关系R
此文档下载收益归作者所有