http://msdn.microsoft.com/zh-cn/library/ms184276.aspx
强制数据完整性可保证数据库中数据的质量。例如,如果输入了雇员 ID 值为 123 的雇员,则数据库不允许其他雇员拥有同值的 ID。如果您的 employee_rating 列的值范围是从 1 至 5,则数据库将不接受此范围以外的值。如果表有一个存储雇员部门编号的 dept_id 列,则数据库应只允许接受有效的公司部门编号的值。
对表进行计划有两个重要步骤:标识列的有效值和确定如何强制列中数据的完整性。数据完整性分为下列类别:
- 实体完整性
- 域完整性
- 引用完整性
- 用户定义完整性
域完整性
引用完整性 输入或删除行时,引用完整性保留表之间定义的关系。在 SQL Server 中,引用完整性通过 FOREIGN KEY 和 CHECK 约束,以外键与主键之间或外键与唯一键之间的关系为基础。引用完整性确保键值在所有表中一致。这类一致性要求不引用不存在的值,如果一个键值发生更改,则整个数据库中,对该键值的所有引用要进行一致的更改。
强制引用完整性时,SQL Server 将防止用户执行下列操作:
- 在主表中没有关联行的情况下在相关表中添加或更改行。
- 在主表中更改值(可导致相关表中出现孤立行)。
- 在有匹配的相关行的情况下删除主表中的行。
例如,对于 AdventureWorks 数据库中的 Sales.SalesOrderDetail 表和 Production.Product 表,引用完整性基于 Sales.SalesOrderDetail 表中的外键 (ProductID) 与 Production.Product 表中的主键 (ProductID) 之间的关系。此关系可以确保销售订单从不引用 Production.Product 表中不存在的产品。
.gif)
浙公网安备 33010602011771号