- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 索引技術
第五章 索引技术
DBMS回答用户查询时的检索操作包括三个要素:
输入:用户要求(如关键字)
搜索:寻找,检查(匹配关键字),定位。
输出:用户所需信息。
搜索的效率依赖于被搜索空间的大小和
被搜索对象的组织结构。
搜索的效率
索引的基本思想是以搜索较小的排序集
{(关键字,记录地址)}
去代替搜索较大的主数据集合。从而提高了检索效率。
散列(Hash)
通过把关键码值映射到表中的某个位置来访问记录的过程称为散列。大多数散列方法根据计算出的地址来放置记录,而不需根据关键码值的顺序来放置。
解决冲突的技术可以分为两类:开散列方法(也称为拉链法)和闭散列方法(也称为开地址方法)。这两种方法的不同之处在与将冲突记录是存储在表外(开散列)还是存储在表内另一个槽内(闭散列)。
有7个数的开散列方法
无序索引
索引映射:
{关键字}--{记录号}。
索引文件本身不排序。平均搜索次数为关键字总数/2,
主文件都是排序的。那么,隔N项抽出一项而建立起来的。索引集合就缩小到原来文件的1/N。其定位误差小于N。然后在N个项中线性搜索。
稀索引
线性索引
线性索引是一个按关键码/指针顺序组织的索引文件。这个文件按照关键码的顺序进行排序。指针指向磁盘中完整记录的位置。
倒排表
考虑一个有关职工记录的大型数据库。如果主关键码是职工的标识号,次关键码是职工的名字,那么名字索引中的每一条记录都把名字与一个或多个标识号关联起来。这样组织起来的次关键码索引称为倒排表或称为倒排文件。它把检索反过来进行,从次关键码到主关键码,再到实际数据记录。它也被称为一个表,因为每个次关键码值有一组主关键码值与之相关联。
一个倒排表的结构
B树
一棵m阶的B树,或为空树,或为满足下列特性的m叉树:
1)树中每个节点至多有m棵子树;
2)若根节点不是叶子节点,则至少有两棵子树;
3)除根之外的所有非叶子节点至少有[m/2]棵子树;
4)所有的非叶子节点中包含下列信息
(n, A0, K1, A1, K2, A2,..., Kn, An)
其中:Ki(i=1,...,n)为关键字,且KiKi+1(i=1,...,n-1); Ai(i=0,...,n)为指向子树根节点的指针,且指针Ai-1所指子树中所有节点的关键字均小于Ki(i=1,...,n), An所指子树中所有节点的关键字均大于Kn, n([m/2] – 1 = m - 1)为关键字的个数.
5)树中所有叶节点都出现在同一层上。
B树例
B树中由小到大的结构层次是:索引项-节点-树。
索引项结构
索引项的结构可表示如下:
struct IdxItemStruct{ /*索引项的结构,长64字节*/
long N; /*记录号,长4字节*/
long A; /*索引项的右儿子指针,4字节*/
long K; /*关键字K, 56字节*/
};
typedef struct IdxItemStruct IdxItem; /*索引类别名*/
节点结构
struct NodeStruct{
int ItesOnNode; /*节点上实际项数*/
long A0; /*节点的左儿子指针*/
IdxItem IA[MaxItem]; /*索引项数组*/
};
B树的三大特点
1. 平衡性。在动态活动(查、删、改、重建)中,始终保持了平衡,即从任一个叶节点到根的路径一样长。B树正是得名于平衡(balanced)。平衡性保证了1≤搜索步数≤B树高度。从而避免了搜索效率因记录而异引起的“贫富不均”。
2. 过半性。除了根节点外(它至少有一个索引项),其余的节点上装载因子永远过半。保证了在非根节点上
最大项数/2≤实有项数≤最大项数
3. 顺序性。在动态活动中,始终左小右大。
对于每个索引项,处于该项左边的项及左边的一切子树中最大关键字≤本关键字≤右边的项及右边的一切子树中最小关键字。
顺序性保证了在搜索时,可通过比较而确定下一步的搜索方向。B树的价值在于动态性能好。
多维索引技术
我们考虑两种多维应用问题:
地理信息系统
一个地理信息系统存储二维空间中的对象。通常这些数据库中存储的对象包括房屋,道路,桥梁,管道和其它实物.
立体数据系统
它将数
文档评论(0)