索引表中每一表目叫做索引项,它记录了子表 中最大关键码 max keyl以及该子表在数据区中 的起始位置 obi addr 索引表max_ key obj_addr ⅠD 子表12212139302933825 子表2424438344036484739 子表3|605874567279668078 子表4929794828898 各个索引项在索引表中的序号与各个子表的块 号有一一对应的关系:第i个索引项是第i个 子表的索引项,i=0,1,,n-1。这样的索引结 构叫做索引顺序结构
索引表中每一表目叫做索引项,它记录了子表 中最大关键码max_key以及该子表在数据区中 的起始位置obj_addr。 各个索引项在索引表中的序号与各个子表的块 号有一一对应的关系:第i 个索引项是第 i 个 子表的索引项, i = 0, 1, …, n-1。这样的索引结 构叫做索引顺序结构
对索引顺序结构进行搜索时,一般分为两级搜 索。 0先在索引表D中搜索给定值K,确定满足 IDi-1 max key<ksDi. max kej 的i值,即待查对象可能在的子表的序号。 0然后再在第i个子表中按给定值搜索要求的 对象。 索引表是按mxke有序的,且长度也不大 可以对分搜索,也可以顺序搜索。 各子表内各个对象如果也按对象关键码有序 可以采用对分搜索或顺序搜索;如果不是按对 象关键码有序,只能顺序搜索
对索引顺序结构进行搜索时,一般分为两级搜 索。 先在索引表 ID 中搜索给定值 K,确定满足 ID[i-1].max_key < K ID[i].max_key 的 i 值,即待查对象可能在的子表的序号。 然后再在第 i 个子表中按给定值搜索要求的 对象。 索引表是按max_key有序的,且长度也不大, 可以对分搜索,也可以顺序搜索。 各子表内各个对象如果也按对象关键码有序, 可以采用对分搜索或顺序搜索;如果不是按对 象关键码有序,只能顺序搜索
索引顺序搜索的搜索成功时的平均搜索长度 ASLIndexsea= AsLlindex ASL Sublist 其中, ASL是在索引表中搜索子表位置的 平均搜索长度,ASLb是在子表内搜索对象 位置的搜索成功的平均搜索长度。 设把长度为n的表分成均等的b个子表,每个 子表s个对象,则b=「m又设表中每个对 象的搜索概率相等,则每个子表的搜索概率为 1/b,子表内各对象的搜索概率为1/s 若对索引表和子表都用顺序搜索,则索引顺序 搜索的搜索成功时的平均搜索长度为 ASLIndexse=(b+)2+(s+1)2=(b+s)/2+1
索引顺序搜索的搜索成功时的平均搜索长度 ASLIndexSeq = ASLIndex + ASLSubList 其中,ASLIndex 是在索引表中搜索子表位置的 平均搜索长度,ASLSubList 是在子表内搜索对象 位置的搜索成功的平均搜索长度。 设把长度为 n 的表分成均等的 b 个子表,每个 子表 s 个对象,则 b = n/s。又设表中每个对 象的搜索概率相等,则每个子表的搜索概率为 1/b,子表内各对象的搜索概率为 1/s。 若对索引表和子表都用顺序搜索,则索引顺序 搜索的搜索成功时的平均搜索长度为 ASLIndexSeq = (b+1)/2+(s+1)/2 = (b+s)/2 +1
索引顺序搜索的平均搜索长度不仅与表中的对 象个数n有关,而且与每个子表中的对象个数 s有关。在给定n的情况下,s应选择多大? 利用数学方法可以导出,当s=√n时, ASLIndexs取极小值√m+1。这个值比顺序搜 索强,但比对分搜索差。但如果子表存放在外 存时,还要受到页块大小的制约。 若采用对分搜索确定对象所在的子表,则搜索 成功时的平均搜索长度为 ASLInderep s SlIder +ASL Sublist ≈log2(b+1)-1+(s+1)/2 ≈log2(1+n/s)+s/2
索引顺序搜索的平均搜索长度不仅与表中的对 象个数 n 有关,而且与每个子表中的对象个数 s 有关。在给定 n 的情况下,s 应选择多大? 利用数学方法可以导出,当 s = 时, ASLIndexSeq取极小值 +1。 这个值比顺序搜 索强,但比对分搜索差。但如果子表存放在外 存时,还要受到页块大小的制约。 若采用对分搜索确定对象所在的子表,则搜索 成功时的平均搜索长度为 ASLIndexSeq = ASLIndex + ASLSubList log2 (b+1)-1 + (s+1)/2 log2 (1+n / s ) + s/2 n n
倒排表( averted Index list) 对包含有大量数据对象的数据表或文件进行搜 索时,最常用的是针对对泉的主关键码建立索 引。主关键码可以唯一地标识该对象。用主关 键码建立的索引叫做主索引。 主索引的每个索引项给出对象的关键码和对象 在表或文件中的存放地址。 对家关键码keν对隶存放地址adr 但在实际应用中有时需要针对其它属性进行搜 索。例如,查询如下的职工信息 a(1)列出所有教师的名单 (2)已婚的女性职工有哪些人?
倒排表 (Inverted Index List) 对包含有大量数据对象的数据表或文件进行搜 索时,最常用的是针对对象的主关键码建立索 引。主关键码可以唯一地标识该对象。用主关 键码建立的索引叫做主索引。 主索引的每个索引项给出对象的关键码和对象 在表或文件中的存放地址。 但在实际应用中有时需要针对其它属性进行搜 索。例如,查询如下的职工信息: (1) 列出所有教师的名单; (2) 已婚的女性职工有哪些人? 对象关键码 key 对象存放地址addr