参照关系和被参照关系的定义 设F是关系R的一个属性或属性组,但不是 关系R的关键字,另外有主关键字为K的关系S 如果关系R的属性或属性组F与关系S的主关键 字K相对应,则称F是关系R的外部关键字,并 称关系R是参照关系、S是被参照关系(或目标 关系)。关系R和S可以是同一个关系
参照关系和被参照关系的定义 设F是关系R的一个属性或属性组,但不是 关系R的关键字,另外有主关键字为K的关系S。 如果关系R的属性或属性组F与关系S的主关键 字K相对应,则称F是关系R的外部关键字,并 称关系R是参照关系、S是被参照关系(或目标 关系)。关系R和S可以是同一个关系
参照宠整性规则 如果属性(或属性组)F是关系R的外部关 键字,它与关系S的主关键字K相对应,则对于 关系R中每个元组在属性(或属性组)F上的值 必须为: ●或者取空值(F的每个属性均为空值); ●或者等于S中某个元组的主关键字的值
参照完整性规则 如果属性(或属性组)F是关系R的外部关 键字,它与关系S的主关键字K相对应,则对于 关系R中每个元组在属性(或属性组)F上的值 必须为: ● 或者取空值(F的每个属性均为空值); ● 或者等于S中某个元组的主关键字的值
在关糸糸统中通过说明外部 关键字来实现参照完整性,而说 明外部关键字是通过说明引用的 主关键字来实现的,也即通过说 明外部关键字,关糸糸统则可以 自动支持关糸的参照完整性
在关系系统中通过说明外部 关键字来实现参照完整性,而说 明外部关键字是通过说明引用的 主关键字来实现的,也即通过说 明外部关键字,关系系统则可以 自动支持关系的参照完整性
用户定义完整性 ●一种与应用密切相关的数据完整性约束,如 某个属性的值必须唯一 某个属性的取值必须在某个范围内 某些属性值之间应该满足一定的函数关系等 ●类似以上的约束不是关系数据模型本身所要求的 而是为了满足应用方面的语义要求而提出的 ●在用户定义完整性中最常见的是限定属性的取值范 围,即对值域的约束,所以在用户定义完整性中最 常见的是域完整性约束
用户定义完整性 ⚫ 一种与应用密切相关的数据完整性约束,如 – 某个属性的值必须唯一 – 某个属性的取值必须在某个范围内 – 某些属性值之间应该满足一定的函数关系等 ⚫ 类似以上的约束不是关系数据模型本身所要求的, 而是为了满足应用方面的语义要求而提出的 ⚫ 在用户定义完整性中最常见的是限定属性的取值范 围,即对值域的约束,所以在用户定义完整性中最 常见的是域完整性约束
完整性约束的作用 ●执行插入操作时检查完整性 执行插入操作时需要分别检査实体完整性规则、参照完整 性规则和用户定义完整性规则。 ●执行删除操作时检査完整性 执行删除操作时一般只需要检査参照完整性规则 ●执行更新操作时检查完整性 执行更新操作可以看作是先删除旧的元组,然后再插入新 的元组。所以执行更新操作时的完整性检查综合了上述两 种情况
完整性约束的作用 ⚫ 执行插入操作时检查完整性 – 执行插入操作时需要分别检查实体完整性规则、参照完整 性规则和用户定义完整性规则。 ⚫ 执行删除操作时检查完整性 – 执行删除操作时一般只需要检查参照完整性规则。 ⚫ 执行更新操作时检查完整性 – 执行更新操作可以看作是先删除旧的元组,然后再插入新 的元组。所以执行更新操作时的完整性检查综合了上述两 种情况