数据库原理概论课后习题6

  • 时间:
  • 来源:互联网
  • 文章标签:

数据库原理与应用(第2版)

第1章 数据库系统概论
第2章 数据模型
第3章 关系数据库原理
第4章 关系数据库标准查询语言SQL
第5章 关系模式的规范化设计
第6章 数据库的存储管理
第7章 关系查询与优化
第8章 事务管理
第9章 数据库设计


第六章

(1)简述数据字典的内容和作用。
答:数据字典所存储的内容为系统运行时涉及的各种对象及其属性的描述信息。这些对象包括描述数据库结构及其约束的数据库模式、视图、存取路径(索引、散列等)、访问权限以及数据库状态信息的记录和统计等。在关系数据库系统中,具体包括:模式包含的关系名称及其属性构成;子模式所包含的关系名称及其属性构成;用户的标识、口令、存取权限;数据文件的名称、物理位置、文件组织方式;现有关系(基表)的个数、视图的个数、元组(记录)的个数、不同属性值的元组(记录)个数等。
数据字典还要存储系统中对象之间关系的描述信息。包括各级模式间的映射关系、用户与子模式间的对应关系等,如:哪个用户使用哪个子模式,哪个模式对应于哪些数据文件,以及存储在哪些物理设备上等。
数据字典是数据库系统运作的基础,任何数据库操作都要参照数据字典的内容。

(2)为什么数据库系统中在主键上都默认创建聚集索引?
答:在数据库物理实现时,一般选择一个候选键作为主键,来标识关系表中的每一个元组,数据查询也大都按主键进行。建立基于主键的索引可加快按主键进行查询的速度,而且创建的索引一般是聚集索引,使得关系表中的元组按主键作物理排序,从而进一步加快按主键进行范围查询的速度。因此,目前大多数DBMS都默认在主键上创建聚集索引。

(3)常见的文件组织有哪些?各有什么优缺点?
答:在磁盘上,数据库以文件形式组织,文件由记录组成,用一个记录来表示一个数据对象(例如元组)在磁盘块中的连续字节存放。每条记录由一些字段(相关数据值或数据项)集合组成,其中每个数据项(值)由一个或多个字节构成,并与记录中的一个特定字段相对应。字段名及其相应数据类型的值集合即构成了一个记录类型或记录格式定义。在许多情况下,一个文件的所有记录均属于同一记录类型。
根据文件中记录的类型,文件的组织结构主要有定长记录和变长记录。

  • 定长记录是最基本、最常见的记录方式,所有记录都有相同的字段,且字段的长度都是固定的。优点是系统可以确定每个字段相对于记录开始位置的起始字节位置,有利于存取此文件的程序定位字段值。缺点是不管字段中实际存储的数值有多大,都分配固定的存储空间,可能会存在大量的空间浪费现象。
  • 变长记录则指文件中的不同记录的大小(字节数)是不同。可能是文件记录均属于同一记录类型,但有一个或多个字段是大小变化的,或不同类型的相关记录在磁盘块中聚集存储,文件包含不同的记录类型的记录等。优点是根据字段中实际存储的数值大小来分配存储空间,不会存在大量的空间浪费现象。缺点是对于变长记录,记录必须包含足够多的信息以便能找到记录的任何字段。

(4)常见的文件存储结构有几种?各有什么优缺点?
答:常见的数据库文件的存储结构形式主要有堆文件、顺序文件、聚集文件、散列文件等。

  1. 堆文件的文件结构简单,数据记录之间的顺序是任意的。插入的记录只需存储到有一些空闲空间的块中,或重新创建一个新块。对于新建立的文件,数据记录按照其插入的先后顺序存放。多用于对数据的查询访问所有的行,且行的访问顺序并不重要的数据文件的存储。缺点是查询效率低,根据查找条件搜索一个记录时,要逐个块进行线性查找。对等值查询和范围查询无任何优势。删除操作通常是给记录加一个删除标记,导致存储空间的浪费。
  2. 顺序文件根据关系中某些属性值的排序存储记录。如果查找条件是基于排序属性的值,满足条件的所有记录都连续存放在磁盘中,可进行二分查找,高效地完成等值查询和范围查询。缺点是对于一个顺序文件,插入和删除操作都是代价很大的操作,因为要求记录的存储必须保持有序性。
  3. 聚集文件把某个或某些属性(聚集码)上具有相同值的记录元组集中存放在连续的尽可能少的物理块中,可显著地减少访问磁盘的次数,提高按聚集码进行查询的效率。聚集文件还可以将经常进行连接操作的关系的元组按连接属性值聚集存放,从而大大提高连接操作的效率。但此类聚集文件在加速连接查询的同时,会导致其他类型的查询变慢。
  4. 散列文件根据记录的一个属性值(一般为主键,称为散列键)的散列函数值确定记录的地址,散列函数值相同的多个记录存储在一个桶(磁盘块或连接块的簇)中。优点是根据散列键值可以直接得到记录的磁盘块地址,I/O操作次数少,访问性能高。其缺点是只适用于按散列键访问记录,存放地址冲突问题。

