数据完整性

  1. 为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改以及删除等操作时,DBMS 自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。
  2. 数据完整性用于保证数据库中的数据在逻辑上的一致性、正确性和可靠性。
  3. 数据完整性主要包含:实体完整性、域完整性和参照完整性。

实体完整性约束

  1. 实体完整性规定表的每一行记录在表中是唯一的。
  2. 实体完整性主要包含主键约束和唯一约束。

主键约束(Primary Key Constraint)

  • 用于唯一识别每一条记录,数据表中具有唯一值的字段可设定为主键字段。

注意:每个数据表只能有一个主键。设定为主键的字段内容不能有重复值,且不能为 null 值。

唯一约束(Unique Constraint)

  • 如果某个字段满足唯一性约束要求,则可以向该字段添加唯一性约束。
  • 与主键约束相比,唯一约束也用于确保列中不存在重复值,但其列值可以是 null

注意:主键约束要求列值非空,而唯一键约束允许列值为空。

域完整性

  1. 域完整性指给定列输入的有效性,即保证指定列的数据具有正确的数据类型、格式和有效的数据范围。
  2. 域完整性主要包含非空约束、默认值约束。

非空约束(Not Null Constraint)

  • 如果某个字段满足非空约束的要求,则应该在字段上设置非空约束。 

默认值约束(Default Constraint)

  • 如果某个字段满足默认值约束的要求,可向该字段添加默认值约束。

参照完整性约束

参照完整性是指通过定义一张表中外键与另一张表中主键之间的引用规则来约束这两张表之间的联系。

参照完整性的目的

  • 利用关联表之间的制约机制互相参照,控制表间数据的一致性和完整性。这种制约机制会在用户执行插入、修改或删除记录等编辑记录的操作时,发挥其限制作用。参照完整性有效地限制了对表中数据的非法编辑,参照完整性的实质就是不允许在相关数据表中引用那些不存在的记录。

参照完整性相关术语

  • 从表:含有外键且参照其他表的表,如车辆表。从表亦称作“子表”或“参照表”。
  • 主表:被其他表参照的表,如线路表。主表亦称作“父表”或“被参照表”。
  • 外键:从表中的参照列称为外键,外键名与被参照的主表中的主键数据类型应完全一致,但可以不同名。如车辆表中的字段“线路”。
  • 被参照列:主表中的被参照列通常为主表的主键(也可以为唯一键)。如表的主键 lineID 为被参照列。

外键

  • 在公交管理系统中规定营运车辆都隶属于某个具体的公交线路。因此应在车辆表设计一个字段,该字段与线路表的主键 lineID 的数据类型和长度大小应完全一致,并且值也参照线路表中的主键值。
  • 这种参照其他表中主键的字段称为外键。

经验:

  1. 参照完整性实现方法:通过定义外键与主键之间的对应关系来实现。
  2. 参照完整性作用:保证从表中数据与主表中数据的一致性。当增加、修改或删除数据表中的记录时,可以借助参照完整性来保证相关联表之间数据的一致性。