§7.数据完整性和事务处理<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

.数据完整性的含义

1.数据完整性:是指数据的一致性(Accuracy)和可靠性(Reliability).它是为防止数据库中存在不符合语义规定的数据,防止因错误信息的输入,输出而造成无效的操作或错误信息.它包括实体完整性(Entity Integrity),域完整性(Domain Integrity),参照完整性(Referential Integrity),用户定义完整性(User-defined Integrity).

2.实体完整性:表的每一行在表中是唯一的实体.

3.域完整性:也称列完整性,要求域中指定的列(字段)的数据具有正确的数据类型,格式和有效的数值范围.

4.参照完整性:指两个表中的主码和外码的数据应对应一致.

5.用户自定义完整性:允许用户定义不属于其它任何一完整性规则(例如:性别只能是男或女).

 

.规则.

1.规则:就是数据库中,对存储在数据库中表的列(字段)或用户自定义数据类型中的值的规定和限制.规则要在insertupdate语句之前给出.

2.创建规则:(右健单击规则--[新建规则])

create rule 规则名

       as @变量名 条件               --条件可以是where子句中任何有效的表达式

eg:

create rule Age_rule

       as @old_scope between 17 and 28

create rule sex_rule

       as @xb_scope in('','')

3.绑定规则

sp_bindrule 规则名,'.字段名'

eg:

sp_bindrule enter_date_rule,'学生表.入学年份'

4.解除绑定

sp_unbindrule '.字段名'

5.删除规则

drop rule 规则名

6.注意事项:

       1)规则只能处理常量,SQL Server函数,不能用来查找表,不能比较表中的列.

       2)表中的每列只能与一种规则绑定,若多次绑定,则后者覆盖前者.

       3)若要删除规定,先要解除规则的绑定关系.

       4)在系统中大量拷贝数据时,规则不起作用.

       5)在使用规则时,要确保规则中的值与其绑定列的数据类型相一致.

 

.默认

1.默认:是一种数据库对象,它与默认值约束的功能一样.

2.创建默认:(右健单击默认--[新建默认])

create default 默认名 as 常量

eg:

create default age_limited as 18

3.绑定默认和解除绑定默认(同规则)

eg:

sp_bindefault age_limited,'学生表.年龄'

sp_unblindefault '学生表.年龄'

4.删除默认

drop default 默认名称