数据库完整性PPT课件.ppt
《数据库完整性PPT课件.ppt》由会员分享,可在线阅读,更多相关《数据库完整性PPT课件.ppt(30页珍藏版)》请在三一文库上搜索。
1、第十章第十章数据库完整性数据库完整性概述概述v什么是数据库的完整性什么是数据库的完整性n数据的正确性和相容性数据的正确性和相容性n防止防止不合语义不合语义的数据进入数据库的数据进入数据库例例:学生的年龄必须是整数,取值范围为学生的年龄必须是整数,取值范围为14-29;学生的性别只能是男或女;学生的性别只能是男或女;学生的学号一定是唯一的;学生的学号一定是唯一的;学生所在的系必须是学校开设的系;学生所在的系必须是学校开设的系;n完整性:否真实地反映现实世界完整性:否真实地反映现实世界完整性控制机制完整性控制机制1.完整性约束条件定义机制完整性约束条件定义机制n完整性约束条件:数据模型的组成部分约
2、束数据库中完整性约束条件:数据模型的组成部分约束数据库中数据的语义数据的语义nDBMS应提供定义数据库完整性约束条件,并把它们应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中作为模式的一部分存入数据库中2.完整性检查机制完整性检查机制n检查用户发出的操作请求是否违背了完整性约束条件检查用户发出的操作请求是否违背了完整性约束条件3.违约反应违约反应n如果发现用户的操作请求使数据违背了完整性约束条如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性件,则采取一定的动作来保证数据的完整性10.1完整性约束条件完整性约束条件v完整性约束条件作用的对象
3、完整性约束条件作用的对象n列:列:对属性的取值类型、范围、精度等的约束条件对属性的取值类型、范围、精度等的约束条件n元组:元组:对元组中各个属性列间的联系的约束对元组中各个属性列间的联系的约束n关系:关系:对若干元组间、关系集合上以及关系之间的对若干元组间、关系集合上以及关系之间的联系的约束联系的约束v两种状态两种状态n静态静态:对静态对象的约束是反映数据库状态合理性的对静态对象的约束是反映数据库状态合理性的约束约束n动态动态:对动态对象的约束是反映数据库状态变迁的约对动态对象的约束是反映数据库状态变迁的约束,新旧值之间满足的约束束,新旧值之间满足的约束完整性约束条件分类完整性约束条件分类六类
4、六类六类六类对象状态对象状态对象状态对象状态 动态列级动态列级动态列级动态列级动态元组动态元组动态元组动态元组动态关系动态关系动态关系动态关系动态动态动态动态 静态列级静态列级静态列级静态列级静态元组静态元组静态元组静态元组静态关系静态关系静态关系静态关系静态静态静态静态 列列列列元组元组元组元组关系关系关系关系对象粒度对象粒度对象粒度对象粒度静态列级约束静态列级约束v对列的取值域的说明对列的取值域的说明v最常见、最简单、最容易实现的一类完整性约束最常见、最简单、最容易实现的一类完整性约束v五类静态列级约束五类静态列级约束1)数据类型约束数据类型约束:数据的类型、长度、单位、精度等:数据的类型
5、长度、单位、精度等2)对数据格式的约束:如对数据格式的约束:如日期为日期为YY.MM.DD3)取值范围或取值集合的约束取值范围或取值集合的约束4)对空值的约束:对空值的约束:未定义或未知的值,与零值和空格不未定义或未知的值,与零值和空格不同同5)其他约束:其他约束:如关于列的排序说明,组合列等如关于列的排序说明,组合列等静态元组约束静态元组约束v规定元组的各个列之间的约束关系规定元组的各个列之间的约束关系例:订货关系中发货量例:订货关系中发货量=700元元v静态元组约束只局限在元组上静态元组约束只局限在元组上静态关系约束静态关系约束v关系的各个元组之间或若干关系之间存在的各种关系的各个元组之
6、间或若干关系之间存在的各种联系或约束联系或约束v常见静态关系约束:常见静态关系约束:n实体完整性约束实体完整性约束n参照完整性约束参照完整性约束n函数依赖约束:关系字段间存在的函数依赖函数依赖约束:关系字段间存在的函数依赖n统计约束:定义某个字段值一个关系多个元统计约束:定义某个字段值一个关系多个元组的统计值之间的约束关系组的统计值之间的约束关系动态列级约束动态列级约束v动态列级约束是修改列定义或列值时应满动态列级约束是修改列定义或列值时应满足的约束条件足的约束条件1)修改列修改列定义定义时的约束时的约束例:将原来允许空值的列改为不允许空值时例:将原来允许空值的列改为不允许空值时:该列目前已存
7、在空值,则拒绝这种修改该列目前已存在空值,则拒绝这种修改2)修改列值时的约束修改列值时的约束修改列值时新旧值之间要满足的约束条件修改列值时新旧值之间要满足的约束条件例:职工工资调整例:职工工资调整=原来工资原来工资年龄只能增长年龄只能增长动态元组、关系约束动态元组、关系约束v动态元组约束动态元组约束n修改元组修改元组值值:各个字段之间要满足的约束条件各个字段之间要满足的约束条件例例:职工工资调整不得低于其原来工资职工工资调整不得低于其原来工资+工龄工龄*1.5v动态关系约束动态关系约束n关系变化前后状态:限制条件关系变化前后状态:限制条件例:事务一致性、原子性等约束条件例:事务一致性、原子性等
8、约束条件完整性约束条件小结完整性约束条件小结粒粒度度状态状态列列级级元元组组级级关关系系级级静静态态列定义列定义类型类型格式格式值域值域空值空值元元组组值值应应满满足足的的条件条件实体完整性约束实体完整性约束参照完整性约束参照完整性约束函数依赖约束函数依赖约束统计约束统计约束动动态态改变列定改变列定义或列值义或列值元组新旧值之间应元组新旧值之间应满足的约束条件满足的约束条件关系新旧状态间应关系新旧状态间应满足的约束条件满足的约束条件10.2完整性控制完整性控制v定义功能定义功能n一个完善的完整性控制机制应该允许用户定义各类完一个完善的完整性控制机制应该允许用户定义各类完整性约束条件整性约束条件
9、v检查功能检查功能n立即执行的约束立即执行的约束:语句执行完后立即检查是否违背完语句执行完后立即检查是否违背完整性约束整性约束n延迟执行的约束延迟执行的约束:完整性检查延迟到整个事务执行结完整性检查延迟到整个事务执行结束后进行束后进行v违约反应违约反应n拒绝该操作拒绝该操作n其他处理方法其他处理方法例子例子例:银行数据库中例:银行数据库中“借贷总金额应平衡借贷总金额应平衡”的约束的约束就应该是延迟执行的约束就应该是延迟执行的约束n从账号从账号A转一笔钱到账转一笔钱到账号号B为一个事务,从账为一个事务,从账号号A转出去钱后账就不平了,必须等转入账转出去钱后账就不平了,必须等转入账号号B后账才能重
10、新平衡,这时才能进行完整性检后账才能重新平衡,这时才能进行完整性检查。查。完整性规则五元组表示完整性规则五元组表示(D,O,A,C,P)vD(Data):):约束作用的约束作用的数据对象数据对象vO(Operation):):触发完整性检查的触发完整性检查的数据库操作数据库操作当用户发出什么操作请求时需要检查该完整性规则是立当用户发出什么操作请求时需要检查该完整性规则是立即检查还是延迟检查;即检查还是延迟检查;vA(Assertion):):数据对象必须满足的数据对象必须满足的断言断言或或语义语义约束,约束,这是规则的主体;这是规则的主体;vC(Condition):):选择选择A作用的数据对
11、象值的作用的数据对象值的谓词谓词vP(Procedure):):违反完整性规则时触发的违反完整性规则时触发的过程过程例子例子实例实例学号不能为空学号不能为空教授工资不得低于教授工资不得低于1000元元数据对象数据对象D约束作用的对象为约束作用的对象为Sno属性属性约束作用的对象为工资约束作用的对象为工资Sal属性属性操作操作O插入或修改插入或修改Student元元组时组时插入或修改职工元组时插入或修改职工元组时断言断言ASno不能为空不能为空Sal不能小于不能小于1000谓词谓词C无(无(A可作用于所有记可作用于所有记录的录的Sno属性)属性)职称职称=教授教授(A仅作用于仅作用于职称职称=教
12、授教授的记录的记录)过程过程P拒绝执行该操作拒绝执行该操作拒绝执行该操作拒绝执行该操作关系系统三类完整性的实现关系系统三类完整性的实现v关系数据库系统都提供了定义和检查关系数据库系统都提供了定义和检查实体完整实体完整性性、参照完整性参照完整性和用户定义的完整性的功能和用户定义的完整性的功能v违反实体完整性规则和用户定义的完整性规则违反实体完整性规则和用户定义的完整性规则的操作:的操作:n一般是拒绝执行一般是拒绝执行v违反参照完整性的操作:违反参照完整性的操作:n拒绝执行拒绝执行n接受这个操作,同时执行一些附加的操作,以保证接受这个操作,同时执行一些附加的操作,以保证数据库的状态正确数据库的状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 完整性 PPT 课件
