数据保护完整性.ppt

上传人:石*** 文档编号:47945893 上传时间:2022-10-04 格式:PPT 页数:58 大小:1.72MB
返回 下载 相关 举报
数据保护完整性.ppt_第1页
第1页 / 共58页
数据保护完整性.ppt_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《数据保护完整性.ppt》由会员分享,可在线阅读,更多相关《数据保护完整性.ppt(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据保护完整性数据保护完整性现在学习的是第1页,共58页n数据库是否具备完整性关系到数据库系统能否数据库是否具备完整性关系到数据库系统能否真真实实地反映现实世界。地反映现实世界。n维护数据库的完整性是非常重要的。维护数据库的完整性是非常重要的。现在学习的是第2页,共58页n数据的完整性和安全性是两个不同的概念,密切数据的完整性和安全性是两个不同的概念,密切相关。相关。n完整性完整性n防止数据库中存在不符合语义的数据,防止防止数据库中存在不符合语义的数据,防止错误信息的输入和输出错误信息的输入和输出n防范对象是不合语义的数据防范对象是不合语义的数据n安全性安全性n保护数据库防止恶意的破坏和非法的

2、存取保护数据库防止恶意的破坏和非法的存取n防范对象是非法用户和非法操作防范对象是非法用户和非法操作现在学习的是第3页,共58页nDBMS必须提供一种机制来检查数据库中的数据,必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。看其是否满足语义规定的条件。n完整性控制机制完整性控制机制1.完整性约束条件定义机制完整性约束条件定义机制2.完整性检查机制完整性检查机制3.违约反应违约反应现在学习的是第4页,共58页1、完整性约束条件定义、完整性约束条件定义n完整性约束条件:数据模型的组成部分,约束数完整性约束条件:数据模型的组成部分,约束数据库中数据的据库中数据的语义语义。nDBMS应

3、提供定义数据库完整性约束条件应提供定义数据库完整性约束条件(即数据即数据上的语义约束条件上的语义约束条件),并把它们作为模式的一部分,并把它们作为模式的一部分存入数据库中存入数据库中现在学习的是第5页,共58页2、完整性检查机制、完整性检查机制n检查用户发出的操作请求是否违背了完整性约束检查用户发出的操作请求是否违背了完整性约束条件。条件。现在学习的是第6页,共58页3、违约反应、违约反应n如果发现用户的操作请求使数据违背了完整性约如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的束条件,则采取一定的动作动作来保证数据的完整性。来保证数据的完整性。现在学习的是第7页,共58页6.2

4、.2完整性约束条件完整性约束条件n整个完整性控制都是围绕完整性约束条件进行的整个完整性控制都是围绕完整性约束条件进行的n完整性约束条件是完整性控制机制的完整性约束条件是完整性控制机制的核心核心现在学习的是第8页,共58页n完整性约束条件作用的对象完整性约束条件作用的对象n对象对象n列列n对属性的取值类型、范围、精度等的约束条件对属性的取值类型、范围、精度等的约束条件n元组元组n对元组中各个属性列间的联系的约束对元组中各个属性列间的联系的约束n关系关系n对若干元组间、关系集合上以及关系之间联系对若干元组间、关系集合上以及关系之间联系的约束的约束现在学习的是第9页,共58页n对象的状态对象的状态n

5、静态静态n静态约束:数据库每一确定状态时的数据对象所静态约束:数据库每一确定状态时的数据对象所应满足的约束条件。应满足的约束条件。n对静态对象的约束是反映数据库状态对静态对象的约束是反映数据库状态合理性合理性的约的约束束n动态动态n动态约束:数据库从一种状态转变为另一种状态动态约束:数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件。时,新、旧值之间所应满足的约束条件。n对动态对象的约束是反映数据库状态对动态对象的约束是反映数据库状态变迁变迁的约束的约束现在学习的是第10页,共58页n完整性约束条件分类,六类完整性约束条件完整性约束条件分类,六类完整性约束条件n静态列级约束静态

6、列级约束n静态元组约束静态元组约束n静态关系约束静态关系约束n动态列级约束动态列级约束n动态元组约束动态元组约束n动态关系约束动态关系约束现在学习的是第11页,共58页1.静态列级约束静态列级约束n静态列级约束:对的取值域的说明。静态列级约束:对的取值域的说明。n最常见、最简单、最容易实现的一类完整性约束最常见、最简单、最容易实现的一类完整性约束现在学习的是第12页,共58页n五类静态列级约束五类静态列级约束1)数据类型约束数据类型约束n数据的类型、长度、单位、精度等数据的类型、长度、单位、精度等例:学生姓名的数据类型为字符型,长度为例:学生姓名的数据类型为字符型,长度为82)对数据格式的约束

