[发明专利]数据库表索引有效
申请号: | 201710056864.9 | 申请日: | 2017-01-26 |
公开(公告)号: | CN107045535B | 公开(公告)日: | 2021-09-17 |
发明(设计)人: | E·马诺;J·莫拉莱斯阿拉贡;M·罗德里格兹帕拉西奥斯;D·斯培兹阿 | 申请(专利权)人: | 艾玛迪斯简易股份公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23 |
代理公司: | 中国贸促会专利商标事务所有限公司 11038 | 代理人: | 郭思宇 |
地址: | 法国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 索引 | ||
1.一种确定由计算机系统维护的数据库表内满足检索请求的最明确的一行的方法,
数据库表包括多行和多列,数据库表的行和列形成单元格,其中每个单元格包括至少一个值或者不包括值;
计算机系统还维护用于数据库表的索引;
索引包括用于数据库表的每一列的相应索引结构;
每个索引结构包括用于在相应列中出现的每个值的相应指针元组阵列和位图,其中每个指针元组包括指示在列中出现的值之一的第一指针和指示该值在其中出现的数据库表的行的第二指针,并且其中位图指示相应列中没有值的单元格;
索引指示数据库表的行的明确性次序;
该方法包括:
由计算机系统接收指示与相应输入值相关联的数据库表的至少一列的请求;
对于每一列,计算机系统递增地:
使用用于该列的索引结构的位图来维护数据库表中在所考虑列的单元格中不包含值的所有行,及
使用用于该列的索引结构的指针元组来过滤数据库表中不包括相应输入值的所有行;
由计算机系统从剩余行中选择明确性次序最高的一行;
由计算机系统返回所确定的行的至少一个单元格的值。
2.如权利要求1所述的方法,还包括:
响应于接收到请求,初始化指示剩余行的结果位图;
其中对请求中指示的每一列使用索引结构的指针元组和位图包括:
建立列位图,指示满足用于相应列的相应输入值的所有行,及
通过将结果位图与列位图组合来更新结果位图。
3.如权利要求1所述的方法,其中相应的指针元组阵列在计算机系统的存储器中连续存储。
4.如权利要求1至3中任何一项所述的方法,其中对请求中指示的每一列使用索引结构的指针元组和位图还包括对相应的指针元组阵列执行二分搜索。
5.如权利要求2所述的方法,其中满足相应输入值的所有行由列位图中的“1”指示,所有剩余行在结果位图中由“1”指示,并且组合结果位图与列位图包括按位AND运算。
6.如权利要求1至5中任何一项所述的方法,还包括:
通过以下步骤生成索引:
初始化指示相应列中没有值的单元格的位图,
对于列中的每个值,将指针元组添加到相应索引结构的指针元组阵列,
更新相应索引结构的位图,以反映没有值的所有单元格。
7.如权利要求6所述的方法,其中生成索引还包括:
通过由第一指针指向的值对每个索引结构的指针元组进行排序。
8.如权利要求1至7中任何一项所述的方法,其中,通过取决于每行中没有值的单元格的数量和/或行的单元格中的值的明确性来对数据库表的行进行排序,实现数据库表的行的明确性次序的指示。
9.如权利要求8所述的方法,其中明确性次序的指示由指示经排序的行的唯一行次序给出。
10.如权利要求1至7中任何一项所述的方法,其中明确性的指示由包括在数据库表的索引中的权重值给出。
11.如权利要求1至10中任何一项所述的方法,其中计算机系统是路由器,数据库表是路由表,路由表的每一行构成用于将传入的请求朝目的地路由的路由规则,该路由表包括具有可能的目的地值的目的地列和具有指示朝目的地的路线的对应值的路线列。
12.如权利要求1至10中任何一项所述的方法,其中计算机系统是防火墙,数据库表是过滤表,请求是传入的数据分组并且过滤表的每一行构成用于允许或防止传入的数据分组朝目的地转发的过滤规则,其中过滤表包括具有可能的目的地地址的至少一个目的地列、具有指定传入的数据分组的特性的值的至少一个列以及具有指示传入的数据分组要被转发还是丢弃的布尔值的列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于艾玛迪斯简易股份公司,未经艾玛迪斯简易股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710056864.9/1.html,转载请声明来源钻瓜专利网。