实验训练4:视图和索引的构建与使用

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

数据库原理实验报告-实验四-视图与索引

《数据库原理》实验报告

题目:实验四

视图与索引

一、实验内容、步骤以及结果

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表的Cno字段创建一个降序排列的唯一索引,索引名称IX_CNo。(5分)

6.使用SQL语句对Student数据库完成以下的索引操作。(15分,每题5分)(1) 在C表的CName属性上创建一个非唯一性的聚簇索引,索引名 IX_ CName。(提示:创建这个聚簇索引之前,需要首先删除C表的主键约束。SQL Server中,给某张表指定主键时,会自动创建为主属性一个聚簇索引。)

(2) 在SC表上创建一个名为IX_Cnosno的非聚簇复合索引,该索引是针对sno,cno属性集建立的升序索引。

(3) 删除C表的索引IX_CName。

7.自己设计一个实验验证索引对数据库查询效率的提升作用。(40分)

(提示:需要数据量比较大的情况下才容易进行对比)

采用一卡通消费记录作为实验数据,一共 812条记录,

将交易发生时间设置为主键,建立升序索引,查询某天的消费记录,与未建立索引时相比较。每种情况查询 5次,计算平均时间。

单位:毫秒

第 1 次第 2 次第 3 次第 4 次第 5 次平均时间

不使用索引1043 1000 990 990 1013 1007.2

使用索引1000 1003 1000 1000 1003 1001.2

通过数据可以看出,建立索引后查询平均时间确实较没有索引时短。

二、实验中出现的问题以及解决方案 ( 对于未解决问题请将问题列出来 )

除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。

问题:在 Student 数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是 1996 年出生的学生的视图,因为 sbirth 的类型是 date ,不能用LIKE ’ 1996% ’ 命令进行检索。

解决方案:使用BETWEEN ‘1996-1-1’ AND ‘1997-1-1’ 表达式。如下图:

批阅者:批阅日期:实验成绩:批注:

相关文档
最新文档