参照完整性是关系数据库管理系统中的一项数据库功能。 它通过应用约束来确保数据库中的表之间的关系保持准确,以防止用户或应用程序输入不准确的数据或指向不存在的数据。
数据库使用表来组织它们包含的信息。 它们与Excel等电子表格类似,但对高级用户来说功能更强大。 数据库通过使用主键和外键来工作,这些键维护表之间的关系。
首要的关键
数据库表的主键是分配给每个记录的唯一标识符。 每个表将有一列或多列指定为主键。 社会安全号码可以是员工数据库列表的主键,因为每个社会安全号码都是唯一的。
但是,由于隐私问题,分配的公司ID号码是用作员工主键的更好选择。 某些数据库软件(如Microsoft Access)自动分配主键,但随机键没有实际意义。 最好使用一个有意义的密钥记录。 实施参照完整性的最简单方法不是允许更改主键。
外键
外键是表中与不同表的主键匹配的标识符。 外键创建与不同表的关系,参照完整性是指这些表之间的关系。
当一个表具有指向另一个表的外键时,参照完整性的概念指出,除非在链接表中存在相应的记录,否则不得向包含外键的表添加记录。 它还包括称为级联更新和级联删除的技术,可确保对链接表所做的更改反映在主表中。
参照完整性规则示例
考虑你有两个表的情况:员工和经理。 Employees表具有名为ManagedBy的外键属性,该外键属性指向Managers表中每个员工经理的记录。 参照完整性强制执行以下三条规则:
- 除非ManagedBy属性指向Managers表中的有效记录,否则无法将记录添加到Employees表中。 参照完整性可防止将不正确的细节插入到表中。 任何不符合参照完整性规则的操作都会失败。
- 如果Managers表中记录的主键发生更改,则Employees表中的所有对应记录都会使用级联更新进行修改。
- 如果删除管理者表中的记录,则使用级联删除删除Employees表中的所有相应记录。
参照完整性约束的优点
使用具有参照完整性的关系数据库管理系统提供了几个优点:
- 防止输入重复数据。
- 防止一个表指向另一个表中不存在的字段。
- “合作”表格之间保证一致性。
- 防止删除包含另一个表中的外键引用的值的记录。
- 防止向包含外键的表添加记录,除非链表中存在主键。