首页 > 知识点讲解
       数据库的完整性
知识路径: > 计算机软件与网络基础知识 > 数据库系统 > 数据库管理系统的类型、结构和性能评价 > 数据库的控制功能 > 
被考次数:4次     被考频率:中频率     总体答错率:44%     知识难度系数:     
相关知识点:23个      
        数据库的完整性是指数据的正确性和相容性。数据库是否具备完整性关系到DBS能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。
               完整性约束条件
               保证数据完整性的方法之一是设置完整性检查,即对数据库中数据设置一些约束条件,这是数据的语义体现。数据的完整性约束条件一般在数据模式中给出,并在运行时做检查,当不满足条件时立即向用户通报以便采取措施。
               完整性约束条件一般指的是对数据库中数据本身的某些语法、语义限制,数据间的逻辑约束,以及数据变化时应遵守的规则等。所有这些约束条件一般均以谓词逻辑形式表示,即以具有真假值的原子公式及命题连接词(并且、或者、否定)所组成的逻辑公式表示。完整性约束条件作用对象可以是关系、元组、列三种。
               数据库中数据的语法、语义限制与数据间的逻辑约束称为静态约束。它反映了数据及数据间的固有的逻辑特性,是最重要的一类完整性约束。静态约束包括静态列级约束(对数据类型的约束、对数据格式的约束、对取值范围或取值集合的约束、对空值的约束、其他约束)、静态元组约束、静态关系约束(实体完整性约束、参照完整性约束、函数依赖约束、统计约束)。
               数据库中的数据变化应遵守的规则称为数据动态约束,它反映了数据库状态变迁的约束。动态约束包括动态列级约束(修改列定义时的约束、修改列值时的约束)、动态元组约束、动态关系约束。
               完整性控制
               完整性控制机制应该具有定义功能(提供定义完整性约束条件的机制)和检查功能(检查用户发出的操作请求是否违背了完整性约束条件)。如果发现用户的操作请求违背了约束条件,则采取一定的动作来保证数据的完整性。数据库的完整性可分为实体完整性、参照完整性和用户定义的完整性。
                      实体完整性
                      实体完整性要求主码中的任一属性不能为空,所谓空值是“不知道”或“无意义”的值。之所以要保证实体完整性,主要是因为在关系中,每一个元组的区分是依据主码值的不同,若主码值取空值,则不能标明该元组的存在。
                      参照完整性
                      若基本关系R中含有与另一基本关系S的主码PK相对应的属性组FK(FK称为R的外码),则参照完整性要求,R中的每个元组在FK上的值必须是S中某个元组的PK值,或者为空值。参照完整性的合理性在于,R中的外码只能对S中的主码引用,不能是S中主码没有的值。例如,对于学生和选课表两个关系,选课表中的学号是外码,它是学生表的主键,若选课表中出现了某个学生表中没有的学号,即某个学生还没有注册,却已有了选课记录,这显然是不合理的。
                      对于参照完整性,需要明确以下问题:
                      ①外码能否接受空值问题,根据实际应用决定。
                      ②在被参照关系中删除元组的问题。
                      .级联删除:将参照关系中所有外码值与被参照关系中要删除元组主码值相同的元组一起删除。如果参照关系同时又是另一个关系的被参照关系,则这种删除操作会继续级联下去。
                      .受限删除(一般系统默认):仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才可以执行删除操作,否则拒绝执行删除操作。
                      .置空删除:删除被参照关系的元组,并将参照关系中相应元组的外码值置为空值。
                      ③在参照关系中插入元组的问题。
                      .受限插入:仅当被参照关系中存在相应的元组时,其主码值与参照关系插入元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。
                      .递归插入:首先向被参照关系中插入相应的元组,其主码值等于参照关系插入元组的外码值,然后向参照关系插入元组。
                      用户定义的完整性
                      实体完整性和参照完整性适用于任何关系型DBMS。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
                      如果在一条语句执行完后立即检查,则称立即执行约束;如果在整个事务执行结束后再进行检查,则称延迟执行约束。完整性规则的五元组表示为(D,O,A,C,P),其中D表示约束作用的数据对象,O表示触发完整性检查的数据库操作,A表示数据对象必须满足的断言或语义约束,C表示选择A作用的数据对象值的谓词,P表示违反完整性规则时触发的过程。
                      触发器
                      触发器是在关系型DBMS中应用得比较多的一种完整性保护措施。触发器的功能一般比完整性约束要强得多。一般而言,在完整性约束功能中,当系统检查出数据中有违反完整性约束条件时,则仅给出必要提示以通知用户,仅此而已。而触发器的功能则不仅仅起提示作用,它还会引起系统内自动进行某些操作以消除违反完整性约束条件所引起的负面影响。
                      所谓触发器,其抽象的含义即是一个事件的发生必然触发(或导致)另外一些事件的发生,其中前面的事件称为触发事件,后面的事件称为结果事件。触发事件一般即为完整性约束条件的否定。而结果事件即为一组操作用以消除触发事件所引起的不良影响。在目前数据库中事件一般表示为数据的插入、修改、删除等操作。
                      :触发器除了有完整性保护功能外,还有安全性保护功能。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2012年下半年
   系统架构设计师..
   上午试卷 综合知识
第45题
选择题
在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统维护事务的原子性、一致性、隔离性和持久性。针对事务的这4种特性,考虑以下的架构设计场景:
假设在某一个时刻只有一个活动的事务,为了保证事务的原子性,对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任..

46%
   2009年下半年
   系统架构设计师..
   上午试卷 综合知识
第6题
选择题
设有职务工资关系P (职务,最低工资,最高工资),员工关系EMP (员工号,职务,工资),要求任何一名员工,其工资值必须在其职务对应的工资范围之内,实现该需求的方法是(6).

60%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有