§
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.
规则
:
就是数据库中
,
对存储在数据库中表的列
(
字段
)
或用户自定义数据类型中的值的规定和限制
.
规则要在
insert
和
update
语句之前给出
.
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
默认名称
转载于:https://blog.51cto.com/wnight88/141545