1 / 28
文档名称:

数据库实验报告三--电子工程学院.docx

格式:docx   大小:5,066KB   页数:28页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

数据库实验报告三--电子工程学院.docx

上传人:薄荷牛奶 2018/10/23 文件大小:4.95 MB

下载得到文件列表

数据库实验报告三--电子工程学院.docx

文档介绍

文档介绍:实验成绩:
数据库原理与应用
实验报告
实验名称: 完整性及视图、索引
实验编号: 实验三
学号:
姓名:
实验指导教师: 袁宝库
课程主讲教师: 袁宝库
报告提交日期: 2014 年 12 月 10 日
北京邮电大学
实验目的
掌握SQL Server2008视图、索引的使用,理解什么是数据库的完整性。
实验要求
1、每完成一个任务,截取全屏幕快照1~3张作为中间步骤和结果的贴图,粘贴在最后的实验报告中。
2、除了使用我们提供的数据外还要自己向表中添加些新数据,以保证每个查询结果不为空集,或计数结果不为0。
3、思考题可以选做,作为优秀加分的依据。
实验任务
1、创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。
2、创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号、课程名及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。
3、为院系代码表(dept_code)创建基于“院系代码”列的非聚集索引yxdm_index,其填充因子值为 60。
4、为教室信息表(classroom_info) 创建基于room_id列的惟一索引并插入一条room_id列与表中已有的值重复的数据,观察系统的反馈。
5、重新修改表stud_info、lesson_info及stud_grade,修改的内容为:
①为三张表增加主码约束,stud_info的主码为stud_id,lesson_info的主码为course_id,stud_grade的主码为stud_id、course_id。
②为表stud_grade增加外码,其中stud_id参照stud_info的stud_id,course_id参照lesson_info的course_id。
③为表stud_grade增加检查性约束,约束grade列大于等于0且小于等于100。
6、使用SQL语句向上题的3张表中插入新的数据,要求分别违反刚刚增加的主码约束、外码约束、检查性约束及原有的非空约束并观察系统的反馈。
【思考题】
1、两名同学一组,各自设计一些简单的事务(对数据的增删改等操作),要求所有的事务以begin transaction开始,这些事务有的以rollback结束、mit结束,有的没有明确的结束语句。
2、用自己的电脑登录同伴的服务器。在对象资源管理器中执行前边设计的事务。每执行一次事务,合作的同伴在其电脑上通过查询观察这些事务的执行情况。
3、执行完没有明确的结束语句的事务后,在同伴观察结果的期间,选择关闭对象资源管理器,看看有什么情况发生。
4、根据实验结果你对微软的数据库管理系统的相关策略有什么样的认识?
注:以上内容是可以在一台电脑上完成的,就是打开2个对象资源管理器,分别登录到服务器上,一个执行事务,一个观察结果。建议大家在2台电脑上完成。
5、表teach_schedule的teacher_id 列与表teacher_info的teacher_id列应满足参照完整性规则的。现在在不创建外码的前提下用触发器实现如下功能:当表teach_schedule发生更新或插入表数据时,检查teacher_id列新的值是否在表teacher_info的teacher_id列中已存在,如果已存在则允许修改,如果不存在则拒绝修改。
6、测试上题的触发器是否正确。
实验过程和结果
创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。
use sunting1
go
create view s_g
as
select course_id,AVG(grade) averageGrade from stud_grade
group by course_id
use sunting1
go
select ,course_name,averageGrade
from lesson_info join a on =
创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号、课程名及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。
use sunting1
go
create view a1
as
select ,course_name,AVG(grade) averageGrade from