数据库系统原理第五章-完整性控制

数据库系统原理第五章-完整性控制

ID:46234973

大小:330.84 KB

页数:19页

时间:2019-11-22

数据库系统原理第五章-完整性控制_第1页
数据库系统原理第五章-完整性控制_第2页
数据库系统原理第五章-完整性控制_第3页
数据库系统原理第五章-完整性控制_第4页
数据库系统原理第五章-完整性控制_第5页
资源描述:

《数据库系统原理第五章-完整性控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章数据库完整性5.1概述1、定义——数据的正确性,有效性和相容性。(防止不符合语义的数据的I/O)2、功能1)完整性要求定义;2)监督事务执行,测试是否违反完整性限制条件;3)若发生违反情况,则进行相应处理(拒绝、报告、纠正)。5.2完整性约束条件1、基本概念①定义——施加于DB中数据之上的语义限制条件②约束对象列级、元组级、关系级1③约束对象状态·静态:反映DB状态合理性的约束。·动态:反映DB状态变迁的约束。④约束时机(Immediateconstraints)(1)立即约束——一条语句执行完后立

2、即检查。(2)延迟约束(deferredconstraints)——事务执行结束后检查。转帐,从A到B后,帐才能平,才能进行检查。2、静态列级约束——对一个列的取值域的约束。①数据类型约束类型、长度、单位、精度如XM为C型,长8位;YL为I型,长3位。②数据格式约束如工作证号前2位表示省,后3位表示县,后4位表示单位顺序号,后5位表示个人顺序号。2③值域约束CJ≤100,NL≤150,XB={男,女}④空值约束是否允许空值列。如CJ可为空。⑤其它约束(如:列的排序、是否唯一等等)3、静态元组约束——对一个

3、(仅一个)元组中各列值间联系的约束。如:总额≥单价工龄<年龄4、静态关系约束——对一个关系中若干元组之间或若干关系的联系的约束。①实体完整性约束;②参照完整性约束;③函数依赖约束;④统计约束;如:职工最低工资不能低于本部门职工平均工资的50%。35、动态列级约束——修改列定义或列值时的约束。①修改定义约束——修改定义时新老值间的约束。如:将允许空值列改为不允许空值时,若该列值已有空值,则不可修改。②修改值约束——修改时新旧值间的约束。如年龄不能修改得更小。6、动态元组约束——修改元组时新旧值间的约束。例如

4、新工资不低于原工资+工龄*1.5。7、动态关系约束——施加于关系上的前后状态的约束①一致性②原子性45.3完整性控制1、实体完整性(entityintegrity)——对关系模式主属性施加的完整性控制。不允许空,在关系中取值唯一例:student(XH,XM,XB,YL)XH不能为空且唯一course(KH,KM)KH不能为空且唯一Sc(XH,KH,CJ)(XH,KH)不能为空且唯一Createtablestudent(XH,Char(6)NOTNULL,…,);2、参照完整性(referentialin

5、tegrity)——对外码施加的完整性控制。(回忆第二章定义)参照关系:外码所在关系,如SC被参照关系:主码(同时又是另一关系中的外码)所在关系,如student,course。外码:sc中的XH,KH51)空值情况①为空(SC中XH为空,表示无这个学生,或无学号学生选修了课程,不合应用语义),或;②对应被参照关系中该元组存在;③是否可为空,据应用语义确定。DEPT(DH,DM,DD)EMPL(DH,EH,XM)EMPL中DH可为空,表示该职员还未分配到任何部门工作。2)删除被参照关系元组情况①捆绑删除(

6、cascades)——参照与被参照关系中相关者一起删除。·被参照关系中外码元组删除例如:删除99001号学生(或者01号课程)删去student中XH=‘99001’的元组(删去course中KH=‘01’的元组)则捆绑删除SC中学号为99001(课号为01)的所有元组·参照关系中与被参照关系中码值对应元组删除6·可能层层牵连如:若SC又是另一参照关系的被参照关系,则可能又删除之……。②受限删除(restricted)——参照关系没有一个外码与要删除的被参照关系的主码值相对应时才执行删除。例如:若SC中外

7、码值XH,无一个与主码值(Student.XH,course.KH)对应时才删去student、course中相应元组。③置空值删除(nullifies/setnull)·删去被参照关系中元组;·参照关系中所有与被参照关系中已删去的主码值相等的外码值置为空值。如:删去部门表中的某个部门,则职员表中原来属于该部门的职员的所属部门号置空。7④说明·上述三种,选择哪一种实施,视应用需求确定。如:学籍管理中,学生毕业了,删去选课及学生信息,故需捆绑删除(course不删)student信息。·DBMS提供相应选择

8、机制。3)修改被参照关系主码值情况①捆绑修改(cascades)·修改被参照关系中主码值。如修改student中的XH=99003改为XH=99020·同时修改参照关系中相等外码值。如:同时SC中所有99003改为99020·可能逐层牵连。8②受限修改(restricted)——仅当参照关系中没有一个外码值与被参照关系中某个元组主码值相等时才可修改被参照关系中的该元组主码值。如:仅当SC中学生无99003时,才可修改stude

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

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

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