[发明专利]一种空间数据引擎及应用其管理空间数据的方法有效
| 申请号: | 200910085804.5 | 申请日: | 2009-06-01 |
| 公开(公告)号: | CN101639848A | 公开(公告)日: | 2010-02-03 |
| 发明(设计)人: | 张韵;曹晓航 | 申请(专利权)人: | 北京四维图新科技股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京银龙知识产权代理有限公司 | 代理人: | 许 静 |
| 地址: | 100083北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 空间 数据 引擎 应用 管理 方法 | ||
技术领域
本发明涉及地理信息技术领域,特别是涉及一种空间数据引擎及应用其管理空间数据的方法。
背景技术
空间数据是用于表示空间物体的位置、形状、大小和分布特征等方面信息的数据,适用于描述二维、三维和多维分布的关于区域的现象。空间数据的特点是不仅包括物体本身的空间位置及状态信息,还包括表示物体的空间关系的信息。空间数据引擎提供存储、访问及检索空间数据的功能,是用户应用系统充分利用空间数据的关键。
在空间数据的生产中,需要一种适合数据编辑,具有恢复能力的空间数据存储载体。现有技术中,针对空间数据的访问存储问题,有以下两种解决方法:
(1)全内存访问方法:数据以文件方式存储,使用时将数据全部载入内存,访问在内存中完成;
(2)数据库访问方法:将数据存入数据库中,数据访问交给数据库引擎来完成,通过数据库,系统具备了海量数据和事务处理的能力。
而在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
上述方法(1)虽然读写操作简单、高效,但内存占用大;
上述方法(2)的数据访问逻辑复杂、效率低下,许多功能难以定制。
在空间数据生产中,数据一般按区域存储,数据规模相对内存偏大,生产作业时数据更新频繁;而且,由于空间数据绘制和数据作业批处理的要求,对数据访问效率及内存限制要求高,从而,需要提供一种适应空间数据生产特点的、效率高、且实现简单的空间数据引擎和空间数据存储访问方法。
发明内容
为了解决上述问题,本发明的目的是提供一种基于内存映射文件的空间数据引擎及应用其管理空间数据的方法,该空间数据引擎及方法具有很高的数据读写性能,能够适应空间数据生产的特点,且效率高、实现简单。
为了实现上述目的,本发明提供了一种空间数据引擎装置,包括文件存储管理模块、数据缓冲管理模块、日志管理模块和数据访问接口模块,其中:
文件存储管理模块,通过内存映射文件来完成对物理文件中数据的加载或将数据写入物理文件中、分配与所述物理文件相对应的磁盘空间、分配与所述物理文件相对应的内存映射文件的映射对象、及管理所述物理文件的空闲块列表,所述物理文件包括数据文件和日志文件,所述物理文件的逻辑组织单元包括:数据页、数据组块、数据块、数据段、数据区和数据对象;所述数据组块由多个连续的数据页组成;所述数据块由多个数据页组成,所述数据块的块头记录包含:数据块编号、数据段编号、数据对象编号、事务编号;所述数据段由定长数据块或定变长数据块组成,定长数据块中以行为单位存储了定长类型的数据和固定长度的变长数据描述信息,包括在变长块中的位置及字节大小,变长数据块中记录了变长的数据信息;所述数据区是数据段的集合,分为用户数据区和索引区,所述用户数据区记录了用户存储的数据,所述索引区记录用于定位所述用户数据区中数据段的信息;所述数据对象,由一对数据区和索引区构成;
数据缓冲管理模块,包括多个缓存块,用于在对所述物理文件中的数据进行加载或将数据写入物理文件时,将欲加载或欲写入的数据以数据页为单位加载到所述缓存块中;
日志管理模块,用于创建及管理与数据文件相对应的日志文件,在所述日志文件中记录所述对应数据文件中数据的变更;
数据访问接口模块,用于提供用以访问所述物理文件中数据的数据集、表及游标;所述数据集与所述物理文件相对应;每个数据集存储了多张表,表中的数据使用游标来访问,所述游标提供了对表中行的访问方法,游标中记录了它所指向行的信息。
另一方面,提供了一种利用本发明实施例的空间数据引擎装置管理空间数据的方法,其中,所述空间数据引擎中、在数据对象的索引区中记录用户数据区数据段编号到该数据段中数据块地址的映射对SIDX,所述空间数据引擎中、定长数据块中所有行的字节数目相同,所述方法包括:
读取数据文件中空间数据的步骤,所述读取步骤具体包括:
步骤a,根据游标指向的、当前欲读取的数据集中数据行的行号,确定所述数据行对应的数据段的编号;
步骤b,根据所述数据段的编号,从当前数据对象的索引区中获得所述数据段中数据块的地址信息;
步骤c,根据所述数据块的地址信息,将所述数据段加载到数据缓冲管理模块的缓存块中;
步骤d,从所述数据缓冲管理模块的缓存块中读取所述数据段中的数据;
其中,在开始一个新事务时,将游标当前的SIDX和行序号压入事务栈中,复制一个新的SIDX作为游标的当前SIDX,并递增事务编号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京四维图新科技股份有限公司,未经北京四维图新科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910085804.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





