首页 > 数据库技术 > 详细

数据库的完整性约束笔记

时间:2016-03-11 12:11:29      阅读:254      评论:0      收藏:0      [点我收藏+]

完整约束是一组完整的数据约束规则,它规定了数据模型中数据必须符合的条件,对数据做任何操作是都必须保证符合完整性约束条件。

关系模型中共有三类完整性约束:实体完整性,参照完整性和用户定义的完整性。

实体完整性

在SQL中,实体完整性是通过主码(Primary Key)的定义来实现的。被定义为主码的属性或属性组必须满足两个条件:非空且唯一。

定义主码的方法:一种是在属性后加关键字, 如,StudentNO char(6) PRIMARY KEY

      另一种是在属性表中加入额外的定义主码的子句, 如,PRIMARY KEY(StudentNO)

参照完整性

第二种约束模型,就是利用外码的说明来限制相关表中某些属性取值。外码的取值只有两种:取空值;取参照关系中的主码值。

说明外码的方法:一种是直接在改属性的说明(属性名、类型)后加上关键字REFERENCES,后跟对应表的主码说明,如,TeacherNO char(6) REFERENCESTeacherInfo(TeacherNO)

        另一种在属性清单表的最后,加上外码的说明子句,如,FOREIGN KEY(TeacherNO) REFERENCES TeacherInfo(TeacherNO)

注:当用户违反了上述规则时,如何保持约束关系?

 SQL提供了三种可选方案:

  一:限制策略(RESTRIC),默认使用,任何违反参照完整性约束的增删改操作将被系统拒绝;

  二:级联策略(CASCADE),父表删改主码时,子表中外码也将被删改;

  三:置空策略(SET NULL),父表删改元组时,子表中外码被置空。

表A的主码被说明成表B的外码,则称A为父表,B为子表。

 

用户自定义完整性约束

SQL提供了非空约束、对属性的CHECK约束、对元组的CHECK约束、触发器等实现。

数据库的完整性约束笔记

原文:http://www.cnblogs.com/elroye/p/5264799.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!