关系完整性约束的参照完整性

2025-01-19 16:14:22
推荐回答(1个)
回答1:

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