7、对数据格式的约束例:学号:前两位表示入学年份,后四位为顺序编例:学号:前两位表示入学年份,后四位为顺序编号号 出生日期:出生日期:YY.MM.DD。现在学习的是第13页,共58页3)取值范围或取值集合的约束取值范围或取值集合的约束例:规定成绩的取值范围为例:规定成绩的取值范围为0-100 年龄的取值范围为年龄的取值范围为14-29 性别的取值集合为性别的取值集合为男男,女女4)对空值的约束对空值的约束n空值表示未定义或未知的值空值表示未定义或未知的值n空值与零值和空格不同空值与零值和空格不同n有的列允许空值,有的则不允许,如成绩可为有的列允许空值,有的则不允许,如成绩可为空值空值5)其他约束其

8、他约束例:关于列的排序说明,组合列等例:关于列的排序说明,组合列等现在学习的是第14页,共58页2.静态元组约束静态元组约束n规定元组的各个列之间的约束关系。规定元组的各个列之间的约束关系。例:订货关系中发货量例:订货关系中发货量=700元元n静态元组约束只局限在元组上静态元组约束只局限在元组上 现在学习的是第15页,共58页3.静态关系约束静态关系约束n关系的各个元组之间或若干关系之间存在的各种关系的各个元组之间或若干关系之间存在的各种联系或约束联系或约束n常见静态关系约束常见静态关系约束1)实体完整性约束实体完整性约束2)参照完整性约束参照完整性约束3)函数依赖约束函数依赖约束4)统计约束

9、统计约束现在学习的是第16页,共58页n函数依赖约束函数依赖约束n关系字段间存在的函数依赖关系字段间存在的函数依赖例:在学生课程教师关系例:在学生课程教师关系 SJT(S,J,T)的函数依赖:的函数依赖:(S,J)T,TJ)主码:主码:(S,J)现在学习的是第17页,共58页n统计约束统计约束n定义某个字段值与一个关系中多个元组的定义某个字段值与一个关系中多个元组的统计值统计值之之间的约束关系间的约束关系例:例:职工平均工资职工平均工资的的2倍倍=部门经理的工资部门经理的工资=原来工资原来工资 年龄只能增长年龄只能增长现在学习的是第20页,共58页5.动态元组约束动态元组约束n修改元组值:各个

10、修改元组值:各个字段之间字段之间要满足的约束条件要满足的约束条件例:职工工资调整不得低于其原来工资例:职工工资调整不得低于其原来工资+工龄工龄*1.5现在学习的是第21页,共58页6.动态关系约束动态关系约束n关系变化前后状态上的限制条件。关系变化前后状态上的限制条件。例:事务一致性、原子性等约束条件例:事务一致性、原子性等约束条件现在学习的是第22页,共58页完整性约束条件小结完整性约束条件小结粒粒 度度 状态状态 列列 级级 元元 组组 级级 关关 系系 级级 静静 态态 列定义列定义类型类型格式格式值域值域 空值空值 元元组组值值应应满满足足的的条条件件 实体完整性约束实体完整性约束 参

