第10章数据库完整性精选PPT.ppt
《第10章数据库完整性精选PPT.ppt》由会员分享,可在线阅读,更多相关《第10章数据库完整性精选PPT.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1010章数据库完整性章数据库完整性第1页,此课件共21页哦学习目标学习目标n掌握数据库的完整性和安全性的区别和联系掌握数据库的完整性和安全性的区别和联系n理解完整性约束条件理解完整性约束条件n掌握完整性控制掌握完整性控制n掌握掌握SQL Server的完整性技术的完整性技术第2页,此课件共21页哦10.1 完整性约束条件完整性约束条件数据库的完整性:数据库的完整性:指数据的正确性、有效性和相容性。如学生的年龄必指数据的正确性、有效性和相容性。如学生的年龄必须是整数,取值范围为须是整数,取值范围为1825;学生的性别只能是男或女;学生的学;学生的性别只能是男或女;学生的学号必须唯一;学生所
2、在的系必须是学校开设的系等。完整性不同于号必须唯一;学生所在的系必须是学校开设的系等。完整性不同于安全性,前者是为了防止数据库中存在不符合语义的数据,防止错安全性,前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出;后者是为了防止非法用户和非法操作。误信息的输入和输出;后者是为了防止非法用户和非法操作。完整性约束条件:完整性约束条件:是数据模型组成部分中施加在数据库数据之上的语义是数据模型组成部分中施加在数据库数据之上的语义约束条件,是完整性控制的核心,约束条件,是完整性控制的核心,DBMS应提供定义数据库完整性约应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数
3、据库中。其作用的对象束条件,并把它们作为模式的一部分存入数据库中。其作用的对象可以是列、元组、关系。列约束主要是列的类型、取值范围、精度、可以是列、元组、关系。列约束主要是列的类型、取值范围、精度、排序等约束条件;元组约束是元组中各个字段间联系的约束;关系排序等约束条件;元组约束是元组中各个字段间联系的约束;关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。完的约束是若干元组间、关系集合上以及关系之间的联系的约束。完整性约束条件涉及上述三类对象,其状态可以静态的,也可以是动整性约束条件涉及上述三类对象,其状态可以静态的,也可以是动态的。态的。第3页,此课件共21页哦静态约束:静态约束
4、:指数据库每一确定状态时的数据对象所应满足的约束条指数据库每一确定状态时的数据对象所应满足的约束条件,反映了数据库状态合理性的约束,是最重要的一类完整性约件,反映了数据库状态合理性的约束,是最重要的一类完整性约束。束。动态约束:动态约束:指数据库从一种状态转变为另一种状态时,新、旧值之间所指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,反映了数据库状态变迁的约束。应满足的约束条件,反映了数据库状态变迁的约束。六类完整性约束条件六类完整性约束条件静态列级约束:静态列级约束:对一个列的取值域的说明,是最常用也最容易实现的一类对一个列的取值域的说明,是最常用也最容易实现的一类完
5、整性约束。它包括以下几个方面:完整性约束。它包括以下几个方面:对数据类型的约束对数据类型的约束(包括数据的类型、长度、单位、精度等包括数据的类型、长度、单位、精度等)。对数据格式的约束。如出生日期的格式为对数据格式的约束。如出生日期的格式为YY.MM.DD。对取值范围或取值集合的约束。如性别的取值范围是对取值范围或取值集合的约束。如性别的取值范围是男男,女女。对空值的约束。如学号不能为空,成绩可以为空。对空值的约束。如学号不能为空,成绩可以为空。其他约束。如关于列的排序。其他约束。如关于列的排序。第4页,此课件共21页哦静态元组约束:静态元组约束:一个元组由若干列组成,它规定元组的各个列之间的
6、约一个元组由若干列组成,它规定元组的各个列之间的约束关系。如规定订货关系中满足发货量束关系。如规定订货关系中满足发货量=2000元。元。静态关系约束:静态关系约束:在一个关系的各个元组之间或者若干关系之间常常存在各在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有:种联系或约束。常见的静态关系约束有:实体完整性约束。实体完整性约束。参照完整性约束。参照完整性约束。实体完整性和参照完整性约束称为关系的两个不变性。实体完整性和参照完整性约束称为关系的两个不变性。函数依赖约束。函数依赖约束。统计约束。如规定部门经理的工资不得低于该部门职工平均工资的统计约束。如规定部
7、门经理的工资不得低于该部门职工平均工资的2倍,倍,不得高于该部门职工平均工资的不得高于该部门职工平均工资的5倍。倍。动态列级约束:动态列级约束:修改列定义或列值时应满足的约束条件。如允许为修改列定义或列值时应满足的约束条件。如允许为空修改为不允许为空、学生年龄只能增长。空修改为不允许为空、学生年龄只能增长。第5页,此课件共21页哦n动态元组约束:动态元组约束:修改元组值时元组中各个字段应满足的约束条件。修改元组值时元组中各个字段应满足的约束条件。如职工工资调整时新工资不得低于原工资如职工工资调整时新工资不得低于原工资+工龄工龄*1.5。n动态关系约束:动态关系约束:加在关系变化前后状态上的限制
8、条件。如事务的一致性、加在关系变化前后状态上的限制条件。如事务的一致性、原子性等约束条件。原子性等约束条件。粒度状态列级元组级关系级静态列定义类型格式值域空值元组值应满足的条件实体完整性约束参照完整性约束函数依赖约束统计约束动态改变列定义或列值元组新旧值之间应满足的约束条件关系新旧状态间应满足的约束条件第6页,此课件共21页哦10.2 10.2 完整性控制完整性控制nDBMS的完整性控制机制应具有以下三方面功能的完整性控制机制应具有以下三方面功能n定义功能:定义功能:提供定义完整性约束条件的机制。提供定义完整性约束条件的机制。n检查功能:检查功能:检查用户的操作请求是否违背了完整性约束条件。检
9、查用户的操作请求是否违背了完整性约束条件。n立即执行的约束立即执行的约束(Immediate constraints):语句执行完后立即检查是否违语句执行完后立即检查是否违背完整性约束。如银行数据库中背完整性约束。如银行数据库中“借贷总金额应平衡借贷总金额应平衡”的约束就应该是延的约束就应该是延迟执行的约束,从账号迟执行的约束,从账号A转一笔钱到账号转一笔钱到账号B为一个事务,从账号为一个事务,从账号A转出转出去钱后账就不平了,必须等转入账号去钱后账就不平了,必须等转入账号B后账才能重新平衡,这时才能进后账才能重新平衡,这时才能进行完整性检查。行完整性检查。n延迟执行的约束延迟执行的约束(De
10、ferred constrainsts):完整性检查延迟到整个事完整性检查延迟到整个事务执行结束后进行。务执行结束后进行。n违约反应:违约反应:若用户的请求使数据违背了完整性约束条件,则采取一若用户的请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。定的动作来保证数据的完整性。第7页,此课件共21页哦完整性规则的五元组表示:完整性规则的五元组表示:(D,O,A,C,P),其中:,其中:D(Data):约束作用的数据对象。约束作用的数据对象。O(Operation):触发完整性检查的数据库操作,即当用户发出什么操作触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该
11、完整性规则,是立即检查还是延迟检查。请求时需要检查该完整性规则,是立即检查还是延迟检查。A(Assertion):数据对象必须满足的断言,这是规则的主体。数据对象必须满足的断言,这是规则的主体。C(Condition):选择选择A作用的数据对象值的谓词。作用的数据对象值的谓词。P(Procedure):违反完整性规则时触发的过程。违反完整性规则时触发的过程。如在如在“学号不能为空学号不能为空”的约束中,的约束中,D为为Sno属性;属性;O为插入或修改为插入或修改Student 元组时;元组时;A为为Sno不能为空;不能为空;C无无(A可作用于所有记录的可作用于所有记录的Sno属性属性);P为拒
12、绝执行该操作。为拒绝执行该操作。又如在又如在“教授工资不得低于教授工资不得低于1000元元”的约束中,的约束中,D为工资为工资Sal属性;属性;O为插入或修改职工元组时;为插入或修改职工元组时;A为为Sal不能小于不能小于1000;C为职称为职称=教授教授(A仅作用于职称仅作用于职称=教授教授的记录的记录);P为拒绝执行该操作。为拒绝执行该操作。第8页,此课件共21页哦关系系统三类完整性的实现:关系系统三类完整性的实现:关系数据库系统都提供了定义和检关系数据库系统都提供了定义和检查实体完整性、参照完整性和用户定义完整性的功能。对于违反实查实体完整性、参照完整性和用户定义完整性的功能。对于违反实
13、体完整性规则和用户定义完整性规则的操作一般采用拒绝执行的方体完整性规则和用户定义完整性规则的操作一般采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。正确性。参照完整性的实现:参照完整性的实现:如职工如职工部门数据库中包含职工表部门数据库中包含职工表EMP和部和部门表门表DEPT,DEPT的主码为部门号的主码为部门号Deptno,EMP的主码为职工号的主码为职工号Empno,外码为部门号,外
14、码为部门号Deptno,称,称EMP为参照关系,为参照关系,DEPT为被参为被参照关系或目标关系。照关系或目标关系。RDBMS实现参照完整性时需要考虑以下四个实现参照完整性时需要考虑以下四个方面的问题:方面的问题:外码能否可以接受空值:外码能否可以接受空值:依赖于应用环境的语义,系统除了应提依赖于应用环境的语义,系统除了应提供定义外码的机制,还应提供定义外码列是否允许空值的机制。供定义外码的机制,还应提供定义外码列是否允许空值的机制。第9页,此课件共21页哦 如职工如职工部门数据库中部门数据库中EMP表有外码表有外码Deptno,某元组的这一列若为,某元组的这一列若为空值,表示这个职工尚未分配
15、到任何具体的部门工作,和应用环空值,表示这个职工尚未分配到任何具体的部门工作,和应用环境的语义是相符的。但学生境的语义是相符的。但学生选课数据库中选课数据库中Student关系为被参照关关系为被参照关系,其主码为系,其主码为Sno;SC为参照关系,外码为为参照关系,外码为Sno。若。若SC的的Sno为空为空值:表明尚不存在的某个学生,或者某个不知学号的学生,选修值:表明尚不存在的某个学生,或者某个不知学号的学生,选修了某门课程,其成绩记录在了某门课程,其成绩记录在Grade中,与学校的应用环境是不相符中,与学校的应用环境是不相符的,因此的,因此SC的的Sno列不能取空值。列不能取空值。在被参照
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 数据库 完整性 精选 PPT
限制150内