10数据库完整性(约束)-数据库原理

10数据库完整性(约束)-数据库原理

ID:5507036

大小:112.50 KB

页数:29页

时间:2017-11-15

10数据库完整性(约束)-数据库原理_第1页
10数据库完整性(约束)-数据库原理_第2页
10数据库完整性(约束)-数据库原理_第3页
10数据库完整性(约束)-数据库原理_第4页
10数据库完整性(约束)-数据库原理_第5页
资源描述:

《10数据库完整性(约束)-数据库原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据库完整性第10章完整性约束条件完整性控制Oracle的完整性什么是数据库的完整性数据的正确性和相容性防止不合语义的数据进入数据库。例:学生的年龄必须是整数,取值范围为14--29;学生的性别只能是男或女;学生的学号一定是唯一的;学生所在的系必须是学校开设的系;完整性:否真实地反映现实世界安整性控制机制1.完整性约束条件定义机制2.完整性检查机制3.违约反应完整性约束条件:加在数据库数据之上的语义约束条件检查用户发出的操作请求是否违背了完整性约束条件如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的

2、完整性。10.1计算机安全性概论完整性约束条件作用的对象列:对属性的取值类型、范围、精度等的约束条件元组:对元组中各个属性列间的联系的约束关系:对若干元组间、关系集合上及关系之间的联系的约束静态对静态对象的约束是反映数据库状态合理性的约束动态对动态对象的约束是反映数据库状态变迁的约束六类完整性约束条件静态列级约束静态元组约束静态关系约束动态列级约束动态元组约束动态关系约束对象状态动态列级约束动态元组约束动态关系约束动态④⑤⑥静态列级约束静态元组约束静态关系约束静态①②③对象粒度列元组关系1.静态列级约束静态列级约束:对的取值域的

3、说明最常见、最简单、最容易实现的一类完整性约束五类静态列级约束1)数据类型约束:数据的类型、长度、单位、精度等例:学生姓名的数据类型为字符型,长度为82)对数据格式的约束例:学号:前两位表示入学年份,后四位为顺序编号日期:YY.MM.DD。3)取值范围或取值集合的约束例:规定成绩的取值范围为0-100;年龄的取值范围为14-29性别的取值集合为[男,女]4)对空值的约束(空值:未定义或未知的值,与零值和空格不同)有的列允许空值,有的则不允许,如成绩可为空值5)其他约束例:关于列的排序说明,组合列等2.静态元组约束规定元组的各个列

4、之间的约束关系例:订货关系中发货量<=订货量教师关系中教授的工资>=700元静态元组约束只局限在元组上3.静态关系约束关系的各个元组之间或若干关系之间存在的各种联系或约束常见静态关系约束:1)实体完整性约束2)参照完整性约束3)函数依赖约束4)统计约束关系字段间存在的函数依赖例:在学生-课程-教师关系SJT(S,J,T)的函数依赖:((S,J)→T,T→J)主码:(S,J)定义某个字段值一个关系多个元组的统计值之间的约束关系例:职工平均工资的2倍<=部门经理的工资<=职工平均工资的5倍职工平均工资值:统计值4.动态列级约束动态列

5、级约束是修改列定义或列值时应满足的约束条件1)修改列定义时的约束例:将原来允许空值的列改为不允许空值时:该列目前已存在空值,则拒绝这种修改2)修改列值时的约束修改列值时新旧值之间要满足的约束条件例:职工工资调整>=原来工资年龄只能增长5.动态元组约束修改元组值:各个字段之间要满足的约束条件例:职工工资调整不得低于其原来工资+工龄×1.56.动态关系约束关系变化前后状态:限制条件例:事务一致性、原子性等约束条件粒度状态列级元组级关系级静态列定义·类型·格式·值域·空值元组值应满足的条件实体完整性约束参照完整性约束函数依赖约束统计约

6、束动态改变列定义或列值元组新旧值之间应满足的约束条件关系新旧状态间应满足的约束条件10.2完整性控制DBMS的完整性控制机制关系系统三类完整性的实现参照完整性的实现DBMS的完整性控制机制1.定义功能允许用户定义各类完整性约束条件2.检查功能立即执行的约束(Immediateconstraints)语句执行完后立即检查是否违背完整性约束延迟执行的约束(Deferredconstrainsts)完整性检查延迟到整个事务执行结束后进行例:银行数据库中“借贷总金额应平衡”的约束应该是延迟执行的约束从账号A转一笔钱到账号B为一个事务,从

7、账号A转出去钱后账就不平了,必须等转入账号B后账才能重新平衡,这时才能进行完整性检查。3.违约反应拒绝该操作其他处理方法DBMS的完整性控制机制完整性规则五元组表示:(D,O,A,C,P)D(Data)约束作用的数据对象;O(Operation)触发完整性检查的数据库操作当用户发出什么操作请求时需要检查该完整性规则是立即检查还是延迟检查;A(Assertion)数据对象必须满足的断言或语义约束,这是规则的主体;C(Condition)选择A作用的数据对象值的谓词;P(Procedure)违反完整性规则时触发的过程。例1:在“学号

8、不能为空”的约束中D约束作用的对象为Sno属性O插入或修改Student元组时ASno不能为空C无(A可作用于所有记录的Sno属性)P拒绝执行该操作例2:在“教授工资不得低于1000元”的约束中D约束作用的对象为工资Sal属性O插入或修改职工元组时ASal不能小

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。