指称完整性如何确保数据库一致性

主键和外键保持引用完整性

参照完整性是关系数据库管理系统中的一个数据库特性。它通过应用约束来防止用户或应用程序输入不准确的数据或指向不存在的数据,从而确保数据库中表之间的关系保持准确。

计算机上的数据库
PhotoAlto /加布里埃尔·桑切斯/盖蒂图片社

主键

首要的关键数据库表的唯一标识符是分配给每条记录的。每个表指定一个或多个列作为主键。社会安全号码可以是雇员数据库列表的主键,因为每个社会安全号码都是惟一的。

根据底层数据的复杂性,它可能证明使用有用复合键作为主要键。例如,在员工表中,虽然社会安全号码用于识别人员,但如果该人已加入,则租用日期的组合可能会隔离特定的员工记录,然后再加入该公司。

外钥匙

一个外键是表中与不同表的主键相匹配的标识符。外键创建与不同表的关系。引用完整性指的是这些表之间的关系。

当一个表具有另一个表的外键时,引用完整性的概念指出,除非链接表中有相应的记录,否则不能向包含外键的表添加记录。它还包括被称为级联更新级联删除,确保对链接表所做的更改反映在主表中。

引用完整性规则的例子

例如,考虑您有两个表的情况:员工和经理。员工表具有题为ManagedBy的外键属性,该属性指向管理器表中每个员工的管理器的记录。参照完整性强制执行以下三个规则:

  • 除非ManagedBy属性指向Managers表中的有效记录,否则不能向Employees表添加记录。引用完整性防止将不正确的详细信息插入到表中。任何不满足引用完整性规则的操作都会失败。
  • 如果在管理器表中记录的主键更改,则使用级联更新修改员工表中的所有相应记录。
  • 如果删除了管理器表中的记录,则使用级联删除删除员工表中的所有相应记录。

你可能不想在经理离开的时候级联删除员工。大多数与数据库有关的工作实际上并没有删除记录,而是使它们处于不激活状态。例如,人事表通常有一个“活动”标志来表示当前的就业情况。当经理离开时,他或她的“活动标志”被设置为null—记录不会被删除。然后,当新经理被指派时,将更新员工的记录,以反映新经理的新外键值。

参考完整性约束的优点

使用关系数据库管理具有参照完整性的系统提供了几个优点:

  • 防止输入重复的数据
  • 防止一个表指向另一个表中的不存在字段
  • 保证“有伙伴”表之间的一致性
  • 防止删除包含由另一个表中的外键引用的值的记录
  • 防止向包含外键的表添加记录,除非链接表中有主键
此页面是否有帮助?