1 / 32
文档名称:

实现数据完整性.ppt

格式:ppt   大小:469KB   页数:32页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实现数据完整性.ppt

上传人:mh900965 2018/1/17 文件大小:469 KB

下载得到文件列表

实现数据完整性.ppt

文档介绍

文档介绍:数据库系统原理及应用
补充:SQLServer2000的数据完整性
实现数据完整性
数据完整性的类型
强制数据完整性
定义约束
约束的类型
禁用约束
决定使用何种强制方法
推荐操作
数据完整性的类型
数据完整性
指的是数据库中存储的数据的一致性和准确性
数据完整性的类型:域完整性、实体完整性、引用完整性
域完整性
域(或列)完整性是指对列指定一组有效的值并决定是否可为空值
实体完整性
实体(或表)完整性要求表中的所有行都有一个惟一的标识符,称为主键值
引用完整性
引用完整性确保主键(在被引用表中)和外键(在引用表中)之间的关系得到保持
强制数据完整性
声明式数据完整性
作为对象定义的一部分来定义数据必须达到的标准
SQL Server 自动强制完整性
通过使用约束、默认和规则来实现
过程式数据完整性
在脚本中定义数据必须达到的标准
在脚本中强制完整性
通过使用触发器和存储过程来实现
可在客户端或服务器用其他编程语言和工具来实现
定义约束
决定使用何种约束
创建约束
使用约束的注意事项
决定使用何种约束
完整性类型
约束类型
描述

DEFAULT
如果在INSERT语句中未显式提供 值,则指定为列提供的值
CHECK
指定列中可接受的数据值
REFERENTIAL
基于其他表中的列的值,指定可接受的用于更新的数据值
实体
PRIMARY KEY
惟一标识每一列,确保用户没有输入重复的值。同时创建一个索引以增强性能。不允许空值
UNIQUE
确保在非主键列中不输入重复值,并创建一个索引以增强性能。允许空值
引用
FOREIGN KEY
定义一列或多列的值与同表或其他表中主键的值匹配
CHECK
基于同表中其他列的值,指定列中可接受的数据值
创建约束
使用 CREATE TABLE 或者 ALTER TABLE
CREATE TABLE 是在创建表时创建约束
ALTER TABLE 是在一个已有的表上创建约束
可以添加约束到已有数据的表上
可添加单列或多列约束
若约束应用于单列,称为列级约束
若约束引用了多列,称为表级约束,即使它并没有引用表中的所有列
使用约束的注意事项
可直接在表上创建、更改和删除约束,而不必删除并重建表
应该在应用程序和事务内建立错误检查逻辑,以测试是否违反了某个约束
SQL Server 里的约束只是“最后防线”
当给一个表添加约束的时候,SQL Server 将检查现有数据是否违反约束
建议创建约束的时候指定名称,否则系统将为约束自动产生一个复杂的名称
名称必须惟一,且符合 SQL Server 标识符的规则
查看约束的信息
系统存储过程:sp_helpconstraint、sp_help
信息模式视图:check_constraints、referential_constraints、table_constraints
系统表:ments、sysreferences、sysconstraints
约束的类型
DEFAULT 约束
CHECK 约束
PRIMARY KEY 约束
UNIQUE 约束
FOREIGN KEY 约束
级联引用完整性
DEFAULT 约束
如果一个列的值在 INSERT 语句中没有指定,DEFAULT 约束将自动输入一个值,可以是预先指定的常量、NULL 或者一个系统函数运行时的值
语法:[CONSTRAINT 约束名] DEFAULT 约束表达式
创建 DEFAULT 约束的两种方法
创建一个默认(CREATE DEFAULT),然后使用存储过程 sp_bindefault 将默认绑定到一个列
CREATE TABLE 或 ALTER TABLE 时使用 DEFAUTL 约束
应用 DEFAULT 约束的注意事项
DEFAULT 约束创建时将不检查表中的现存数据
DEFAULT 约束只对 INSERT 语句有效
每列只能定义一个 DEFAULT 约束
不能和“标识”属性及 rowversion 数据类型共同使用