[发明专利]数据库系统的行列混合存储方法无效
| 申请号: | 201310296167.2 | 申请日: | 2013-07-15 |
| 公开(公告)号: | CN103440245A | 公开(公告)日: | 2013-12-11 |
| 发明(设计)人: | 王卓;肖玉泽;陈群;刘海龙;白松;孙林超;李战怀 | 申请(专利权)人: | 西北工业大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 西北工业大学专利中心 61204 | 代理人: | 王鲜凯 |
| 地址: | 710072 *** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 系统 行列 混合 存储 方法 | ||
1.一种数据库系统的行列混合存储方法,其特征在于包括以下步骤:
步骤一、建立行列混合的存储模型的步骤;
(1)定义一个访问的参数列表,负责行式文件和列式文件的访问方式;
(2)然后接入存储引擎分装层,从而向上隐藏存储细节,提供一致的数据访问接口;查询引擎访问存储引擎时提供四个访问参数<DataFileID,StoreType,AttList,ConditionList>,存储引擎封装层根据参数StoreType选择行存储子引擎或列存储子引擎完成数据访问;行存储引擎根据参数AttList和ConditionList对数据进行选择和投影;列存储引擎则进行选择和元组物化;
(3)存储引擎与查询引擎间的数据交互以“元组”的形式进行,在存储引擎以上的部分,表都是以行的方式存储的,查询分析和执行过程复用行式数据库的成熟逻辑;
(4)对于数据插入,查询引擎将数据元组连同访问参数传给存储引擎,如果StoreType值为ROW,则由行存储子引擎将数据元组作为整体写入表文件;如果StoreType值为COLUMN,则在封装层拆分,然后由列存储子引擎将数据写入各自的文件;
步骤二、构建文件组织方法;
数据库中的数据在逻辑上表现为表,物理上以文件的形式存储于磁盘;
(1)对于行表,同一表的数据存储在一个文件中,文件名为表名通过映射函数生成的DataFileID;文件的内部结构可以完全继承相关行数据库的方法;
(2)对于列表,表的每个属性列独立地组织成一个文件,每个表对应一组文件;文件名的格式为<DataFileID-AttID>,其中DataFileID由表名经过映射得到,AttID由属性名映射得到;
(3)DataFileID命名的文件,用以存储元组的公共描述信息;
(4)在列表文件内部,首先在文件头部存储数据类型、数据长度等描述信息,之后连续的存储有效数据;列表在数据读出后需要进行元组物化操作;
步骤三、行列混合存储查询流程;
(1)根据创建表时的存储模型,在查询语句的解析阶段,获取表的存储模式;
(2)结合查询分析的相关信息生成<DataFileID,StoreType,AttList,ConditionList>四个访问参数;
(3)执行引擎在访问数据时将访问参数传给存储引擎,存储引擎根据参数选择适当的方法读取数据并作选择、投影处理后返回数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310296167.2/1.html,转载请声明来源钻瓜专利网。





