大型数据库管理实验报告4

  • 格式:doc
  • 大小:200.50 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉轻工大学

经济与管理学院实验报告

实验课程名称大型数据库管理

实验起止日期2019.11.5至2019.12.10 实验指导教师程红莉

实验学生姓名学生班级学号物流管理1702

实验

评分

教师

签名

年月日

实验项目名称数据完整性实验日期2019.12.10 学生姓名班级学号物流管理1702

一、预习报告(请阐述本次实验的目的及意义)

1.熟悉通过SQL对数据进行完整性控制。

2.完成书本上习题的上机练习。

二、实验方案(请说明本次实验的步骤和进程)

1.用Constraint和Check建立完整性约束条件

教材164页例[7]

Student表的ssex 只允许取‘男’或‘女’

create table student1

(sno char(9) primary key,

sname char(8) not null,

sex char(2) check(sex in('男','女')),

sage smallint,

sdept char(20)

);

教材164页例[8]

create table sc1

(sno char(9),

cno char(4),

grade smallint check(grade>=0 and grade<=100),

primary key(sno,cno),

foreign key(sno)references student1(sno),

foreign key(cno)references course(cno)

);

教材164页例[7]、例[8](给学生表的性别增加约束条件,即只允许“男”或“女”。可用语句:

alter table student add constraint course1 check(sex in('男','女'))

alter table sc add constraint course2 check (score>=0 and score<=100)

go

2.建立规则,并绑定到表的字段上

①建立规则gender,该规则限定变量值(如性别)只能取“男”或“女”,然后绑定到student表的sex字段上

create rule gender as @value in('男','女')

sp_bindrule gender,'student.sex';

②建立规则r_score,该规则规定变量值(如分数)在0到100之间,并将该规则绑定到SC表的score字段上。Create rule r_score as @score>=0 and @score<=100

sp_bindrule r_score,'sc.score'

3.建立触发器

建立一个“班级信息表”,该表有“班级编号”,“班级人数”“所属系别”“班主任”等列,并在“学生表”中增加一列“班级编号”,利用触发器使学生表中某班级增加一名学生时,“班级信息表”中该班级的“班级人数”自动增加1。

create table 班级信息

(班级编号 char(4),

班级人数 smallint,

所属系别 char(20),

班主任 char (12))

create trigger T_addnum on student for insert as update 班级信息 set 班级人数=班级人数+1 where 班级编号=(select 班级编号 from inserted);

三、实验结果分析、改进建议

本次实验主要了解了数据的三类完整性约束(包括实体、参照和用户定义完整性),学会了利用SQL语句对数据进行完整性控制,掌握了触发器的使用。实验中遇到了一些问题,但都在老师和同学的帮助下顺利的解决了,以后要多多练习,争取更熟练的使用SQL SERVER 进行各种操作。

(1)关于规则,需要知道:规则是作为单独的对象创建,然后绑定到列上。一个列只能应用一个规则,但可以应用多个CHECK 约束。

(2)建好表后先把标识列设置了,以免后续出现问题。

(3)使用TSQL语句时,要注意函数中指定的返回表的列中列数据类型和后面SELECT中的数据类型要保持一样,不然会造成某个字段的长度比要插入给该字段的值的长度短。

(4)学会使用触发器

(5)知道了如何分别用菜单命令法和T-SQL语句法来定义主键约束、唯一键约束、检查约束以及外键约束。(6)学会了如何创建、删除默认值约束,创建、册除规则。

这次实验练习的是数据库完整性,由于有了之前T-SQL语言的学习经验,理解起来好很多,在老师的演示下,我对数据库的完整性有了更深刻的理解,同时对约束、默认值、规则的相关定义有了更深入的认识,和数据库完整性的目的:确保数据库中的数据的一致性和完整性。并能较熟练的使用T-SQL语句进行有关方面的操作。通过该实验,对于触发器的实现不是很熟悉,对数据库数据完整性验证有了比较熟悉的了解。虽然mssql语法好多和书上不同,但通过查阅资料还是能解决问题。

学生签名:

年月日