zoukankan      html  css  js  c++  java
  • 数据库系统

    索引结构

    一个数据文件可以用来存储一个关系。

    一个数据文件可能拥有一个或多个索引文件,每个索引文件建立查找键和数据记录之间的关联,查找键的指针指向于查找键相同属相值得记录。

    索引可以是稠密的,以数据文件中每个记录在索引文件中都设有一个索引项。

    也可以是稀疏的,即数据文件中只有一些记录在索引文件中表示出来,通常为每个数据块在索引文件中设一个索引项。

    索引还可以是主索引或者辅助索引。

    顺序文件

    顺序文件是对关系中的元祖按主键进行排序而生成的文件。

    关系中的元祖按照这个次序分布在多个数据块中。

    稠密索引

    如果记录是排好序的,我们就可以在记录上建立稠密索引。

    块中只存放记录的键以及只想记录本身的指针。稠密索引文件中的索引块保持键的顺序与文件中的排序顺序一致。

    稀疏索引

    稀疏索引只为数据文件的每个存储块设一个键-指针对,他比稠密索引节省了更多的存储空间,但查找给定值的记录需要更多的时间。

    只有当数据文件是按照某个查找键排序时,在该键上建立的稀疏索引才能被使用,而稠密索引则可以应用任何的查找键。

    多级索引

    同坐在索引上再建索引,我们能够使第一级索引的使用更为有效。

    辅助索引

    辅助索引可以用于任何索引目的:这种数据结构有助于查找给定一个或多个字段值的记录。

    桶文件中指针可以是:

    指向文档本身的指针。

           指向词的一个出现的指针。

    桶中插入与删除

           桶是单个字段(指针)的记录,且向其他任何记录集合一样存放在块中。因此在插入和删除指针时,我们可用目前位置学过的任一种技术,例如为文件的扩充预留空闲空间、溢出块和可能得块内或块间记录移动。在后一种情况下,当我们移动倒排索引和桶中指针指向的记录时,我们必须小心地改变从倒排索引到桶文件中的相应指针。

    改进文档检索效率

    1 抽取词干。(例如复数名词可悲当作单数形式处理)

    2 无用词。(the、and通常不包含在到排索引中)

    多维索引

    多维索引的应用

    1 部分匹配查询

    2 范围查询

    3最近邻查询

    4 where-am-I查询

    多维索引结构综述

    1 类散列表方法

    2 类树方法

    多维数据的散列结构

    网格文件

    划分成网格的点空间,在每一维上网络线把空间分成条状,落在网格线上的点被认为是属于该网络线为其底边界的条。在不同的网络线的数目可以不同,并且相邻网格线之间可能有不同的区间长度,甚至在同一维的线之间也可有不同的区间长度。

    网格文件的查找

    空间被划分成的每一个区域可以被看成是散列表的一个桶,落入该区域的每个点的记录都存放在属于该桶的块中。如果有必要,溢出块可以用来增加桶的大小。

    网格文件的插入

    如果同种没有空间:

    1 按需要给桶增加溢出块

    2 通过增加或移动网格线在重组结构

  • 相关阅读:
    【BZOJ1093】【ZJOI2007】最大半联通子图 [DP][Tarjan]
    【BZOJ1926】【SDOI2010】粟粟的书架 [主席树]
    【BZOJ4069】【APIO2015】巴厘岛的雕塑 [贪心][DP]
    【BZOJ2815】【ZJOI2012】灾难 [LCA]
    【BZOJ3453】XLkxc [拉格朗日插值法]
    【BZOJ2850】巧克力王国 [KD-tree]
    《类和对象》
    @RequestMapping映射请求
    010-Python-socket编程
    SSH-Struts第二弹:一个Form提交两个Action
  • 原文地址:https://www.cnblogs.com/rilley/p/2798008.html
Copyright © 2011-2022 走看看