为了保证数据库中数据的正确性和相容性,需要对关系模型进行完整性约束。完整性通常包括实体完整性、参照完整性和用户自定义完整性,具体解释如下。
(1)实体完整性。实体完整性要求关系中的主键不能重复,且不能取空值。空值是指不知道、不存在或无意义的值。由于关系中的元组对应现实世界中互相之间可区分的个体,这些个体使用主键来唯一标识,若主键为空或重复,则无法唯一标识每个个体。
(2)参照完整性。参照完整性要求关系中的外键要么取空值,要么取被参照关系中的某个元组的主键值。例如,通过学生所属的班级号可以找到对应的班级,这就符合参照完整性;而如果对应的班级被删除了,学生通过班级号找不到班级,就不符合参照完整性。
(3)用户自定义完整性。用户自定义完整性是用户针对具体的应用环境定义的完整性约束条件,由DBMS检查用户自定义的完整性。例如,用户名不允许重复。