清华大学数据库access课件-第08章:索引和散列.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《清华大学数据库access课件-第08章:索引和散列.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 清华大学 数据库 access 课件 08 索引
- 资源描述:
-
1、2022-5-291第第8 8章索引和散列章索引和散列索引的目的就是为了能够快速地在文件文件中定位要访问的记录,当然,理想的做法是系统能够直接定位这些记录!为了实现这种访问数据的方式,需要一些附加结构索引索引,并将索引同数据文数据文件件联系起来。在本章,只要不是特别指明,数据数据文件一般是指存储数据记录的文件,我们简称文文件一般是指存储数据记录的文件,我们简称文件,而索引文件是指存储索引记录(或称之为索件,而索引文件是指存储索引记录(或称之为索引项)的文件。引项)的文件。基本概念基本概念 散列文件组织散列文件组织 SQLSQL中索引的定义中索引的定义顺序索引顺序索引 散列索引散列索引 多码访问
2、多码访问B B树索引文件树索引文件两种索引的比较两种索引的比较本章总结本章总结2022-5-2928.18.1基本概念基本概念基本索引 顺序索引: 基于对值的一种排序; 结构:顺序文件和B树文件 散列索引: 基于将值平均、随机地分布到若干存储桶中:由1至32个连续的物理块构成的一种存储结构;与物理块不同的是,存储桶只能包含整记录,即记录可以跨块存储但不能跨桶存储。 一个值所属的存储桶由一个函数来决定,该函数称为散列函数,也叫哈稀函数; 索引结构是散列文件!2022-5-2938.18.1基本概念基本概念索引技术的评价标准 没有哪一种索引技术是最好的,每种索引都有自己适合的数据库应用。对索引技术
3、的评价必须考虑以下因素: 访问类型:能有效支持的数据访问类型,包括根据指定的属性值进行查询,或根据给定属性值的范围进行查询。 访问时间:访问一个或多个数据项所需要的时间。 插入时间:在文件中插入一个新数据项所需要的时间,包括找到插入该项的正确位置和修改索引所需要的时间。2022-5-2948.18.1基本概念基本概念索引技术的评价标准 没有哪一种索引技术是最好的,每种索引都有自己适合的数据库应用。对索引技术的评价必须考虑以下因素: 删除时间:在文件中删除一个数据项所需要的时间,包括找到待删除项的正确位置和修改索引所需要的时间。 更新时间:U = D + I (在位与异位) 空间开销:索引结构所
4、需要的额外存储空间;索引是用空间的代价来换取系统性能的提高。 索引实现的难度决定了该索引技术是否实用、能否推广。2022-5-2958.28.2顺序索引顺序索引顺序索引的作用 能迅速地按顺序或随机地访问文件中的记录顺序索引的结构 在逻辑上按顺序存储搜索码的值,并将搜索码值与包含该搜索码值的记录关联起来。顺序索引的特征 一个文件可以有多个索引,对应于不同的搜索码。根据索引结构中搜索码值的逻辑顺序和数据文件中记录的物理存储顺序之间的关系,顺序索引分为主索引和辅助索引。2022-5-2968.28.2顺序索引顺序索引基本概念 主索引与辅助索引 如果数据文件中记录按照某个搜索码指定的顺序物理存储,则该
5、搜索码对应的索引称为主索引或簇集索引; 相反,搜索码顺序与数据文件中记录的物理顺序不同的那些索引称为辅助索引或非簇集索引; 显然,一个数据文件只能有一个主索引,但可以有多个辅助索引,为什么? 堆文件与索引顺序文件 没有主索引的数据文件就是堆文件; 而拥有主索引的数据文件就是索引顺序文件。2022-5-2978.28.2顺序索引顺序索引索引顺序文件 数据文件中的记录按照某个搜索码值的顺序物理存储:2022-5-2988.28.2顺序索引顺序索引顺序索引的分类 按照索引结构中搜索码值与数据文件中搜索码值的对应关系,顺序索引又分为:稠密索引稀疏索引 稠密索引:对应文件中搜 索码的每一个 值都有一个索
6、 引记录(或索引项),它包括:搜索码值;指向具有该搜索码值的第一个数据记录的指针。2022-5-2998.28.2顺序索引顺序索引顺序索引的分类 稀疏索引: 只为搜索码的部分值建立索引项; 与稠密索引一样,每个索引项也包括搜索码值和指向具有该搜索码值的第一个数据记录的指针。问题:如何利用稀疏索引进行查询呢?2022-5-2910SQL SERVER 主索引的问题? 搜索码链表的作用 记录的惟一标识是F#:P#:S# 索引中索引项的指针是?页头:96字节数据行,即记录176行偏移数组:链表095Mianus (96)Downtown(136).Brighton(176).Downtown(216
7、).13621696 3 2 1 0 页号:0108.28.2顺序索引顺序索引各行顺序号(槽号)RID是01:010:01的记录的搜索码是Downtown2022-5-29118.28.2顺序索引顺序索引稠密索引和稀疏索引的比较 利用稠密索引通常可以比稀疏索引更快地定位一个记录的位置; 与稠密索引相比,稀疏索引占用空间小,插入和删除时的维护开销也小。实践中如何正确地建立稀疏索引? 数据库查询的开销主要是由什么来决定的? 在主存内扫描整个块的时间是可以忽略的; 考虑为每个块建一个索引项的稀疏索引,这样的索引可以定位包含所要查找记录的块。2022-5-29128.28.2顺序索引顺序索引多级索引
8、问题的提出:即使采用稀疏索引,索引本身有时也会变得非常庞大而难于有效处理,例如:一个文件有100000条记录;一个块存储10个记录,每个块有一个索引记录;一个块存储100个索引记录。索引过大在读索引时就必须有一部分放在磁盘上,搜索一个索引项就必须多次读磁盘块:当然在索引上可以用二分法来定位索引项,最坏需要读log2(b)次块,假设索引占据了b个块。如果索引小到一次I/O就能够放到主存里,搜索一个索引项的时间就很短,可以忽略不计。2022-5-29138.28.2顺序索引顺序索引多级索引 问题的解决: 像对待其他任何顺序文件那样对待索引结构,即在主索引上再构造一个稀疏索引,形成一个具有内层索引和
9、外层索引的多级索引结构:主索引结构本身就是一个顺序文件2022-5-29148.28.2顺序索引顺序索引索引的更新 删除数据记录,稠密索引的变化情况:删除数据文件中的“邓婉玲”记录;删除数据文件中“王小丽”的s000005记录;删除数据文件中“王小丽”的s000009记录。 2022-5-29158.28.2顺序索引顺序索引索引的更新 删除数据记录,稀疏索引的变化情况:删除文件中搜索码为“陈舒艺”的记录;删除文件中搜索码为“陈国国”的所有记录;删除文件中搜索码为“冯蔼妍”记录;删除文件中“王小丽”的s000005记录;删除文件中“王小丽”的s000007记录。2022-5-29168.28.2
10、顺序索引顺序索引索引的更新 插入数据记录,索引的变化情况: 若索引是稠密的,并且待插入记录的搜索码值不在索引中,就要把该搜索码值插入到索引中; 若索引是为每个块保存一个索引项的稀疏索引:只要没有新块产生,索引就无需做任何改动;在产生新块的情况下,新块中的第一个搜索码值将被插入到索引中。 多级索引: 删除和插入数据记录时,它的更新同上面类似:内层索引的更新同上;内层索引的变化,引起外层索引按上述算法更新。2022-5-29178.28.2顺序索引顺序索引辅助索引 在文件中,记录按主索引而不是辅助索引的搜索码值顺序物理存储; 具有同一个辅助搜索码值的记录可能分布在文件的各个地方,例如:2022-5
展开阅读全文