导航地图多个更新区域的数据库文件访问管理方法及装置制造方法及图纸

技术编号:9569008 阅读:67 留言:0更新日期:2014-01-16 02:35
本发明专利技术提供一种导航地图多个更新区域的数据库文件访问管理方法及装置,该方法包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求ID;各个导航功能模块使用查询请求ID进行数据访问。

【技术实现步骤摘要】
导航地图多个更新区域的数据库文件访问管理方法及装置
本专利技术涉及导航地图多个更新区域的数据库文件访问管理方法及装置,尤其涉及在导航电子地图数据中存在多更新区域时的导航电子地图数据库访问管理方法及装置。
技术介绍
随着导航电子地图数据量越来越大以及用户对数据更新的及时性要求越来越高,新的导航电子地图存储规格增加了对数据进行增量更新的特性。例如2010年发布了一份电子地图数据,2011年发布的新数据仅提供一份增量更新的数据,增量更新数据中只包括了相对于2010年2011年的地图出现变化的那部分数据,这样就不需要提供2011年的全国的电子地图数据,这样提供给用户的数据就非常少,用户系统只需根据增量更新数据的内容在2010年的数据基础上做些修改就可以了,不需要更新全国地图数据,这样用户更新数据就比较快。为了满足增量更新及大容量数据的存储要求,全国电子地图被划分为若干个更新区域,每个更新区域包含该更新区域所有导航功能模块需要的数据,同时由于某些嵌入式操作系统对文件容量小于2GB的限制,造成了一份全国电子地图可能需要几十个文件存储。这就要求导航系统在地图数据被访问时要具有完善的机制对地图数据文件访问进行管理,既要保证数据访问过程效率高,又要求资源占用尽可能少,以满足在嵌入式系统资源有限的情况下流畅地运行所有导航应用。如图1所示,在现有的导航系统中,通常各个模块独立管理该模块需要访问的地图数据文件。从图1中可以看出现有系统中各个模块独立管理数据库对象,由于每个数据库对象都需要独立的缓冲区,因此造成了内存消耗较大。在Sqlite数据库系统中,如果不同导航功能模块使用同一个数据库文件,那么利用Sqlite数据库系统的共享缓冲区模式可以达到节约内存的目的。但对于具有多更新区域的地图的应用,由于数据库文件较多,如果每个导航功能模块都独立使用数据库访问对象,则需要消耗较多的内存。在嵌入式导航系统内存容量较少的情况下更是不能被接受。另外,导航功能模块从数据库中读取数据是通过数据的ID来进行检索的,每一类型的数据查询语句形式都是相同的,仅仅是数据的ID和某些条件的数值发生变化,而查询语句在使用时需要数据库系统进行编译,每次编译都需要耗费时间,利用Sqlite的参数化SQL可以避免这种情况,只需要编译一次,每次查询时只要绑定需要变化的数值就可以完成查询操作,极大地提高效率。但在具有多更新区域的地图的应用中,由于存在数据库调度的问题,因此会造成编译好的查询语句使用的文件被卸载的情况,如果无法及时通知查询语句使用方则会造成查询操作的失败,而要建立这种通知机制会极大增加系统的复杂性。
技术实现思路
为了解决上述现有技术中的问题,本专利技术提供一种导航地图多个更新区域的数据库文件访问管理方法,包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求ID;及各个导航功能模块使用查询请求ID进行数据访问。还提供一种导航地图多个更新区域的数据库文件访问管理装置,包括:注册单元,用于将各个导航功能模块使用的、用于查询数据库的查询请求进行注册;ID分配单元,用于为注册的查询请求分配查询请求ID,各个导航功能模块使用查询请求ID进行数据访问。本专利技术通过科学的调度策略实现了导航引擎仅使用一个数据库对象达到高效访问多更新区域地图数据库的要求,保证了在嵌入式设备内存资源受限情况下对导航数据的高效访问。附图说明图1表示现有的导航系统的结构示意图;图2表示根据本专利技术实施例的导航系统的结构示意图;图3表示根据本专利技术实施例的查询语句索引表的结构示意图;图4表示根据本专利技术实施例的数据库对象索引表的结构示意图;图5表示根据本专利技术实施例的数据库访问管理单元初始化的流程图;图6表示根据本专利技术实施例的向数据库访问管理单元进行注册的流程图;图7表示根据本专利技术实施例的查询语句注册管理策略的执行流程图;图8表示根据本专利技术实施例的查询语句注册管理策略的执行流程图;图9表示根据本专利技术实施例的查询语句注册管理策略的执行流程图。具体实施方式本专利技术提供的导航地图多个更新区域的数据库文件访问管理方法的核心思想是通过在导航系统中增加数据库访问管理单元来统一管理数据库对象,各导航功能模块使用到的查询语句需要在系统启动时向数据库访问管理单元注册,由数据库访问管理单元为注册的查询请求分配固定的查询请求ID,导航功能模块使用查询请求ID进行数据访问。通过这种方式,各导航功能模块不需要考虑数据库文件名称、数据库文件加载等细节,只需要通过更新区域ID和查询请求ID就可以对数据进行访问。根据本专利技术的一个方面,提供一种导航地图多个更新区域的数据库文件访问管理方法,该方法包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求ID;及各个导航功能模块使用查询请求ID进行数据访问。根据本专利技术的另一方面,提供一种导航地图多个更新区域的数据库文件访问管理装置,包括:注册单元,用于将各个导航功能模块使用的、用于查询数据库的查询请求进行注册;ID分配单元,用于为注册的查询请求分配查询请求ID,各个导航功能模块使用查询请求ID进行数据访问,如图2所示。数据库访问管理单元启动时要构建三个索引表,分别是数据库文件信息表、查询请求索引表、数据库对象索引表,用于管理数据库文件、查询请求、更新区域、导航功能模块的索引信息以及相互间的关联。下面分别对三个索引表进行说明。(1)数据库文件信息表,该表用于对数据库文件访问的统一管理,每个数据库文件信息记录的信息包括:a、加载状态标识,标识数据库文件是否被加载。b、访问计数,当数据库被访问时,计数加1;数据库访问结束时则减1;用于标识当前访问数据库的查询操作数量,当该计数大于0时,该数据库文件不允许被卸载。c、互斥量,用于线程同步。d、数据库别名,当一个数据库对象加载多个数据库文件时,每个数据库需要别名,用于区分不同数据库文件。e、数据库文件名称,数据库文件在存储设备上的保护绝对路径的文件名称。f、文件最后访问时间(2)查询语句索引表,各个导航功能模块注册的查询语句由该表管理,其结构见图3。(3)数据库对象索引表,该表用于管理更新区域ID→功能模块ID→数据库文件/查询请求间的三级索引关系,见图4。由于更新区域ID/导航功能模块ID的定义是与更新区域和功能模块数量相关的,即使使用的ID的编码大于更新区域/导航功能模块的数量,超出的范围也是很有限的,因此数据库访问管理单元建立的数据索引表采用数组来存储信息,数组第n个位置存储的是更新区域/导航功能模块ID=n的数据,这样检索数据过程中通过ID值可以直接访问相应的数据,避免了查找过程效率的损失。数据库访问管理单元初始化流程见图5。在多更新区域地图导航应用中,当数据库文件数量超过31个时,一个数据库对象无法同时加载全部的数据库文件,这时需要有一个合理的调度策略来确定哪个数据库文件被加载、哪个数据库文件被卸载,以便于保证数据访问的效率。本专利技术中数据库文件调度的策略定义如下:(1)数据库访问管理单元不主动加载任何数据库文件,只有当导航功能模块请求使用某个注册的查询请求时,才将该查询涉及的本文档来自技高网
...
导航地图多个更新区域的数据库文件访问管理方法及装置

【技术保护点】
一种导航地图多个更新区域的数据库文件访问管理方法,包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求ID;及各个导航功能模块使用查询请求ID进行数据访问。

【技术特征摘要】
1.一种导航地图多个更新区域的数据库文件访问管理方法,包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求ID;及各个导航功能模块使用查询请求ID进行数据访问;其中,注册步骤是在导航系统启动时进行的。2.根据权利要求1所述的导航地图多个更新区域的数据库文件访问管理方法,其中,数据库访问管理单元在导航系统启动时建立数据库文件信息索引表、查询请求索引表及数据库对象索引表,以管理数据库文件、查询请求、电子地图更新区域、导航功能模块的索引信息。3.根据权利要求2所述的导航地图多个更新区域的数据库文件访问管理方法,其中,数据库文件信息索引表、查询请求索引表及数据库对象索引表互相关联。4.根据权利要求2或3所述的导航地图多个更新区域的数据库文件访问管理方法,其中,查询请求索引表对所述查询请求进行管理...

【专利技术属性】
技术研发人员:刘泽林刘志毅
申请(专利权)人:北京四维图新科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1