数据库完整性实验报告

实验六 数据库完整性

一、实验学时

2学时

二、实验目的

(1)实现数据完整性的概念及实施数据完整性的重要性。
(2)掌握数据完整性的分类。
(3)掌握完整性约束的添加、删除方法。
(4)掌握通用默认值的创建、实施与删除方法。
(5)掌握规则的创建、实施与删除方法。
(6)掌握级联删除、级联修改方法。

三、实验要求

(1)硬件设备:奔腾II或奔腾II以上计算机,局域网。
(2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、WINDOWS 7、SQL SERVER 2000/2005/2008中文版企业版或标准版。
(3)实验课前预习,课后及时完成实验内容。
(4)实验过程及记录按题目格式要求填写代码清单。
四、实验内容
数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的重要标准。
数据完整性分为以下三类:
实体完整性:是指保证表中所有的行惟一。由主键约束来实现。
参照完整性:也叫引用完整性。参照完整性总是保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。由外键约束来实现。
用户自定义完整性:是指用户针对某一具体关系数据库的数据必须满足的语义要求。通常由Check约束来实现。
1.完整性约束的添加、删除
约束是强制数据完整性的首选方法。约束有6种类型:非空约束、默认值约束、Check约束、主键约束、外键约束、唯一性约束。
(1)使用企业管理器实施约束
1)为表Student的Sdept字段即所在系字段,设置默认值约束,默认值取‘CS’。
添加默认约束的操作步骤:

删除默认约束的操作步骤:

2)(若原有约束,请在企业管理器中删除Student表的主键约束)在企业管理器中将Sno重设为主键。(会操作即可,操作步骤可略)
3)为Student表的Sname字段添加唯一性约束。
添加唯一性约束操作步骤:

删除唯一性约束操作步骤:

4)(若原有约束,请在企业管理器中删除原有的外键约束)在企业管理器中删除SC原有的外键约束,在企业管理器中对Sno,Cno字段设置外键约束,约束名自己取。并允许级联删除与级联更新。
添加外键约束的操作步骤:

删除外键约束的操作步骤:

(2)使用T-SQL语句添加、删除约束(约束名自取,并自行添加或修改某些字段值检验有效性)
1)为Student表的Sno字段添加一个check约束,使学号满足如下条件:
a. 学号前四位为2002。
b. 学号后五位为数字字符。
T-SQL语句为:
create table Student
(Sno char(9) check(Sno like’[2002][0-9][0-9][0-9][0-9][0-9]’));

2)(若原有约束,请在企业管理器中删除SC表主键约束及外键约束)将SC表中的Sno,Cno字段设置为主键。
T-SQL语句为:
alter table SC
add constraint PK_SC primary key(Sno,Cno)

3)为SC表中的Sno,Cno添加外键约束,约束名自取;并允许级联删除与级联更新。
添加外键约束T-SQL语句为:

alter table SC
add constraint FK_Sno foreign key(Sno) references Student(Sno)
on delete cascade on update cascade;
alter table SC
add constraint FK_Cno foreign key(Cno) references Course(Cno)
on delete cascade on update cascade

验证级联删除与级联更新T-SQL语句:
(测试实例自编)
**select from Student
where Sno=‘200200002’
select from SC
where Sno=‘200200001’
delete from Student
where Sno=‘200200001’
select from Student
where Sno=‘200200001’
select
from SC
where Sno=‘200200001’

2.通用默认值的实施
(1)使用企业管理器实现
1)使用企业管理器中为数据库Stu_Course创建一个默认的年龄,名称自取,值为:19。
具体步骤如下:

2)将该默认值绑定到Student表中的Sage列。
具体步骤如下:

3)将Sage列上的绑定解除,并在企业管理器中删除该默认值。
具体步骤如下:

若未解除绑定,能否删除默认值?

(2)使用T-SQL语句实施默认值
1)为数据库Stu_Course创建一个关于性别的默认值,名称自取,值为“女”。
T-SQL语句为:
create default about_sex as '女’

2)将该默认值绑定到Student表中的Ssex字段(原有的约束请删除)
T-SQL语句:
sp_bindefault about_sex ,"Student.Ssex"

3)解除表Student的Ssex列的默认值绑定,并删除该默认值。
T-SQL语句:
sp_unbindefault ‘Student.Ssex’
drop default about_sex

3.规则的实施
(1)使用企业管理器实现
1)使用企业管理器为数据库Stu_Course创建一个关于性别的取值规则,规则名自取,要求字段的取值仅能为‘男’或‘女’。
具体步骤如下:

2)将该规则绑定到Student表的Ssex字段上。
具体步骤如下:

3)解除Student表的Ssex列上的绑定,并删除该规则。
具体步骤如下:

(2)使用T-SQL实施规则
1)为数据库Stu_Course创建一个关于学号的规则,名称自取,学号的具体取值规则为:
a.学号前四位为2002。
b.学号后五位为数字字符。
T-SQL语句为:
create rule rule_Sno
as @range like’2002[0-9][0-9][0-9][0-9][0-9]'

2)将该规则绑定到表Student表、SC表的Sno列上。
T-SQL语句为:
exec sp_bindrule ‘rule_Sno’,‘Student.Sno’
exec sp_bindrule ‘rule_Sno’,'SC.Sno’

3)解除所有的绑定,并删除该规则。
T-SQL语句为:
exec sp_unbindrule ‘Student.Sno’
exec sp_unbindrule 'SC.Sno’

你可能感兴趣的:(数据库,数据库完整性)