(5)试解释为什么一个文件只能有一个聚集索引。
答:聚集索引的建立会使数据文件中记录的物理顺序与索引记录的排列顺序一致,即在索引属性或属性组上,索引记录和数据记录都是有序的。因为数据文件最多只能在一个排序键上进行物理排序存储,所以最多只能有一个聚集索引。

(6)试解释为什么一个非聚集索引必须是稠密的。
答:对一个非聚集索引,索引的建立不影响记录的存储位置,数据文件不是按该索引的索引键顺序物理存储的,无法根据索引键值来预测键值不在索引中显示指明的任何记录的位置。而且若非聚集索引的索引键不是候选键,具有同一索引键值的记录可能分布在文件的各个地方,索引文件中还要存放指向数据文件中具有该索引键值的所有记录的指针(或指向一个地址指针筒)。因此,一个非聚集索引对于数据文件中的每一个记录都必须有一个索引项,即非聚集索引必须是稠密的。

(7)试解释为什么一个稀疏索引必须是聚集的。
答:稀疏索引为数据文件的每个磁盘块生成一个键-指针对,来记录该磁盘块第一条数据记录的索引键值及该磁盘块的首地址,只有当数据文件是按照索引键排序时,即索引是聚集的,才能通过索引文件的索引项定位没有索引项对应的记录所在磁盘块,在该索引键上建立的稀疏索引才能发挥作用。例如查找一条键值为K的记录,首先在索引文件中找到索引键值小于等于K的索引项中索引键值最大的索引项。根据这个索引项的指针找到记录所在磁盘块,在调人内存的磁盘块中进行搜索,以找到键值为K的记录,或遇到索引字段值更大的记录或遇到文件尾为止,此时说明不存在键值为K的记录。因此稀疏索引必须是聚集的。

(8)多级索引如何提高查找数据文件的效率?
答:当数据量很大时,即使采用稀疏索引,建成的索引文件可能还是很大,索引文件本身也可能占据多个磁盘块,不能全部驻留内存,只能以顺序文件的形式存储在磁盘上。需 要时,再把指定索引存储块调人内存。这样即便能定位索引存储块,并且能使用二分查找法找到所需索引项,仍可能需要执行多次磁盘I/O操作。为了能够快速定位查找记录的索引项,从而更快地找到所需的数据记录,可为建立在数据文件上的索引文件建立索引,建立一个多级索引结构,直到最后的索引文件为一个磁盘块,能在系统运行时常驻内存,从而提高查找数据文件的效率。
在多级索引组织结构中,第一级索引可以是稠密索引,也可以是稀疏索引。由于索引文件本身是顺序文件,因此从第二级索引开始建立的更高级的索引一般都是稀疏索引,即 对每个索引文件所占磁盘块建立一个索引记录。因为在一个索引文件上建立稠密索引将需要和该索引文件同样多的键-指针对,需要同样多的存储空间,那样就失去了建立多级索引的意义。

(9)解释多级索引(树索引)和散列索引哪种适合等值搜索,哪种适合范围搜索。
答:目前大多数DBMS使用B树数据结构来实现动态多级索引,B树把索引文件所占的磁盘存储块组织成一棵树,这棵树是平衡的。每个叶结点中的指针Pi指向一个索引键值为Ki的数据文件记录或一个记录指针桶(指针桶中的每个指针指向具有索引键值为Ki的一条数据文件记录)。每个叶结点可存放[(m-1)/2]到m一1个索引键值Ki。各叶结点中的Ki值不重复且不相交,并按升序排列,构成数据文件的一级稠密索引。每个叶结点中的最后一个指针指向下一个键值大于它的叶结点存储块,使得所有叶结点按索 引键值的排序顺序链接在一起,可提供对数据文件的基于索引键的有序访问。但对一个树索引来说,在到达叶结点之前,必须访问从根结点到叶结点的多个磁盘块。
散列索引为数据文件中每个记录建立一个索引项,然后把这些索引项组织成散列结 构,而不是稠密或稀疏索引结构,即同一散列桶内存放的是散列值相同的索引键值所在的索引项。使用散列索引对索引键值为v的记录进行等值搜索时,先计算h(v),找到对应 的散列桶,然后扫描桶的内容来定位索引键值为v的索引项(如果有的话)。绝大多数桶 都只由单个磁盘块组成,那么基于索引键的等值检索可以通过一次I/O操作实现,因为 没有其他的桶包含相同键值的索引项,所以如果在桶中没有找到相应的索引项,那么在数据文件中就不存在索引键值为v的记录。对散列索引而言,在某一范围内,索引键值连续的索引项随机地分布在各个桶中,因而对一个范围查找所花费的代价是和这一范围内索引项的数目成比例的。
因此,多级索引(树索引)适合范围搜索,散列索引则可使等值查找更为有效。

(10)B树的阶数m是什么?描述B树的内部结点和叶结点的结构。
答:在这里插入图片描述

(11)在图4-3(教材图6-30)中的B树上执行以下操作,描述那些引起树改变的操作所带来的变化。
答:在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

本文链接http://www.taodudu.cc/news/show-2450877.html