第十章数据库完整性.ppt
《第十章数据库完整性.ppt》由会员分享,可在线阅读,更多相关《第十章数据库完整性.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、安财信工学院计算机系2006年4月12日1安财信工学院计算机系v什么是数据库的完整性什么是数据库的完整性?数据的正确性和相容性数据的正确性和相容性防止不合语义的数据进入数据库。防止不合语义的数据进入数据库。例例:学生的年龄必须是整数,取值范围为学生的年龄必须是整数,取值范围为14-29;学生的性别只能是男或女;学生的性别只能是男或女;学生的学号一定是唯一的;学生的学号一定是唯一的;学生所在的系必须是学校开设的系;学生所在的系必须是学校开设的系;完整性:否真实地反映现实世界完整性:否真实地反映现实世界2006年4月12日2安财信工学院计算机系完整性控制机制完整性控制机制1.完整性约束条件定义机制
2、完整性约束条件定义机制完整性约束条件:数据模型的组成部分约束数据库中数据的语义完整性约束条件:数据模型的组成部分约束数据库中数据的语义DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中数据库中2.完整性检查机制完整性检查机制检查用户发出的操作请求是否违背了完整性约束条件检查用户发出的操作请求是否违背了完整性约束条件3.违约反应违约反应如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。来保证数据的完整性。200
3、6年4月12日3安财信工学院计算机系第十章第十章数据库完整性数据库完整性10.1完整性约束条件完整性约束条件10.2完整性控制完整性控制10.3Oracle的完整性的完整性10.4小结小结2006年4月12日4安财信工学院计算机系完整性约束条件完整性约束条件v完整性约束条件作用的对象完整性约束条件作用的对象列列列列:对属性的取值类型、范围、精度等的约束条件:对属性的取值类型、范围、精度等的约束条件元组元组元组元组:对元组中各个属性列间的联系的约束:对元组中各个属性列间的联系的约束关系关系关系关系:对若干元组间、关系集合上以及关系之间的联系的约束:对若干元组间、关系集合上以及关系之间的联系的约束
4、v静态静态对对静态对象静态对象静态对象静态对象的约束是反映数据库状态合理性的约束的约束是反映数据库状态合理性的约束v动态动态对对动态对象动态对象动态对象动态对象的约束是反映数据库状态变迁的约束的约束是反映数据库状态变迁的约束2006年4月12日5安财信工学院计算机系完整性约束条件分类完整性约束条件分类2006年4月12日6安财信工学院计算机系1)数据类型约束:数据的类型、长度、数据类型约束:数据的类型、长度、单位、精度等单位、精度等例:学生姓名的数据类型为字符型,例:学生姓名的数据类型为字符型,长度为长度为82)对数据格式的约束对数据格式的约束例:例:学号:前两位表示入学年份,后四位学号:前两
5、位表示入学年份,后四位为顺序编号为顺序编号日期:日期:YY.MM.DD。3)取值范围或取值集合的约束取值范围或取值集合的约束例:规定成绩的取值范围为例:规定成绩的取值范围为0-100年龄的取值范围为年龄的取值范围为14-29性别的取值集合为性别的取值集合为男男,女女1.静态列级约束静态列级约束静态列级约束:对的取值域的说明静态列级约束:对的取值域的说明最常见、最简单、最容易实现的一类完整性约束最常见、最简单、最容易实现的一类完整性约束4)对空值的约束对空值的约束空值:未定义或未知的值空值:未定义或未知的值空值:与零值和空格不同空值:与零值和空格不同有的列允许空值,有的则不允许,有的列允许空值,
6、有的则不允许,如成绩可为空值如成绩可为空值5)其他约束其他约束例:关于列的排序说明,组合例:关于列的排序说明,组合列等列等2006年4月12日7安财信工学院计算机系2.静态元组约束静态元组约束规定元组的各个列之间的约束关系规定元组的各个列之间的约束关系例:订货关系中发货量例:订货关系中发货量=700元元静态元组约束只局限在元组上静态元组约束只局限在元组上3.静态关系约束静态关系约束关系的各个元组之间或若干关关系的各个元组之间或若干关系之间存在的各种联系或约束系之间存在的各种联系或约束常见静态关系约束:常见静态关系约束:1)实体完整性约束实体完整性约束2)参照完整性约束参照完整性约束3)函数依赖
7、约束函数依赖约束4)统计约束统计约束函数依赖约束函数依赖约束v关系字段间存在的函数依赖关系字段间存在的函数依赖例:在学生课程教师关系例:在学生课程教师关系SJT(S,J,T)的函数依赖:的函数依赖:(S,J)T,TJ)主码:主码:(S,J)统计约束统计约束v定义某个字段值一个关系多个定义某个字段值一个关系多个元组的统计值之间的约束关系元组的统计值之间的约束关系例:职工平均工资的例:职工平均工资的2倍倍=部部门经理的工资门经理的工资=原来工资原来工资例:年龄只能增长例:年龄只能增长5.动态元组约束动态元组约束修改元组值修改元组值:各个字段之间要满足的约束条件各个字段之间要满足的约束条件例例:职工
8、工资调整不得低于其原来工资职工工资调整不得低于其原来工资+工龄工龄*1.56.动态关系约束动态关系约束关系变化前后状态:限制条件关系变化前后状态:限制条件例:事务一致性、原子性等约束条件例:事务一致性、原子性等约束条件2006年4月12日9安财信工学院计算机系完整性约束条件小结完整性约束条件小结粒粒度度状态状态列列级级元元组组级级关关系系级级静静态态列定义列定义类型类型格式格式值域值域空值空值元元组组值值应应满满足足的条件的条件实体完整性约束实体完整性约束参照完整性约束参照完整性约束函数依赖约束函数依赖约束统计约束统计约束动动态态改变列定改变列定义或列值义或列值元组新旧值之间元组新旧值之间应满
9、足的约束条应满足的约束条件件关系新旧状态间关系新旧状态间应满足的约束条应满足的约束条件件2006年4月12日10安财信工学院计算机系10.2完整性控制完整性控制一、一、DBMS的完整性控制机制的完整性控制机制二、关系系统三类完整性的实现二、关系系统三类完整性的实现三、参照完整性的实现三、参照完整性的实现2006年4月12日11安财信工学院计算机系一、一、DBMS的完整性控制机制的完整性控制机制1.定义功能定义功能一个完善的完整性控制机制应该允许用户定义各类完整性约束条件。一个完善的完整性控制机制应该允许用户定义各类完整性约束条件。2.检查功能检查功能立即执行的约束立即执行的约束(Immedia
10、teconstraints)v语句执行完后立即检查是否违背完整性约束语句执行完后立即检查是否违背完整性约束延迟执行的约束延迟执行的约束(Deferredconstrainsts)v完整性检查延迟到整个事务执行结束后进行完整性检查延迟到整个事务执行结束后进行例:银行数据库中例:银行数据库中“借贷总金额应平衡借贷总金额应平衡”的约束就应该是延迟的约束就应该是延迟执行的约束执行的约束从账号从账号A转一笔钱到账号转一笔钱到账号B为一个事务,从账号为一个事务,从账号A转出去钱后账转出去钱后账就不平了,必须等转入账号就不平了,必须等转入账号B后账才能重新平衡,这时才能进后账才能重新平衡,这时才能进行完整性
11、检查。行完整性检查。3.违约反应违约反应拒绝该操作拒绝该操作其他处理方法其他处理方法2006年4月12日12安财信工学院计算机系完整性规则五元组表示完整性规则五元组表示(D,O,A,C,P)vD(Data)约束作用的约束作用的数据对象数据对象;vO(Operation)触发完整性检查的触发完整性检查的数据库操作数据库操作当用户发出什么操作请求时需要检查该完整性规则当用户发出什么操作请求时需要检查该完整性规则是立即检查还是延迟检查;是立即检查还是延迟检查;vA(Assertion)数据对象必须满足的数据对象必须满足的断言断言或或语义约束语义约束这是规则的主体;这是规则的主体;vC(Conditi
12、on)选择选择A作用的数据对象值的作用的数据对象值的谓词谓词;vP(Procedure)违反完整性规则时触发的违反完整性规则时触发的过程过程。2006年4月12日13安财信工学院计算机系例例1:在:在“学号不能为空学号不能为空”的约束中的约束中D约束作用的对象为约束作用的对象为Sno属性属性O插入或修改插入或修改Student元组时元组时ASno不能为空不能为空C无(无(A可作用于所有记录的可作用于所有记录的Sno属性)属性)P拒绝执行该操作拒绝执行该操作例例2:在:在“教授工资不得低于教授工资不得低于1000元元”的约束中的约束中D约束作用的对象为工资约束作用的对象为工资Sal属性属性O插入
13、或修改职工元组时插入或修改职工元组时ASal不能小于不能小于1000C职称职称=教授教授(A仅作用于职称仅作用于职称=教授教授的记录的记录)P拒绝执行该操作拒绝执行该操作2006年4月12日14安财信工学院计算机系二、关系系统三类完整性的实现二、关系系统三类完整性的实现v关系数据库系统都提供了定义和检查实体完整性、参照关系数据库系统都提供了定义和检查实体完整性、参照完整性和用户定义的完整性的功能完整性和用户定义的完整性的功能v违反实体完整性规则和用户定义的完整性规则的操作:违反实体完整性规则和用户定义的完整性规则的操作:一般是拒绝执行一般是拒绝执行v违反参照完整性的操作:违反参照完整性的操作:
14、拒绝执行拒绝执行接受这个操作,同时执行一些附加的操作,以保证数据库的状接受这个操作,同时执行一些附加的操作,以保证数据库的状态正确态正确2006年4月12日15安财信工学院计算机系三、参照完整性的实现三、参照完整性的实现例例:职工部门数据库包含职工表职工部门数据库包含职工表EMP和部门表和部门表DEPT1DEPT关系的主码为部门号关系的主码为部门号Deptno2EMP关系的主码为职工号关系的主码为职工号Empno,外码为部门号外码为部门号Deptno称称DEPT为被参照关系或目标关系,为被参照关系或目标关系,EMP为参照关系为参照关系RDBMS实现参照完整性时需要考虑以下实现参照完整性时需要考
15、虑以下4方面:方面:2006年4月12日16安财信工学院计算机系1.外码是否可以接受空值的问题外码是否可以接受空值的问题v外码是否能够取空值:依赖于应用环境的语义外码是否能够取空值:依赖于应用环境的语义v实现参照完整性:实现参照完整性:系统提供定义外码的机制,定义外码列是否允许空值的机制系统提供定义外码的机制,定义外码列是否允许空值的机制v例例1:在职工部门数据库中,:在职工部门数据库中,EMP关系包含有外码关系包含有外码Deptno某元组的这一列若为空值,表示这个职工尚未分配到任何具体的某元组的这一列若为空值,表示这个职工尚未分配到任何具体的部门工作。和应用环境的语义是相符部门工作。和应用环
16、境的语义是相符v例例2:学生选课数据库:学生选课数据库vStudent关系为被参照关系,其主码为关系为被参照关系,其主码为Sno。vSC为参照关系,外码为为参照关系,外码为Sno。若若SC的的Sno为空值:表明尚不存在的某个学生,或者某个不知学为空值:表明尚不存在的某个学生,或者某个不知学号的学生,选修了某门课程,其成绩记录在号的学生,选修了某门课程,其成绩记录在Grade中中与学校的应用环境是不相符的,因此与学校的应用环境是不相符的,因此SC的的Sno列不能取空值。列不能取空值。2006年4月12日17安财信工学院计算机系2.在被参照关系中删除元组时的问题在被参照关系中删除元组时的问题v出现
17、违约操作的情形:出现违约操作的情形:删除被参照关系的某个元组(删除被参照关系的某个元组(student)而参照关系有若干元组而参照关系有若干元组(SC)的外码值与被删除的被参照关系的主码值的外码值与被删除的被参照关系的主码值相同相同v违约反应:可有三种策略违约反应:可有三种策略级联删除(级联删除(CASCADES)受限删除(受限删除(RESTRICTED)置空值删除(置空值删除(NULLIFIES)这三种处理方法,哪一种是正确的,要依应用环境的语义来定这三种处理方法,哪一种是正确的,要依应用环境的语义来定2006年4月12日18安财信工学院计算机系2.在被参照关系中删除元组时的问题在被参照关系
18、中删除元组时的问题v级联删除级联删除将参照关系中外码值与被参照关系中要删除元组主码值相对应的元组一将参照关系中外码值与被参照关系中要删除元组主码值相对应的元组一起删除起删除v受限删除受限删除当参照关系中没有任何元组的外码值与要删除的被参照关系的元组的主当参照关系中没有任何元组的外码值与要删除的被参照关系的元组的主码值相对应时,系统才执行删除操作,否则拒绝此删除操作码值相对应时,系统才执行删除操作,否则拒绝此删除操作v置空值删除置空值删除删除被参照关系的元组,并将参照关系中与被参照关系中被删除被参照关系的元组,并将参照关系中与被参照关系中被删除元组主码值相等的外码值置为空值。删除元组主码值相等的
19、外码值置为空值。2006年4月12日19安财信工学院计算机系2.在被参照关系中删除元组时的问题在被参照关系中删除元组时的问题例:要删除例:要删除Student关系中关系中Sno=950001的元组,的元组,而而SC关系中有关系中有4个元组的个元组的Sno都等于都等于950001。级联删除:级联删除:v将将SC关系中所有关系中所有4个个Sno=950001的元组一起删除。如果参照关系同时的元组一起删除。如果参照关系同时又是另一个关系的被参照关系,则这种删除操作会继续级联下去又是另一个关系的被参照关系,则这种删除操作会继续级联下去受限删除:受限删除:v系统将拒绝执行此删除操作。系统将拒绝执行此删除
20、操作。置空值删除:置空值删除:v将将SC关系中所有关系中所有Sno=950001的元组的的元组的Sno值置为空值。值置为空值。在学生选课数据库中,显然第一种方法和第二种方法都是对的。第三在学生选课数据库中,显然第一种方法和第二种方法都是对的。第三种方法不符合应用环境语义。种方法不符合应用环境语义。2006年4月12日20安财信工学院计算机系3.在参照关系中插入元组时的问题在参照关系中插入元组时的问题v出现违约操作的情形出现违约操作的情形需要在参照关系中插入元组,而被参照关系不存需要在参照关系中插入元组,而被参照关系不存在相应的元组在相应的元组v违约反应违约反应受限插入受限插入v仅当被参照关系中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 数据库 完整性
限制150内