关于完整性约束

数据完整性
强制数据完整性可确保数据库中的数据质量。例如,如果输入了   employee_id   值为   123   的职员,那么该数据库不应允许其他职员使用同一   ID   值。如果计划将   employee_rating   列的值范围设定为从   1   到   5,则数据库不应接受   6。如果表有一   dept_id   列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。

对表进行计划有两个重要步骤:标识列的有效值和确定如何强制列中的数据完整性。数据完整性有四种类型:  

实体完整性
域完整性
引用完整性
用户定义完整性  

实体完整性
实体完整性将行定义为特定表的唯一实体。实体完整性强制表的标识符列或主键的完整性(通过索引、UNIQUE   约束、PRIMARY   KEY   约束或   IDENTITY   属性)。

域完整性
域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过   CHECK   约束和规则)或可能值的范围(通过   FOREIGN   KEY   约束、CHECK   约束、DEFAULT   定义、NOT   NULL   定义和规则)。

引用完整性
在输入或删除记录时,引用完整性保持表之间已定义的关系。在   Microsoft®   SQL   Server™   2000   中,引用完整性基于外键与主键之间或外键与唯一键之间的关系(通过   FOREIGN   KEY   和   CHECK   约束)。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。
强制引用完整性时,SQL   Server   禁止用户进行下列操作:  
(1)当主表中没有关联的记录时,将记录添加到相关表中。
(2)更改主表中的值并导致相关表中的记录孤立。
(3)从主表中删除记录,但仍存在与该记录匹配的相关记录。  

 

用户定义完整性
用户定义完整性使您得以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性(CREATE   TABLE   中的所有列级和表级约束、存储过程和触发器)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值