1、存储技术与数据库物理设计(二)及答案解析(总分:100.01,做题时间:90 分钟)一、选择题(总题数:3,分数:9.00)1.将新插入的记录存储在文件末尾,并使记录随机地分布在文件物理存储空间中的文件结构是_。A堆文件 B聚集文件 C索引文件 D散列文件(分数:3.00)A.B.C.D.2.下图是雇员表(雇员:ID,姓名,年龄部门)所对应的数据文件和索引文件示意图,其中雇员 ID 为主码,该索引属于_。(分数:3.00)A.B.C.D.3.数据库文件结构包括堆文件、索引文件、散列文件等几种形式,利用哈希函数实现对数据库快速访问的文件结构是_。A顺序文件 B聚集文件 C索引文件 D散列文件(分
2、数:3.00)A.B.C.D.二、设计与应用题(总题数:9,分数:91.00)考虑从下图的文件中删除记录 5。比较下列实现删除技术的相对优点。(分数:11.01)(1).移动记录 6 到记录 5 所占用的空间,然后移动记录 7 到记录 6 所占用的空间。(分数:3.67)_(2).移动记录 7 到记录 5 所占用的空间。(分数:3.67)_(3).标记记录 5 被删除,不移动任何记录。(分数:3.67)_4.文件组织和文件中记录的组织一样吗?(分数:10.00)_有学生表(学号,姓名,年龄,性别,系名,专业名,班号),设一个系可有多个专业,每个专业可有多个班,各班班号不重复,一个学生只在一个班
3、学习。现经常需要按“系名”和“班号”进行查询,为提高查询效率,需要为“系名”和“班号”两个列建立一个非聚集索引。建立此索引有下列两种方法:方法 1:索引列顺序为(班号,系名)。方法 2:索引列顺序为(系名,班号)。(分数:10.00)(1).这两种方法哪个更合理?请简要说明原因。(分数:5.00)_(2).针对你认为合理的方法,写出创建该索引的 SQL 语句。(分数:5.00)_5.什么情况下使用稠密索引比稀疏索引要好?并做必要的解释。(分数:10.00)_6.假设我们需要将 26 个大写英文字母分布到 5 个存储桶中(地址从 0 到 4),那么散列函数 h 该如何设计呢?(分数:10.00)
4、_7.设有商场经营管理系统,系统中的部分数据表或视图的相关信息如下:表或视图 访问频率 数据源表 T1(商品标识,时间,销售柜台,数量,单价,金额) 10000 次/天 原始数据表 T2(商品标识,时间,商店标识,总数量,总金额) 1000 次/天 T1表 T3(商品标识,日,商店标识,总数量,总金额) 5000 次/天 T2表 T4(商品标识,月份,商店标识,总数量,总金额) 100 次/天 T3视图 V1(商品标识,季度,商店标识,总数量,总金额) 3000 次/天 T3表中 T4 的数据源是 T3 的数据汇总计算而来的,并假定各个表的数据都得到了及时计算。现需对系统进行优化,以提高与视图
5、 V1 有关的查询效率。设有如下优化方案:为视图 V1 建立索引为 T2 建立主索引为 T3 建立主索引重写视图 V1,将其数据源调整为 T4,并为 T4 建立主索引重写视图 V1,将其数据源调整为 T2,并为 T2 建立主索引请针对每一个优化方案,说明该优化方案对实现目标是否有效,并简要说明原因。(分数:10.00)_8.设关系数据库中有两个关系:Course(Course_name,TeacherID)Enrollment(Course_name,StudentID,Grade)设有 3 门课程,5 个学生,学生与课程之间有选修关系。试用聚集文件表示这两个关系的文件结构。(分数:10.00
6、)_9.简述有序索引技术的基本原理。(分数:10.00)_10.简述散列技术的基本原理。(分数:10.00)_存储技术与数据库物理设计(二)答案解析(总分:100.01,做题时间:90 分钟)一、选择题(总题数:3,分数:9.00)1.将新插入的记录存储在文件末尾,并使记录随机地分布在文件物理存储空间中的文件结构是_。A堆文件 B聚集文件 C索引文件 D散列文件(分数:3.00)A. B.C.D.解析:解析 堆文件也称为无序(记录)文件。在堆文件中,记录随机地存放在文件物理空间中;插入操作存储在文件末尾;聚集文件记录按照聚集码值在物理空间顺序存储,插入操作后因为要保证聚集码的顺序存储,所以一般
7、要修改记录顺序来调整;索引文件由索引表和主文件两部分构成;散列文件是利用散列存储方式组织的文件,亦称为直接存取文件。2.下图是雇员表(雇员:ID,姓名,年龄部门)所对应的数据文件和索引文件示意图,其中雇员 ID 为主码,该索引属于_。(分数:3.00)A.B. C.D.解析:解析 索引与数据位置不一致,因此是非聚集索引;所有的雇员 ID 都在索引中,因此为稠密索引;雇员 ID 是主码,在其上建立的索引为主索引。3.数据库文件结构包括堆文件、索引文件、散列文件等几种形式,利用哈希函数实现对数据库快速访问的文件结构是_。A顺序文件 B聚集文件 C索引文件 D散列文件(分数:3.00)A.B.C.D
8、. 解析:解析 本题主要考查散列文件的概念。散列文件是指利用定义在文件记录上的搜索码(也称为散列域),通过计算一个散列函数(也称为哈希函数),以散列函数值作为记录的物理地址,实现对文件记录的直接、快速访问。二、设计与应用题(总题数:9,分数:91.00)考虑从下图的文件中删除记录 5。比较下列实现删除技术的相对优点。(分数:11.01)(1).移动记录 6 到记录 5 所占用的空间,然后移动记录 7 到记录 6 所占用的空间。(分数:3.67)_正确答案:(这种删除技术实现简单,容易理解,因为在删除记录 5 时很容易找到它的下一条记录(即记录6)的位置。但这种方法需要移动多条记录。)解析:解析
9、 本题主要考查记录的不同删除方法。对于不同的删除方法比较其优缺点,取决于删除操作后其他记录的移动次数和是否需要额外的存储空间。(2).移动记录 7 到记录 5 所占用的空间。(分数:3.67)_正确答案:(这种技术在实现时首先要找到文件的尾部,即最后一条记录 7 的位置,然后再移动记录。但这种方法只需要移动一条记录。)解析:(3).标记记录 5 被删除,不移动任何记录。(分数:3.67)_正确答案:(这种技术在实现时比较麻烦,但是它不需要移动任何记录,因此删除的效率比较高。但是它要标记被删除的记录,因此需要引入额外的结构,是用空间的代价来换取时间的节省。)解析:4.文件组织和文件中记录的组织一
10、样吗?(分数:10.00)_正确答案:(不一样。文件在逻辑上是记录的序列,这些记录被映射到磁盘的物理块上。文件由操作系统作为一种基本的数据结构提供。将数据库映射到文件的方法有两种:定长记录和变长记录。上面讲述的是数据库中的文件组织,即如何在文件中存储记录。而文件中记录的组织是指如何在文件中组织(或安排)这些记录。常用的几种方法是堆文件、顺序文件、散列文件、聚集文件等。)解析:解析 本题主要考查对文件中一些概念的理解,需要读者加深理解。有学生表(学号,姓名,年龄,性别,系名,专业名,班号),设一个系可有多个专业,每个专业可有多个班,各班班号不重复,一个学生只在一个班学习。现经常需要按“系名”和“
11、班号”进行查询,为提高查询效率,需要为“系名”和“班号”两个列建立一个非聚集索引。建立此索引有下列两种方法:方法 1:索引列顺序为(班号,系名)。方法 2:索引列顺序为(系名,班号)。(分数:10.00)(1).这两种方法哪个更合理?请简要说明原因。(分数:5.00)_正确答案:(方法 2 更加合理。理由有 3 个:其一,更加有利于减少索引层次,提高查询效率。从索引物理结构上来讲,索引常常为 B+树结构。而“系”的数量肯定要少于“班”的数量,那么先在小数量范围内搜索,然后在大范围内搜索,正好满足多层索引的 B+树结构,使索引的层次较少,有利于提高查找效率。其二,更加符合使用习惯。一般查询时喜欢
12、从大到小的范围。其三,更加便于以系、班进行统计。)解析:解析 本题主要考查各种索引方法的选择和多个索引项的选择顺序问题,针对不同的问题应该根据具体的语义以提高效率为目的。(2).针对你认为合理的方法,写出创建该索引的 SQL 语句。(分数:5.00)_正确答案:(Create index i_index_1 on 学生表(系名,班号)解析:5.什么情况下使用稠密索引比稀疏索引要好?并做必要的解释。(分数:10.00)_正确答案:(在存取时间和空间开销方面,如果强调存取时间,那么应采用稠密索引。这是因为稠密索引是对每个搜索码值建立一个索引记录,所以查找速度较快。)解析:解析 本题主要考查稠密索引
13、和稀疏索引的适用范围,要加深理解概念。6.假设我们需要将 26 个大写英文字母分布到 5 个存储桶中(地址从 0 到 4),那么散列函数 h 该如何设计呢?(分数:10.00)_正确答案:(假设用 code(A)表示 A 所对应的编号 0,用 code(B)表示 B 所对应的编号 1,用 code(C)表示C 所对应的编号 2A,B,C,Z上的一个散列函数可以设计成:h=code(Search Key)mod 5那么 26 个大写字母的分配如下图所示。)解析:解析 本题主要考查散列函数的设计问题。散列函数设计时要保证其均匀性和随机性,来防止桶溢出和减少查找时间。7.设有商场经营管理系统,系统中
14、的部分数据表或视图的相关信息如下:表或视图 访问频率 数据源表 T1(商品标识,时间,销售柜台,数量,单价,金额) 10000 次/天 原始数据表 T2(商品标识,时间,商店标识,总数量,总金额) 1000 次/天 T1表 T3(商品标识,日,商店标识,总数量,总金额) 5000 次/天 T2表 T4(商品标识,月份,商店标识,总数量,总金额) 100 次/天 T3视图 V1(商品标识,季度,商店标识,总数量,总金额) 3000 次/天 T3表中 T4 的数据源是 T3 的数据汇总计算而来的,并假定各个表的数据都得到了及时计算。现需对系统进行优化,以提高与视图 V1 有关的查询效率。设有如下优
15、化方案:为视图 V1 建立索引为 T2 建立主索引为 T3 建立主索引重写视图 V1,将其数据源调整为 T4,并为 T4 建立主索引重写视图 V1,将其数据源调整为 T2,并为 T2 建立主索引请针对每一个优化方案,说明该优化方案对实现目标是否有效,并简要说明原因。(分数:10.00)_正确答案:(:视图不能建立索引,无效。:视图 V1 建立在 T3 上,T2 的索引优化对 V1 没有影响。:可以在一定程度上提高 v1 的查询效率,但是从 T3 的每行记录粒度为“日”查询到粒度“季”,大约每次查询涉及 90 行;而从 T4 的每行记录粒度为“月”查询到粒度“季”,大约每次查询只涉及 3 行,显
16、然后者的查询效率更高。另外,T2 的访问频率相当高,若是 V1 建立在 T2 上,显然会增加其查询频率,降低查询效率。:为 5 种方案中的最优方案。每次查询涉及行数最少(3 条),而且 T4 的访问频率最低。:每次查询涉及的记录行数比方案要多,虽然 T2 查询频率比 T3 少,但是总体性能不如方案。)解析:解析 本题主要考查主索引的建立方式问题。对一些数据项建立主索引,其主要目的就是减少查询频度、提高查询效率,因此在分析这类题目时要检查查询涉及的行数、访问频率、查询效率等方面的影响。另外要注意的一点是,在视图上是不能建立索引的,因为视图是一张虚表,数据库中不存储视图数据,只存储视图定义。8.设
17、关系数据库中有两个关系:Course(Course_name,TeacherID)Enrollment(Course_name,StudentID,Grade)设有 3 门课程,5 个学生,学生与课程之间有选修关系。试用聚集文件表示这两个关系的文件结构。(分数:10.00)_正确答案:(设 3 门课程分别为 DB、OS 和 COM,5 个学生分别为 BAI、DE、GU、HAI 和 YE。如果用户查询主要是根据课程查找选课的学生,则可建立如下图所示的聚集文件。)解析:9.简述有序索引技术的基本原理。(分数:10.00)_正确答案:(有序索引技术利用索引文件实现搜索码取值到记录物理地址间的映射关系
18、。索引文件由索引记录组成,每个记录中的索引项记录了某个特定的搜索码值和具有该值的数据文件记录的物理地址。当需要访问数据文件中的某个数据记录时,先根据搜索码值查阅索引文件,找到对应的索引项,然后从索引项中找出数据记录在数据文件中的物理地址,根据这个地址访问数据记录。)解析:10.简述散列技术的基本原理。(分数:10.00)_正确答案:(散列技术是一种快速文件访问技术,它利用散列函数实现文件记录域取值到记录物理地址间的直接映射关系。当需要访问数据文件中搜索码值为 si 的某个或某些文件记录时,将 si 作为散列函数 h的输入,计算得出的散列函数输出值 h(si)就是文件记录在数据文件中的物理地址。)解析: