关系数据库主要支持三种关系:实体完整性、参照完整性和用户定义完整性。
实体完整性
实体完整性是关系模型中必须满足的完整性约束之一,其核心在于保证关系中每个元组(即每条记录)是唯一可识别的。具体规则包括:
- 每个表必须有一个主键,且主键值不能为空。
- 主键值在表中必须唯一,不允许重复。
例如,在学生信息表中,学号作为主键,必须保证每条记录的学号唯一且不为空,从而确保每个学生可以被唯一标识。
参照完整性
参照完整性,也称为引用完整性,用于维护表与表之间数据的一致性。其主要规则是:
- 如果一个表(关系)中的某个属性或属性组是另一个表的外键,则该外键的值必须存在于另一个表的主键中,或者为空。
- 目的是确保引用的实体在关联表中真实存在,避免出现无效的引用。
例如,在订单表中,如果订单的外键字段“客户ID”引用了客户表的主键,则该“客户ID”的值必须在客户表中存在,否则不允许插入。
用户定义完整性
用户定义完整性是针对具体应用场景的语义约束,由用户根据实际需求定义。其特点包括:
- 数据必须满足特定的业务规则。
- 可以通过数据库管理系统提供的机制来定义和检验这些规则,无需依赖应用程序。
例如,在库存管理系统中,可以定义一个规则:商品库存数量不能小于0,从而确保数据的业务合理性。
总结
关系数据库通过实体完整性、参照完整性和用户定义完整性三种关系,确保数据的准确性、一致性和业务规则的合规性。这些约束共同维护了数据库的完整性和可靠性,是关系模型的核心特性。