11、照完整性约束参照完整性约束 函数依赖约束函数依赖约束 统计约束统计约束 动动 态态 改变列定义改变列定义或列值或列值 元组新旧值之间应元组新旧值之间应满足的约束条件满足的约束条件 关系新旧状态间应关系新旧状态间应满足的约束条件满足的约束条件 现在学习的是第23页,共58页6.2.3完整性控制完整性控制一、一、DBMS的完整性控制机制的完整性控制机制nDBMS的完整性控制机制应具有的功能的完整性控制机制应具有的功能n定义功能定义功能n提供定义完整性约束条件的机制提供定义完整性约束条件的机制n检查功能检查功能n检查用户发出的操作请求是否违背了完整检查用户发出的操作请求是否违背了完整性约束条件性约束

12、条件n违约反应违约反应n如发现用户的操作请求使数据违背了完整如发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数性约束条件,则采取一定的动作来保证数据的完整性。据的完整性。现在学习的是第24页,共58页1.定义功能定义功能n一个完善的完整性控制机制应该允许用户定义一个完善的完整性控制机制应该允许用户定义各类各类完整性约束条件。完整性约束条件。现在学习的是第25页,共58页2.检查功能检查功能n立即执行的约束立即执行的约束(Immediate constraints)n语句执行完后立即检查是否违背完整性约束语句执行完后立即检查是否违背完整性约束n 延迟执行的约束延迟执行的约束

13、(Deferred constrainsts)n完整性检查延迟到整个事务执行结束后进行完整性检查延迟到整个事务执行结束后进行现在学习的是第26页,共58页例:银行数据库中例:银行数据库中“借贷总金额应平衡借贷总金额应平衡”的约束的约束 n应该是延迟执行的约束应该是延迟执行的约束n从账号从账号A转一笔钱到账号转一笔钱到账号B为一个事务,从账号为一个事务,从账号A转出去钱后账就不平了,必须等转入账号转出去钱后账就不平了,必须等转入账号B后后账才能重新平衡,这时才能进行完整性检查。账才能重新平衡,这时才能进行完整性检查。现在学习的是第27页,共58页3.违约反应违约反应n拒绝该操作拒绝该操作n其他处

14、理方法其他处理方法现在学习的是第28页,共58页n完整性规则五元组表示完整性规则五元组表示:(D,O,A,C,P)nD(Data)约束作用的数据对象;约束作用的数据对象;nO(Operation)触发完整性检查的数据库操作触发完整性检查的数据库操作n用户发出什么操作请求时需要检查该完整性规则用户发出什么操作请求时需要检查该完整性规则n是立即检查还是延迟检查是立即检查还是延迟检查nA(Assertion)数据对象必须满足的断言或语义数据对象必须满足的断言或语义约束,是规则的主体约束,是规则的主体nC(Condition)选择选择A作用的数据对象值的谓词作用的数据对象值的谓词nP(Procedur

15、e)违反完整性规则时触发的过程违反完整性规则时触发的过程现在学习的是第29页,共58页例:在例:在“学号不能为空学号不能为空”的约束中的约束中nD 约束作用的对象为约束作用的对象为Sno属性属性nO 插入或修改插入或修改Student 元组时元组时nA Sno不能为空不能为空nC 无(无(A可作用于所有记录的可作用于所有记录的Sno属性)属性)nP 拒绝执行该操作拒绝执行该操作现在学习的是第30页,共58页例:在例:在“教授工资不得低于教授工资不得低于1000元元”的约束中的约束中nD 约束作用的对象为工资约束作用的对象为工资Sal属性属性nO 插入或修改职工元组时插入或修改职工元组时nA S

16、al不能小于不能小于1000nC 职称职称=教授教授,(A仅作用于职称仅作用于职称=教授教授的记录的记录)nP 拒绝执行该操作拒绝执行该操作现在学习的是第31页,共58页二、关系系统三类完整性的实现二、关系系统三类完整性的实现n关系数据库系统都提供了定义和检查实体完整性、关系数据库系统都提供了定义和检查实体完整性、参照完整性和用户定义的完整性的功能参照完整性和用户定义的完整性的功能现在学习的是第32页,共58页n违反实体完整性、用户定义的完整性规则的操作违反实体完整性、用户定义的完整性规则的操作n拒绝执行拒绝执行n违反参照完整性的操作违反参照完整性的操作n拒绝执行拒绝执行n接受这个操作,同时执

