关系完整性约束是为了确保数据库中数据的正确性和一致性,对关系模型施加的一系列限制条件或规则[1]。这些完整性约束通常包括域完整性、实体完整性、参照完整性和用户定义完整性。其中,域完整性、实体完整性和参照完整性是关系模型必须遵守的基本完整性约束[2]。
域完整性
域完整性确保数据库字段的取值范围在指定的范围内。每个属性的值应该属于相应的域,这是由关系模式规定的。此外,一个属性是否可以为空,是由语义决定的,这也是域完整性约束的重要方面。域完整性约束是最基本的约束之一,在现代关系数据库管理系统中,通常都具备对域完整性约束的检查功能[3]。常见的域完整性约束包括检查(CHECK)、默认值(DEFAULT)、不为空(NOT NULL)以及外键(FOREIGN KEY)等。 实体完整性
实体完整性要求关系的主键不能重复且不能取空值。在一个关系中,主键用于唯一地标识实体,而主键中的属性被称为主属性。根据实体完整性规则,主属性不能为空,因为空值表示不确定性,这意味着关系中可能存在无法唯一标识的实体,这与现实情况不符。实体完整性规则还要求,当主键由多个属性组成时,所有主属性都不能为空。例如,在一个员工表中,如果使用工号作为主键,那么这个字段就不能出现空值,否则就无法对应特定的员工,这种情况下,表格就不完整,违反了实体完整性规则。