《数据库原理》实验报告
题目:实验四视图与索引学号班级日期
2016.10.20
一、实验内容、步骤以及结果
1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分)
2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。
--第一种方法
CREATEVIEW V_SPJ AS
SELECT sno,pno,qty FROM SPJ
WHERE jno=(
SELECT jno FROM J
WHERE jname =''
);
GO
--删除建好的视图
DROPVIEW V_SPJ;
GO
--第二种方法
CREATEVIEW V_SPJ AS
SELECT sno,pno,qty
FROM SPJ,J
WHERE J.jno=SPJ.jno AND J.jname='';
3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码
(PNO)、供应数量(QTY)。
针对该视图VSP完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
4.用SQL语句完成视图的数据更新。(15分,每题5分)
(1)给视图V_SPJ中增加一条数据。
提示:
-SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO 为NULL,所以视图中没有该条数据。
-SPJ表中JNO不能为空时,可以使用instead of触发器实现。
(2)修改视图V_SPJ中的任意一条数据的供应数量。
(3)删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常
删除,否则会删除失败;也可以考虑用instead of触发器实现)。
5.用图形用户界面对Student数据库中C表的o字段创建一个降序排列的唯一索引,索引名称IX_o。(5分)
6.使用SQL语句对Student数据库完成以下的索引操作。(15分,每题5分)
(1)在C表的ame属性上创建一个非唯一性的聚簇索引,索引名IX_ame。
(提示:创建这个聚簇索引之前,需要首先删除C表的主键约束。SQL Server中,给某X 表指定主键时,会自动创建为主属性一个聚簇索引。)
(2)在SC表上创建一个名为IX_osno的非聚簇复合索引,该索引是针对sno,o属性集
建立的升序索引。
(3)删除C表的索引IX_ame。
7.自己设计一个实验验证索引对数据库查询效率的提升作用。(40分)(提示:需要数据量比较大的情况下才容易进行对比)
采用一卡通消费记录作为实验数据,一共812条记录,
将交易发生时间设置为主键,建立升序索引,查询某天的消费记录,与未建立索引时相比较。每种情况查询5次,计算平均时间。
单位:毫秒
第1次第2次第3次第4次第5次平均时间
不使用索引1043 1000 990 990 1013 1007.2
使用索引1000 1003 1000 1000 1003 1001.2