首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在进行某学校教务管理系统的数据库设计时,数据库设计人员设计了如下几个关系模式: 系(系号,系名),系号为主码 学生(学号,姓名,所在系号),学号为主码 课程(课程号,课程名,开课系号),课程号为主码 选课(学号,课程号,选课时间),学号和课
在进行某学校教务管理系统的数据库设计时,数据库设计人员设计了如下几个关系模式: 系(系号,系名),系号为主码 学生(学号,姓名,所在系号),学号为主码 课程(课程号,课程名,开课系号),课程号为主码 选课(学号,课程号,选课时间),学号和课
admin
2018-06-19
22
问题
在进行某学校教务管理系统的数据库设计时,数据库设计人员设计了如下几个关系模式:
系(系号,系名),系号为主码
学生(学号,姓名,所在系号),学号为主码
课程(课程号,课程名,开课系号),课程号为主码
选课(学号,课程号,选课时间),学号和课程号为主码
开发人员在将关系模式实施到SQL Server 2008的“教务"数据库时,使用了如下表结构定
义语句:
CREATE TABLE系(
系号varchar(10)NOT NULL,
系名varchar(100)
)
CREATE TABLE学生(
学号varchar(50)NOT NULL,
姓名varchar(50),
所在系号 varchar(10)
)
CREATE TABLE课程(
课程号varchar(50)NOT NULL,
课程名varchar(100),
开课系号varchar(10)
)
CREATE TABLE选课(
学号varchar(50)NOT NULL,
课程号varchar(50)NOT NULL,
选课时间datetime
)
在执行如下查询语句时发现执行效率很低:
SELECT * FROM选课JOIN学生ON学生.学号=选课.学号
JOIN系ON系.系号=学生.所在系号
JOIN课程ON课程.课程号=选课.课程号
WHERE系.系号=’012’
AND convert(varchar(10),选课时间,120)>=’2010—01—01’
设已在“选课”表的“选课时间”列及“学生”表的“所在系号”列上建立了索引。请问这两个索引是否能够提高该查询语句的执行效率?如果不能,请说明原因。
选项
答案
“选课”表的“选课时间”可以建立索引,从而提高了查询效率,而“学生”表的“所在系号”建立索引不会提高查询效率。索引的意义就是将记录按目标关键字顺序排列,这样查找某个目标关键字的对应值的位置就缩小了查找范围。“选课时间”的重复率低,所以可以作为索引,而学生“所在系号”的重复率太高,则不会提高查询效率。
解析
“选课”表的“选课时间”列上建立了索引,从而能够提高执行效率。经常出现在Where子句中的字段,特别是大表的字段,应该建立索引。索引的作用就类似于书的目录,即会按照章节的顺序排列。因此如果在一本数百页的书里面查找某个章节位置的时候,就可以只扫描书的目录。扫描的范围缩了n倍,查询的效率自然就会提高。另外,在SQLServer内存够用的情况下,索引会被放到内存中,在内存中查找自然又会提高效率,所以必须合理利用索引。
转载请注明原文地址:https://kaotiyun.com/show/mHlZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
数据库的基本特点是()。
并行数据库系统中,对关系进行划分并把它们分布到多个磁盘,所采用的主要技术有3种:【】、散列分布和范围分布。
新奥尔良方法将数据库设计过程分为4个阶段:【】、概念结构设计、逻辑结构设计和物理设计。
【】是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。
SYBASE的企业解决方案包括,【】、数据复制和数据访问。
在一个关系的若干候选码中指定一个用来惟一标识该关系元组的候选码称为【】。
常用的文件物理结构有:顺序结构、链式结构和【】。
数据库管理系统中的数据操纵语言(DML)所实现的操作一般包括
MS-SQLSERVER数据库系统的核心是
SQL的数据定义功能包括
随机试题
简述创业者应具备的特征。
关于股骨颈骨折与粗隆间骨折,哪种说法正确
四逆散适用于当归四逆汤适用于
A.罹患率B.治愈率C.生存率D.保护率E.效果指数试验研究中对照组与实验组发病率之比为
申请设立期货公司,除应当符合《期货交易管理条例》规定的条件外,还应该具备下列()条件。
下列各项中,应作为无形资产取得成本入账的有()。
某生近期情绪低落、思维迟缓、活动减少,容易自我否定、甚至产生自杀念头。他的主要问题是()。
下面四个所给的选项中,哪一选项的盒子能由下边所给定的图形做成()
以下程序的输出结果是______。main() { int k=17; printf("%d,%o,%x\n",k,k,k): }
Childrenwhogriptheirpenstooclosetothewritingpointarelikelytobeatadisadvantageinexaminations,【C1】______tothe
最新回复
(
0
)