第5章数据完整性5.1数据完整性的基本概念数据完整性包括实体完整性、域完整性、参照完整性和用户定义的完整性
1.实体完整性(EntityIntegrity)实体完整性用于保证数据库中数据表的每一个特定实体都是唯一的
它可以通过主键约束(PRIMARYKEY)、唯一键约束(UNIQUE)、索引或标识属性(IDENTITY)来实现
2.域完整性(DomainIntegrity)域完整性就是保证数据库中的数据取值的合理性,即保证指定列的数据具有正确的数据类型、格式和有效的数据范围
通过为表的列定义数据类型以及检查约束(CHECK)、默认定义(DEFAULT)、非空(NOTNULL)和规则实现限制数据范围,保证只有在有效范围内的值才能存储到列中
3.参照完整性(ReferentialIntegrity)参照完整性定义了一个关系数据库中,不同的表中列之间的关系(父键与外键)
要求一个表中(参照表)的一列或列组合的值必须与另一个表(被参照表)中的相关一列或列组合的值相匹配
被引用的列或列组合称为父键,父键必须是主键或唯一键,通常父键为主键,主键表(被参照表)是主表
引用父键的一列或列组合称为外键,外键表(参照表)是子表
子表的外键必须与主表的主键相匹配,只要依赖某一主键的外键存在,主表中包含该主键的行就不能被删除
4.用户定义的完整性(User-definedIntegrity)这是由用户定义的完整性
用户可以根据自己的业务规则定义不属于任何完整性分类的完整性
5.2约束约束是通过限制列中数据、行中数据以及表之间数据取值从而保证数据完整性的非常有效和简便的方法
5.2.1主键(PRIMARYKEY)约束PRIMARYKEY约束在表中定义一个主键,唯一的标识表中的行
一个表只能有一个PRIMARYKEY约束
当向表中的现有列添加PRIMARYKEY约束时,SQLServer将检查列中现有