实体完整性:
实体完整性要求每一个表中的主键字段都不能为空或者重复的值。
实体完整性指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。
实体完整性规则:
基本关系的所有主关键字对应的主属性都不能取空值,例如,学生选课的关系选课(学号,课程号,成绩)中,学号和课程号共同组成为主关键字,则学号和课程号两个属性都不能为空。因为没有学号的成绩或没有课程号的成绩都是不存在的。
参照完整性:
现实世界中实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述,这样就自然存在着关系与关系间的引用,一个参照完整性将两个表中相应的元组联系起来。
参照完整性规则:
若属性(或属性组)f是基本关系r的外码,它与基本关系s的主码ks相对应,则对于r中每个元组在f上的值必须为:或者为空(f中每个属性均为空),或者等于s中某个元组的主码值。
其实这个概念很模糊,其实说简单点,比如在学生选课关系中,学号是学生表主键,课号是课程表主键,学号和课号联合做选课表的主键,这都是实体完整性约束。
而选课表中,单独一个学号是外键、参照学生表学号,单独一个课号是外键,参照课程表课号,这都是参照完整性约束,比如课号的值只有1,但是你在选课表里取课号为1以外的值,就会出错,违反了参照完整性。
有5个完整性约束:
1、主键
primary
key
2、非空
not
null
3、检验
check
4、唯一
unique
5、外键
foreign
key