您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 11-数据结构与算法-北京大学2008-张铭-索引技术
数据结构与算法第11章索引技术本章由张铭主写://张铭,王腾蛟,赵海燕高等教育出版社,2008.6。“十一五”国家级规划教材“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。主要内容基本概念11.1线性索引11.2静态索引11.3倒排索引11.4动态索引11.4.4动态、静态索引性能的比较11.5位索引技术11.6红黑树“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。基本概念输入顺序文件主码与辅码索引与索引文件稠密索引与稀疏索引“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。输入顺序文件输入顺序文件(entry-sequencedfile)按照记录进入系统的顺序存储记录一般说来,输入顺序文件的结构相当于一个磁盘中未排序的线性表因此不支持高效率的检索“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。主码主码(primarykey)是数据库中的每条记录的唯一标识例如,公司职员信息的记录的主码可以是职员的身份证号码如果只有主码,不便于各种灵活检索“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。辅码辅码(secondarykey)是数据库中可以出现重复值的码辅码索引把一个辅码值与具有这个辅码值的每一条记录的主码值关联起来大多数检索都是利用辅码索引来完成的“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。索引索引(indexing)是把一个关键码与它对应的数据记录的位置相关联的过程(关键码,指针)对,即(key,pointer)指针指向主要数据库文件(也称为“主文件”)中的完整记录索引文件(indexfile)是用于记录这种联系的文件组织结构索引技术是组织大型数据库的一种重要技术高效率的检索插入、更新、删除“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。索引文件一个主文件可能有多个相关索引文件每个索引文件往往支持一个关键码字段不需要重新排列重排主文件可以通过该索引文件高效访问记录中该关键码值“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。稠密索引vs稀疏索引稠密索引:对每个记录建立一个索引项主文件不按照关键码的顺序排列稀疏索引:对一组记录建立一个索引记录按照关键码的顺序存放可以把记录分成多个组(块)•索引指针指向的这一组记录在磁盘中的起始位置“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。11.1线性索引基本概念线性索引的优点线性索引的问题二级线性索引“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。线性索引文件按照关键码的顺序进行排序文件中的指针指向存储在磁盘上的文件记录起始位置或者主索引中主码的起始位置92733755数据库记录线形索引文件Go“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。线性索引的优点对变长的数据库记录的访问可以对数据进行高效检索二分检索顺序处理比较操作批处理的操作节省空间(相对其它索引结构)“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。线性索引的问题线性索引太大,存储在磁盘中在一次检索过程中可能多次访问磁盘,从而影响检索的效率使用二级线性索引更新线性索引在数据库中插入或者删除记录时“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。二级线性索引例如,磁盘块的大小是1024字节,每对(关键码,指针)索引对需要8个字节1024/8=128每磁盘块可以存储128条这样的索引对假设数据文件包含10000条记录稠密一级线性索引中包含10000条记录•10000/128=78.1•那么一级线性索引占用79个磁盘块相应地,二级线性索引文件中有79项索引对这个二级线性索引文件可以在一个磁盘块“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。二级线性索引的例子关键码与相应磁盘块中第一条记录的关键码的值相同指针指向相应磁盘块的起始位置120035744107231……2002200220035583574492971072313293…………磁盘块一级索引二级索引“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。例如:检索关键码为2555的记录1.二级线性索引文件读入内存2.二分法找关键码的值小于等于2555的最大关键码所在一级索引磁盘块地址——关键码为2003的记录3.根据记录2003中的地址指针找到其对应的一级线性索引文件的磁盘块,并把该块读入内存4.按照二分法对该块进行检索,找到所需要的记录在磁盘上的位置5.最后把所需记录读入,完成检索操作“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。11.2静态索引基本概念多分树ISAM“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。基本概念静态索引索引结构在文件创建、初始装入记录时生成一旦生成就固定下来,在系统运行(例如插入和删除记录)过程中索引结构并不改变只有当文件再组织时才允许改变索引结构“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。多分树组织索引一般不用二叉树而采用多分树大大减少访问外存的次数“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。二叉树转换成多分树632次访问索引块1次访问外存数据块“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。ISAMISAM是解决需要频繁更新的大型数据库的一个早期尝试在采用基于B+树的VSAM技术之前,IBM公司曾经广泛地采用ISAM技术多分树的应用为磁盘存取而设计结构采用多级索引主索引柱面索引磁道索引“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。11.3倒排索引基本概念11.3.1基于属性的倒排11.3.2对正文文件的倒排“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。基本概念基于属性的检索要求检索结构中某个或若干个属性满足一定条件的结点不是按关键码的值检索“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。教师数据库主表EMP#NAMEDepartmentProfessionSpecialtyAddress0155李宇数学教授代数C1050421刘阳外语助教英语E3100208赵亮物理助教力学C2110211张伟物理讲师原子物理D5080132王亮数学助教几何E2200119王卓数学讲师代数B1020330孙丽计算机教授软件A1080455刘珍外语讲师法语A2250310周兵计算机讲师英语B4230341何江计算机助教计算机F406……“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。11.3.1基于属性的倒排对某属性按属性值建立索引表,称倒排表(attr,ptrList)•(属性值,具有该属性值的各记录指针)•记录指针可以是关键码,或该记录的主文件地址颠覆主文件的顺序,因而称为倒排索引属性往往是离散型的对于连续型的索引,往往用B树倒排文件:带有倒排索引的文件“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。教师数据库倒排表DepartmentlistEMP#数学物理计算机外语0155,0132,01190208,02110330,0310,03410421,0455ProfessionlistEMP#教授讲师助教0155,03300211,0119,0455,03100421,0208,0132,0341SpecialtylistEMP#代数几何力学原子物理软件英语法语0155,01190132020802110330,03410421,03100455“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。优缺点优点:能够对于基于属性的检索进行较高效率的处理缺点:花费了保存倒排表的存储代价降低了更新运算的效率“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。11.3.2对正文文件的倒排正文索引(TextIndexing)处理的就是“建立一个数据结构以提供对文本内容的快速检索”。方法词索引(wordindex)全文索引(full-textindex)“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。词索引基本思想:把正文看作由符号和词所组成的集合,从正文中抽取出关键词,然后用这些关键词组成一些适合快速检索的数据结构。适用于多种文本类型,特别是那些可以很容易就解析成一组词的集合的文本适用于英文中文等东方文字要经过“切词”处理“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。全文索引基本思想:把正文看作一个长的字符串在数据结构中记录的是子字符串的开始位置查询就可以针对正文中的任何子字符串可以对每一个字符建立索引,从而使查询词不再限于关键词需要更大的空间“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。倒排文件使用最广泛的是词索引词索引使用最广泛一个已经排过序的关键词的列表其中每个关键词指向一个倒排表(postinglist)•指向该关键词出现文档集合•在文档中的位置“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。倒排索引建立示例正文文件:由6个文档组成,每个文档都是长字符串Peaseporridgehot,pleaseporridgecold,文档编号文本内容1Peaseporridgeinthepot,Ninedaysold.Somelikeithot,somelikeitcold,Somelikeitinthepot,Ninedaysold.23456“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。倒排索引12345678910111213编号词语(文档编号,位置)colddayshotinlikenineoldpeaseporridgeitpotsomethe(1,1)(1,2)(1,3)(1,4)(1,5)(1,6)类似处理1中的其他词语同理,处理2中的词语(2,1)依次处理所有文档“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。建立正文倒排文件1.对文档集中的所有文件都进行分割处理,把正文分成多条记录文档切分正文记录取决于程序的需要•定长的块、段落、章节,甚至一组文档“十一五”国家级规划教材。张铭,王腾蛟,赵海燕,《数据结构与算法》,高教社,2008.6。建立正文倒排文件(续1)2.给每条记录赋一组关键词以人工或者自动的方式从记录中抽取关键词停用词(Stopword)抽词干(Stemming)切词(segmentati
本文标题:11-数据结构与算法-北京大学2008-张铭-索引技术
链接地址:https://www.777doc.com/doc-5068065 .html