欢迎来到天天文库
浏览记录
ID:20574223
大小:873.00 KB
页数:63页
时间:2018-10-13
《数据结构(c语言) 第9章 索引技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DataStructure第九章索引技术10086510本章的基本内容是:索引的基本概念线性索引技术树形索引9.1索引的基本概念数据结构的最终目的是提高数据的处理速度,索引是为了加快查找速度而设计的一种数据结构,索引技术是组织大型数据库以及磁盘文件的一种重要技术。在索引问题以及数据库中,常常将数据元素称为记录。文件:通常指存储在外存上的记录集合。索引:把一个关键码与它对应的记录相关联的过程。索引由若干索引项构成,索引项至少应包含关键码和关键码对应的记录在存储器中的位置等信息。静态索引:索引结构在文件创建时生
2、成,一旦生成就固定下来,只有当文件再组织时才允许改变。动态索引:在文件创建时生成索引结构,在文件执行插入/删除等操作时,索引结构本身也随之发生改变。9.1索引的基本概念线性索引:若将索引项组织为线性结构,则称其为线性索引或索引表;树形索引:若将索引项组织为树结构,则称其为树形索引。多级索引:对索引再建立一个索引,就构成了多级索引。9.1索引的基本概念对一些大型文件,其索引本身可能也很大,在这种情况下,可以建立多级索引。稠密索引:在线性索引中,若文件中的每个记录对应一个索引项,则这种索引称为稠密索引。在稠密索
3、引中,无论文件是否按关键码有序,索引项总是按关键码顺序排列。只要内存空间允许,通常把稠密索引存储在内存中,从而大大提高记录的查找速度。9.2.1稠密索引稠密索引主要适用于静态索引。稠密索引示例8…20…52…35…40…61…56…关键码其它数据项文件r1r2r3r4r5r6r78203540525661关键码指针索引表有序无序或有序优点:实现对数据库记录有效的查找(采用折半查找技术)和随机访问(按记录号访问)。缺点:如果文件中包含的记录太多,索引表本身可能会因为太大而无法在内存中存储;文件中插入或删除记录
4、,必须更新稠密索引,而稠密索引的插入和删除操作代价很高。稠密索引文件外存稠密索引内存9.2.2分块索引稠密索引空间代价很大减少索引项的个数分块索引分块索引需要将文件划分为若干块,且要求分块有序。块内无序:每一块内不要求有序块间有序:块与块之间有序分块有序多级索引每块建立一个索引项分块索引35…20…8…52…40…61…65…88…76…第1块文件关键码其他数据项第2块第3块353613883索引表最大值块长块首地址有序分块索引在分块索引表中进行的查找称为分块查找(也称为索引顺序查找),分两步进行:⑴在索引
5、表中确定待查关键码所在的块;⑵在相应块中查找待查关键码。索引表查找顺序查找折半查找块内查找——顺序查找设有n个记录的文件分为m个块,每个块均为t个记录,则n=m×t。设Lb为查找索引表确定关键码所在块的平均查找长度,Lw为在块内查找关键码的平均查找长度,则分块查找的平均查找长度为:ASL=Lb+Lw若采用顺序查找对索引表进行查找,则分块查找的平均查找长度为:分块索引ASL=Lb+Lw=当t取时,ASL取最小值+1。nn9.2.3多重表稠密索引、分块索引对主关键码建立索引为文件建立索引的目的是什么?对主关键码
6、进行查找对次关键码进行查找对次关键码建立索引多重表、倒排表多重表多重表除了为文件建立一个主索引外,还为每个需要查找的次关键码建立一个索引。在文件中,为建立索引的次关键码分别增设一个指针域,用于将次关键码相同的记录链结在一起(稠密索引),或将在同一块中的记录链结在一起(分块索引)。关键码指针000100020003000400050006主索引多重表次关键码头指针长度男013女033“性别”次索引次关键码头指针长度24~2602327~30013“年龄”次索引∧24∧男王东0006∧30∧女李爽0005062
7、505女齐梅0004052704女刘楠0003042506男张亮0002033002男王刚0001年龄性别姓名职工号文件关键码指针000100020003000400050006主索引9.2.4倒排表“年龄”倒排表次关键码记录号表24~2602,04,0627~3001,03,05“性别”倒排表次关键码记录号表男01,02,06女03,04,0524男王东000630女李爽000525女齐梅000427女刘楠000325男张亮000230男王刚0001年龄性别姓名职工号文件9.3树形索引9.3.12–3树2
8、-3树:是具有下列特性的树:⑴一个结点包含1个或者2个关键码。⑵每个内部结点有2个子女(包含一个关键码)或者3个子女(包含两个关键码)。⑶所有叶子结点都在树的同一层。2–3树示例18331223304810152021243145475052形状上有什么特性?2–3树示例包含1个或者2个关键码;有2个子女或者3个子女;叶子结点在同一层。183312233048101520212431454750522–3树示例结
此文档下载收益归作者所有