【学习目标】
��本章从介绍索引的基本概念和评价索引技术的标准开始,重点讲述了顺序索引、B+树索引和散列。本章的学习目标就是要求大家掌握各种不同索引的基本概念、自身的特点、所适合的应用,以及索引本身的更新。
【学习方法】
��本章的许多概念在《数据结构》课程中都讲述过,所以在学习本章的内容之前首先要复习一下以前在《数据结构》课程里所学过的基本概念和方法。同时,在学习本章内容的时候,要善于对不同的索引在概念、特点和对查询的支持等方面进行横向比较,以达到学习目标。再进一步,如果有条件的话,最好上机做有关索引的实验,将理论和实践结合起来,也许会对索引技术有更深刻的印象。
【学习指南】
��索引的目的就是为了能够快速地在文件中定位要访问的记录,当然,理想的做法是系统能够直接定位这些记录!为了实现这种访问数据的方式,需要一些附加结构--索引,并将索引同数据文件联系起来。在本章,只要不是特别指明,数据文件一般是指没有索引这种附加结构的文件,我们简称文件,而索引文件是指具有索引这种附加结构的数据文件。本章的重点是8.2节、8.3节、8.4节、8.5节和8.6节,难点是8.3节和8.8节,其中8.3节的部分内容需要参考《数据结构》课程已经讲过的概念和方法,属于自学的范围。请你仔细阅读教材的第六章"数据库设计"的6.5.2小节(链接到本课程所指定的教材的介绍)以及参考书的第11章"索引和散列"(链接到本课程所指定的参考书的介绍)。
【预习思考题】
��1、 什么是顺序索引和散列索引?
��2、 存储桶是什么东西?它与物理块有什么不同?
��3、 评价索引技术好坏的标准有哪些?
��4、 顺序索引的作用和结构是什么?
��5、 什么是主索引、辅助索引?它们又叫什么名字?
��6、 什么是索引顺序文件?
��7、 稠密索引和稀疏索引有什么不同?如何利用稀疏索引进行查询?在实践当中如何建立稀疏索引?
��8、 为什么会提出多级索引?多级索引的结构是怎样的?
��9、 当在数据文件中插入记录或删除记录时,该文件上的稠密索引、稀疏索引如何变化?
��10、 多级索引是如何更新的?
��11、 辅助索引和主索引在结构上有什么不同?
��12、 为什么会提出B+树索引?和顺序索引相比,B+树索引最主要的优点是什么?
��13、 B+树索引结构中,根结点、非叶结点和叶结点都具有相同的数据结构,但它们之间还有哪些差别?
��14、 B+树索引有哪两个缺点?
��15、 如何利用B+树索引进行查询?
��16、 B+树文件组织和B+树索引有什么区别?
��17、 散列文件组织与索引有什么不同?
��18、 如何在散列文件上进行数据的插入、删除和查询?
��19、 散列函数应具有的两个特性是什么?
��20、 什么是散列索引?如何构造散列索引?
��21、 在考虑用索引还是散列时,值得注意哪几个问题?
��22、 什么是复合索引?如何利用多个索引进行查询?
��
|