数据库4之完整性约束的概念及分类

之前的文章有讲到数据库的基本概念,怎么绘制E-R图,以及表的各种概念等等

这篇文章讲的是数据的完整性约束。

完整性约束:规定了什么样的数据能够存储到数据库系统当中。当写入的数据不满足当前的约束的时候,就不允许写入。防止错误数据的输入和输出造成错误结果和无效操作。(数据完整性)

区分数据安全性:数据安全性是指非法用户的非法操作对数据库造成的恶意破坏。

例如:

为了维护数据的完整性,DBMS必须

1.提供定义完整性约束条件的机制

-->实体完整性约束

又称行(元组)的完整性,将一个实体区分,其中必须要有一个主键,能够唯一地标识对应的记录,其值不能为空。

如果一个关系的主码是由多个属性构成的,那么每个属性都不能取空值。

除了primary key约束之外,我们还可以通过索引、unique约束或者identity属性等实现数据的实体完整性。这些在以后会讲解。

-->参照完整性约束

该约束可以保证一个实体找到另外一个相关联的实体。通过定义外键(外码)与主键(主码)之间或外键与唯一键之间的对应关系实现。例如:

外码:一个表(表S)的主键,在另外一个表(表R)中存在,但不是表R的主码,称作表R的外码。

外码如果取空值,表示和被参照的表S无任何联系。

在被参照表S中,一个主码的值可以代表一个实体,即该主码所在的元组。例如:


通过左边的表(暂时称为左表)的外码:工号0001,可以找到右表对应工号为0001的人的姓名、性别、年龄、系。

如果此时要删除被参照表(右表)的工号为0001的元组,有两种情况:(参照下面讲到的违约处理)

1.将左表和右表的工号为0001的记录都删除(no action)

2.拒绝删除(casecade)

-->域完整性约束

也叫做列完整性约束,指的是数据输入的有效性。(注意区分行完整性约束)

通过数据类型来限制,格式是通过check约束和规则来限制的,可能的取值范围(通过check约束、default定义,not null)等。

-->……


2.提供检查数据完整性的方法

-->立即执行约束检查

-->延迟执行约束检查

3.违约处理

-->拒绝执行(no action)

-->级联执行(cascade)

(此处只讲到概念,想更加深入可以继续和我一起学习和探讨)



  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值