关系数据模型要素之关系完整性约束
作者: / 2019-10-16 / 浏览次数:

数据完整性指数据库中数据的正确性、相容性和一致性。包括现实世界中的应用需求的完整性。数据的完整性由完整性规则来定义。

关系模型的完整性规则是对关系的某种约束,提供一种手段来保证用户对数据库的修改时不会破坏数据库中数据的完整性。保证数据是有意义的。

关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由dbms自动支持

此约束指关系的主属性,主码不能为空,在关系数据库系统中,一个关系对应一张表,实体完整性指在数据存储数据的表中,主键/码不能取控值 null

现实世界中实体之间往往存在某种联系,在关系模型中这种联系通过关系来描述

参照完整性约束就说定义外码和主码之间的引用规则,是对关系间引用数据的一种限制。若属性x 是基本关系 r 的外码,它与基本关系 s 的主码 y 对应,那么 r 中每个元组在 f 上的值要么取 null,要么等于 s中对应元组的主码值。 r 和 s 可以是不同的关系,也可以是同一关系。

如:

教师
系

上述两个关系之间存在属性的引用,系编码既是 系 关系的主码又是教师关系的外部码。那么教师 关系中系编码属性的取值需要参照 系关系中系编码的值或为 null。

此约束针对某一应用环境的完整性约束条件,反映了某一具体应用所涉及的数据应满足的要求。关系模型提供定义和检验的机制,此类规则一般在建立数据库表的同时进行定义,如果某些条件未建立在库表一级,则应在各个模块的具体编程中通过程序进行检查和控制。

在对数据库进行修改时须检验是否满足对上述三类完整性约束

首先检查实体完整性约束,检查插入行在主码属性上的值是否已存在,不存在,可以执行插入,否则不可插入。再检查参照完整性约束,如果是向被参照关系插入,则不需要考虑此约束;如果向参照关系插入,则检查插入行在外码属性上的值是否已在相应被参照关系的主码属性中存在,存在,可插入,否则不可插入,或者将插入行的外码属性的值改为null,再插入,最后检查自定义完整性约束,包括数据的类性、精度、取值范围、是否允许空值、是否有默认值等,满足即可执行插入操作,否则给出错误信息。

一般只需对被参照关系检查参照完整性约束。如果主键被引用则不可删,或将参照关系中对应行的外码属性改为为null,再删除

结合删除 和 插入操作,先删除再插入。

【某某业务】网站建设、网站设计、服务器空间租售、网站维护、网站托管、网站优化、百度推广、自媒体营销、微信公众号
如有意向---联系我们
热门栏目
热门资讯

网站建设 网站托管 成功案例 新闻动态 关于我们 联系我们 服务器空间 加盟合作 网站优化

备案号: 

公司地址:江苏省南京市玄武区玄武湖 咨询QQ:9490489 手机: 电话: