[发明专利]内存数据库系统及实现内存数据库的方法和装置无效
申请号: | 200710105890.2 | 申请日: | 2007-06-01 |
公开(公告)号: | CN101315628A | 公开(公告)日: | 2008-12-03 |
发明(设计)人: | 周丹弟;李向东 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同达信恒知识产权代理有限公司 | 代理人: | 黄志华 |
地址: | 518129广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 数据库 系统 实现 方法 装置 | ||
技术领域
本发明涉及计算机及通信领域的数据库技术,特别涉及一种内存数据库技术。
背景技术
目前的内存数据库是通过将系统中常用数据库表中的数据全部映射到主机共享内存中,通过使用一个固定的数据结构数组将每个固定的数据库表保存在共享内存中,也就是将内存中的一个存储区作为一个数据库表的表空间,根据表记录的实际大小将该存储区划分为多个内存块来保存数据库表中的数据;在数据库表中的关键字段上建立内存索引,通过该内存索引对关键数据进行实时访问。内存系统提供用于对内存数据库表中的数据进行修改和检索的应用编程接口API(Application Programming Interface)接口,应用程序在访问这些数据库表时,通过调用内存数据库的API来访问共享内存中的数据,而不是直接访问物理数据库表中的数据,因此,能够提高系统对关键数据的实时访问性能。
由于通过使用一个固定的数据结构数组将每个固定的数据库表保存在共享内存中,所述数据的存储和数据库表记录的结构之间耦合度较大,导致不能灵活创建和管理数据库表。例如,在内存数据库中增加数据库表时,必须修改内存数据库的底层(即需要重新编写或修改代码);又如,在对数据库的表结构进行变更时,也需要修改内存数据库的底层。因此,现有内存数据库存储方式难以实现数据表空间的动态扩充;另外,由于采用固定的数据结构保存表记录,所以对于带有变长字段的数据库表的表空间浪费也比较严重。
发明内容
本发明实施例提供一种内存数据库系统及实现内存数据库的方法和装置,以降低内存数据库中数据存储与内存数据库的表结构之间的耦合度提高创建、管理数据库的灵活性。
一种内存数据库系统,包括:
通信接口,用于接收请求操作数据库的各种消息和输出操作结果;
创建装置,用于在共享内存中建立存储数据库的描述信息的第一存储区、存储用于定位表记录的索引信息的第二存储区和存储表记录的第三存储区,以及将数据库的描述信息保存到所述第一存储区,其中,所述第三存储区包括与表记录大小匹配的存储单元,每个存储单元存储一条数据库表记录,相同大小并且在物理空间上连续的存储单元构成一个物理块,一个物理块或多个相同的物理块关联成一个逻辑块;
写操作装置,用于在所述操作需要向数据库表中添加表记录时,查询所述描述信息以选择包含的存储单元大小与所述表记录的大小匹配的一个逻辑块,以及将表记录写入选择的逻辑块中空闲的存储单元内,并将表记录的位置信息写入到所述索引信息中;
查询操作装置,用于在所述操作需要从数据库表查询表记录时,查询第二存储区的索引信息和根据查询结果从第三存储区中相应的存储单元读取表记录,并选择满足查询条件的表记录;
释放操作装置,用于在所述操作需要从数据库表删除指定的表记录时,从第三存储区释放存储所述指定的表记录的存储单元,并从第二存储区中删除所述与指定的表记录相关的索引信息。
一种创建内存数据库的方法,包括步骤:
确定数据库表结构及各数据库表中表记录的大小;
在共享内存中建立存储数据库的描述信息的第一存储区、存储用于定位表记录的索引信息的第二存储区和存储表记录的第三存储区,其中,所述第二存 储区包括与一条索引信息大小匹配的存储单元,所述第三存储区包括与表记录大小匹配的存储单元,所述第三存储区的每个存储单元存储一条数据库表记录,相同大小并且在物理空间上连续的存储单元构成一个物理块,一个物理块或多个相同的物理块关联成一个逻辑块;
将数据库的描述信息保存到所述第一存储区,所述数据库的描述信息包括各数据库表的描述信息。
一种创建内存数据库的装置,包括:
确定单元,用于确定数据库表结构及各数据库表中表记录的大小;
创建单元,用于在共享内存中建立存储数据库的描述信息的第一存储区、存储用于定位表记录的索引信息的第二存储区和存储表记录的第三存储区,其中,所述第二存储区包括与一条索引信息大小匹配的存储单元,所述第三存储区包括与表记录大小匹配的存储单元,所述第三存储区的每个存储单元存储一条数据库表记录,相同大小并且在物理空间上连续的存储单元构成一个物理块,一个物理块或多个相同的物理块关联成一个逻辑块;
保存单元,用于将数据库的描述信息保存到所述第一存储区,所述数据库的描述信息包括各数据库表的描述信息,所述数据库表的描述信息包括各数据库表关联的所述逻辑块和各逻辑块中存储单元大小。
一种访问内存数据库系统的方法,包括步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710105890.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:智能式双电源自动切换装置
- 下一篇:木本花卉组培苗大批量移栽方法