17、行一些附加的操作,以接受这个操作,同时执行一些附加的操作,以保证数据库的状态正确保证数据库的状态正确现在学习的是第33页,共58页三、参照完整性的实现三、参照完整性的实现例:职工部门数据库包含职工表例:职工部门数据库包含职工表EMP和部门表和部门表DEPTnDEPT关系的主码为部门号关系的主码为部门号DeptnonEMP关系的主码为职工号关系的主码为职工号Empno,外码为部门外码为部门号号DeptnonDEPT:被参照关系或目标关系:被参照关系或目标关系nEMP:参照关系:参照关系现在学习的是第34页,共58页nRDBMS实现参照完整性时需要考虑以下实现参照完整性时需要考虑以下4方面:方面:

18、1.外码是否可以接受空值的问题外码是否可以接受空值的问题n外码是否能够取空值外码是否能够取空值n依赖于应用环境的语义依赖于应用环境的语义n实现参照完整性实现参照完整性n系统提供定义外码的机制系统提供定义外码的机制n定义外码列是否允许空值的机制定义外码列是否允许空值的机制现在学习的是第35页,共58页例:在职工部门数据库中例:在职工部门数据库中nEMP关系包含有外码关系包含有外码Deptnon某元组的这一列若为空值,表示这个职工尚未某元组的这一列若为空值,表示这个职工尚未分配到任何具体的部门工作和应用环境的语义分配到任何具体的部门工作和应用环境的语义是相符是相符现在学习的是第36页,共58页例:

19、学生选课数据库例:学生选课数据库nStudent关系为被参照关系,其主码为关系为被参照关系,其主码为Sno。nSC为参照关系,外码为为参照关系,外码为Sno。n若若SC的的Sno为空值:表明尚不存在的某个学生,为空值:表明尚不存在的某个学生,或者某个不知学号的学生,选修了某门课程,或者某个不知学号的学生,选修了某门课程,其成绩记录在其成绩记录在Grade中。中。n与学校的应用环境是不相符的,因此与学校的应用环境是不相符的,因此SC的的Sno列不能取空值。列不能取空值。现在学习的是第37页,共58页2.在被参照关系中在被参照关系中删除元组删除元组时出现违约操作的情形时出现违约操作的情形n删除被参

20、照关系的某个元组(删除被参照关系的某个元组(student)而参)而参照关系有若干元组照关系有若干元组(SC)的外码值与被删除的被的外码值与被删除的被参照关系的主码值相同参照关系的主码值相同现在学习的是第38页,共58页n违约反应的策略违约反应的策略n级联删除(级联删除(CASCADES)n受限删除(受限删除(RESTRICTED)n置空值删除(置空值删除(NULLIFIES)n这三种处理方法,哪一种是正确的,要依应用这三种处理方法,哪一种是正确的,要依应用环境的语义来定环境的语义来定现在学习的是第39页,共58页n级联删除级联删除n将参照关系中外码值与被参照关系中要删除元将参照关系中外码值与

21、被参照关系中要删除元组主码值相对应的元组一起删除组主码值相对应的元组一起删除n受限删除受限删除n当参照关系中没有任何元组的外码值与要删除当参照关系中没有任何元组的外码值与要删除的被参照关系的元组的主码值相对应时,系统的被参照关系的元组的主码值相对应时,系统才执行删除操作,否则拒绝此删除操作才执行删除操作,否则拒绝此删除操作现在学习的是第40页,共58页n置空值删除置空值删除n删除被参照关系的元组,并将参照关系中与被删除被参照关系的元组,并将参照关系中与被参照关系中被删除元组主码值相等的外码值置参照关系中被删除元组主码值相等的外码值置为空值。为空值。现在学习的是第41页,共58页例:要删除例:要

22、删除Student关系中关系中Sno=950001的元组,的元组,而而SC关系中有关系中有4个元组的个元组的Sno都等于都等于950001。n级联删除:将级联删除:将SC关系中所有关系中所有4个个Sno=950001的元组一起删除。如果参照关的元组一起删除。如果参照关系同时又是另一个关系的被参照关系,则这种系同时又是另一个关系的被参照关系,则这种删除操作会继续级联下去删除操作会继续级联下去 n受限删除:系统将拒绝执行此删除操作。受限删除:系统将拒绝执行此删除操作。现在学习的是第42页,共58页n置空值删除:将置空值删除:将SC关系中所有关系中所有Sno=950001的元组的的元组的Sno值置为

23、空值。值置为空值。n在学生选课数据库中,显然第一种方法和第二在学生选课数据库中,显然第一种方法和第二种方法都是对的。第三种方法不符合应用环境种方法都是对的。第三种方法不符合应用环境语义。语义。现在学习的是第43页,共58页3.在参照关系中在参照关系中插入元组插入元组时出现违约操作的情形时出现违约操作的情形n需要在参照关系中插入元组,而被参照关系不需要在参照关系中插入元组,而被参照关系不存在相应的元组存在相应的元组n违约反应违约反应n受限插入受限插入n递归插入递归插入 现在学习的是第44页,共58页n受限插入受限插入n仅当被参照关系中存在相应的元组,其主码值仅当被参照关系中存在相应的元组,其主码

24、值与参照关系插入元组的外码值相同时,系统才与参照关系插入元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。执行插入操作,否则拒绝此操作。n递归插入递归插入n首先向被参照关系中插入相应的元组,其主码首先向被参照关系中插入相应的元组,其主码值等于参照关系插入元组的外码值,然后向参值等于参照关系插入元组的外码值,然后向参照关系插入元组。照关系插入元组。现在学习的是第45页,共58页例:向例:向SC关系插入(关系插入(99001,1,90)元组,而)元组,而Student关系中尚没有关系中尚没有Sno=99001的学生的学生n受限插入:系统将拒绝向受限插入:系统将拒绝向SC关系插入关系插入(99

25、001,1,90)元组)元组n递归插入:系统将首先向递归插入:系统将首先向Student关系插入关系插入Sno=99001的元组,然后向的元组,然后向SC关系插入关系插入(99001,1,90)元组。)元组。现在学习的是第46页,共58页4.修改修改被参照关系中主码的问题被参照关系中主码的问题n两种策略两种策略n不允许修改主码不允许修改主码n允许修改主码允许修改主码 现在学习的是第47页,共58页n允许修改主码策略允许修改主码策略n违约操作违约操作n要修改被参照关系中某些元组的主码值,而要修改被参照关系中某些元组的主码值,而参照关系中有些元组的外码值正好等于被参参照关系中有些元组的外码值正好等

26、于被参照关系要修改的主码值照关系要修改的主码值n要修改参照关系中某些元组的主码值,而被要修改参照关系中某些元组的主码值,而被参照关系中没有任何元组的主码值等于参照参照关系中没有任何元组的主码值等于参照关系修改后的外码值关系修改后的外码值现在学习的是第48页,共58页n违约反应违约反应(1)n修改的关系是被参照关系:与删除类似修改的关系是被参照关系:与删除类似n级联修改级联修改n受限修改受限修改n置空值修改置空值修改现在学习的是第49页,共58页n级联修改级联修改n修改被参照关系中主码值同时,用相同的方修改被参照关系中主码值同时,用相同的方法修改参照关系中相应的外码值。法修改参照关系中相应的外码

27、值。n受限修改受限修改n拒绝此修改操作。拒绝此修改操作。n只当参照关系中没有任何元组的外码值等于只当参照关系中没有任何元组的外码值等于被参照关系中某个元组的主码值时,这个元被参照关系中某个元组的主码值时,这个元组的主码值才能被修改。组的主码值才能被修改。n置空值修改置空值修改n修改被参照关系中主码值,同时将参照关系修改被参照关系中主码值,同时将参照关系中相应的外码值置为空值。中相应的外码值置为空值。现在学习的是第50页,共58页 例:将例:将Student关系中关系中Sno=950001的元组中的元组中Sno值改为值改为960123。而。而SC关系中有关系中有 4个元组的个元组的Sno=950

28、001n级联修改级联修改n将将SC关系中关系中4个个Sno=950001元组中的元组中的Sno值也改为值也改为960123。如果参照关系同时。如果参照关系同时又是另一个关系的被参照关系,则这种修改又是另一个关系的被参照关系,则这种修改操作会继续级联下去。操作会继续级联下去。现在学习的是第51页,共58页n受限修改受限修改n只有只有SC中没有任何元组的中没有任何元组的Sno=950001时,时,才能修改才能修改Student表中表中Sno=950001的元的元组的组的Sno值改为值改为960123。n置空值修改置空值修改n将将Student表中表中Sno=950001的元组的的元组的Sno值改为

29、值改为960123。而将。而将S表中所有表中所有Sno=950001的元组的的元组的Sno值置为空值。值置为空值。n在学生选课数据库中只有第一种方法是正确的。在学生选课数据库中只有第一种方法是正确的。现在学习的是第52页,共58页n违约反应违约反应(2)n修改的关系是参照关系:与插入类似修改的关系是参照关系:与插入类似n受限插入受限插入n递归插入递归插入现在学习的是第53页,共58页nRDBMS实现参照完整性实现参照完整性n需要向用户提供定义主码、外码的机制需要向用户提供定义主码、外码的机制n向用户提供按照自己的应用要求选择处理依赖向用户提供按照自己的应用要求选择处理依赖关系中对应的元组的方法

30、关系中对应的元组的方法现在学习的是第54页,共58页四、断言与触发器机制四、断言与触发器机制1、断言(、断言(Assertion)n断言:一个谓词,它表达了我们希望数据库总能断言:一个谓词,它表达了我们希望数据库总能满足的一个条件。域约束和参照完整性约束是断满足的一个条件。域约束和参照完整性约束是断言的特殊形式。言的特殊形式。现在学习的是第55页,共58页2、触发器(、触发器(Trigger)n触发器触发器:一类靠事件驱动的特殊过程,任何用户:一类靠事件驱动的特殊过程,任何用户对该数据的增加、删除、修改操作均服务器自动对该数据的增加、删除、修改操作均服务器自动激活相应的触发器,在核心层进行集中

31、的完整性激活相应的触发器,在核心层进行集中的完整性控制。控制。n一个触发器由事件、动作和条件一个触发器由事件、动作和条件3部分组成。部分组成。现在学习的是第56页,共58页完整性小结完整性小结n数据库的完整性是为了保证数据库中存储的数据数据库的完整性是为了保证数据库中存储的数据是正确的、相容的、有效的。所谓正确的是指符是正确的、相容的、有效的。所谓正确的是指符合现实世界语义的。合现实世界语义的。nDBMS完整性实现的机制完整性实现的机制n完整性约束定义机制完整性约束定义机制n完整性检查机制完整性检查机制n违背完整性约束条件时违背完整性约束条件时DBMS应采取的动作应采取的动作现在学习的是第57

32、页,共58页n完整性机制的实施会极大地影响系统性能完整性机制的实施会极大地影响系统性能n不同的数据库产品对完整性的支持策略和支持程不同的数据库产品对完整性的支持策略和支持程度是不同的度是不同的n许多数据库管理系统对完整性机制的支持比对许多数据库管理系统对完整性机制的支持比对安全性的支持要晚得多也弱得多安全性的支持要晚得多也弱得多n数据库厂商对完整性的支持越来越好,不仅在数据库厂商对完整性的支持越来越好,不仅在能保证实体完整性和参照完整性而且能在能保证实体完整性和参照完整性而且能在DBMS核心定义、检查和保证用户定义的完整核心定义、检查和保证用户定义的完整性约束条件性约束条件现在学习的是第58页,共58页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