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

文档序号:6486414阅读:127来源:国知局
导航地图多个更新区域的数据库文件访问管理方法及装置制造方法
【专利摘要】本发明提供一种导航地图多个更新区域的数据库文件访问管理方法及装置,该方法包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求ID;各个导航功能模块使用查询请求ID进行数据访问。
【专利说明】导航地图多个更新区域的数据库文件访问管理方法及装置
【技术领域】
[0001]本发明涉及导航地图多个更新区域的数据库文件访问管理方法及装置,尤其涉及 在导航电子地图数据中存在多更新区域时的导航电子地图数据库访问管理方法及装置。
【背景技术】
[0002]随着导航电子地图数据量越来越大以及用户对数据更新的及时性要求越来越高, 新的导航电子地图存储规格增加了对数据进行增量更新的特性。例如2010年发布了一份 电子地图数据,2011年发布的新数据仅提供一份增量更新的数据,增量更新数据中只包括 了相对于2010年2011年的地图出现变化的那部分数据,这样就不需要提供2011年的全国 的电子地图数据,这样提供给用户的数据就非常少,用户系统只需根据增量更新数据的内 容在2010年的数据基础上做些修改就可以了,不需要更新全国地图数据,这样用户更新数 据就比较快。
[0003]为了满足增量更新及大容量数据的存储要求,全国电子地图被划分为若干个更 新区域,每个更新区域包含该更新区域所有导航功能模块需要的数据,同时由于某些嵌入 式操作系统对文件容量小于2GB的限制,造成了一份全国电子地图可能需要几十个文件存 储。这就要求导航系统在地图数据被访问时要具有完善的机制对地图数据文件访问进行管 理,既要保证数据访问过程效率高,又要求资源占用尽可能少,以满足在嵌入式系统资源有 限的情况下流畅地运行所有导航应用。
[0004]如图1所示,在现有的导航系统中,通常各个模块独立管理该模块需要访问的地 图数据文件。从图1中可以看出现有系统中各个模块独立管理数据库对象,由于每个数据 库对象都需要独立的缓冲区,因此造成了内存消耗较大。在Sqlite数据库系统中,如果不 同导航功能模块使用同一个数据库文件,那么利用Sqlite数据库系统的共享缓冲区模式 可以达到节约内存的目的。但对于具有多更新区域的地图的应用,由于数据库文件较多,如 果每个导航功能模块都独立使用数据库访问对象,则需要消耗较多的内存。在嵌入式导航 系统内存容量较少的情况下更是不能被接受。
[0005]另外,导航功能模块从数据库中读取数据是通过数据的ID来进行检索的,每一类 型的数据查询语句形式都是相同的,仅仅是数据的ID和某些条件的数值发生变化,而查询 语句在使用时需要数据库系统进行编译,每次编译都需要耗费时间,利用Sqlite的参数化 SQL可以避免这种情况,只需要编译一次,每次查询时只要绑定需要变化的数值就可以完成 查询操作,极大地提高效率。但在具有多更新区域的地图的应用中,由于存在数据库调度的 问题,因此会造成编译好的查询语句使用的文件被卸载的情况,如果无法及时通知查询语 句使用方则会造成查询操作的失败,而要建立这种通知机制会极大增加系统的复杂性。

【发明内容】

[0006]为了解决上述现有技术中的问题,本发明提供一种导航地图多个更新区域的数据 库文件访问管理方法,包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求 ID ;及各个导航功能模块使用查询请求ID进行数据访问。
[0007]还提供一种导航地图多个更新区域的数据库文件访问管理装置,包括:注册单元, 用于将各个导航功能模块使用的、用于查询数据库的查询请求进行注册;ID分配单元,用于为注册的查询请求分配查询请求ID,各个导航功能模块使用查询请求ID进行数据访问。
[0008]本发明通过科学的调度策略实现了导航引擎仅使用一个数据库对象达到高效访问多更新区域地图数据库的要求,保证了在嵌入式设备内存资源受限情况下对导航数据的闻效访问。
【专利附图】

【附图说明】[0009]图1表示现有的导航系统的结构示意图;[0010]图2表示根据本发明实施例的导航系统的结构示意图;[0011]图3表示根据本发明实施例的查询语句索引表的结构示意图;[0012]图4表示根据本发明实施例的数据库对象索引表的结构示意图;[0013]图5表示根据本发明实施例的数据库访问管理单元初始化的流程图;[0014]图6表示根据本发明实施例的向数据库访问管理单元进行注册的流程图 [0015]图7表示根据本发明实施例的查询语句注册管理策略的执行流程图;[0016]图8表示根据本发明实施例的查询语句注册管理策略的执行流程图;[0017]图9表示根据本发明实施例的查询语句注册管理策略的执行流程图。【具体实施方式】
[0018]本发明提供的导航地图多个更新区域的数据库文件访问管理方法的核心思想是通过在导航系统中增加数据库访问管理单元来统一管理数据库对象,各导航功能模块使用到的查询语句需要在系统启动时向数据库访问管理单元注册,由数据库访问管理单元为注册的查询请求分配固定的查询请求ID,导航功能模块使用查询请求ID进行数据访问。通过这种方式,各导航功能模块不需要考虑数据库文件名称、数据库文件加载等细节,只需要通过更新区域ID和查询请求ID就可以对数据进行访问。
[0019]根据本发明的一个方面,提供一种导航地图多个更新区域的数据库文件访问管理方法,该方法包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进行注册;数据库访问管理单元为注册的查询请求分配查询请求ID ;及各个导航功能模块使用查询请求ID进行数据访问。
[0020]根据本发明的另一方面,提供一种导航地图多个更新区域的数据库文件访问管理装置,包括:注册单元,用于将各个导航功能模块使用的、用于查询数据库的查询请求进行注册;ID分配单元,用于为注册的查询请求分配查询请求ID,各个导航功能模块使用查询请求ID进行数据访问,如图2所示。
[0021]数据库访问管理单元启动时要构建三个索引表,分别是数据库文件信息表、查询请求索引表、数据库对象索引表,用于管理数据库文件、查询请求、更新区域、导航功能模块的索引信息以及相互间的关联。下面分别对三个索引表进行说明。
[0022]( I)数据库文件信息表,该表用于对数据库文件访问的统一管理,每个数据库文件信息记录的信息包括:
[0023]a、加载状态标识,标识数据库文件是否被加载。
[0024]b、访问计数,当数据库被访问时,计数加I ;数据库访问结束时则减I ;用于标识当 前访问数据库的查询操作数量,当该计数大于0时,该数据库文件不允许被卸载。
[0025]C、互斥量,用于线程同步。
[0026]d、数据库别名,当一个数据库对象加载多个数据库文件时,每个数据库需要别名, 用于区分不同数据库文件。
[0027]e、数据库文件名称,数据库文件在存储设备上的保护绝对路径的文件名称。
[0028]f、文件最后访问时间
[0029](2)查询语句索引表,各个导航功能模块注册的查询语句由该表管理,其结构见图 3。
[0030](3)数据库对象索引表,该表用于管理更新区域ID —功能模块ID —数据库文件/ 查询请求间的三级索引关系,见图4。
[0031]由于更新区域ID/导航功能模块ID的定义是与更新区域和功能模块数量相关的, 即使使用的ID的编码大于更新区域/导航功能模块的数量,超出的范围也是很有限的,因 此数据库访问管理单元建立的数据索引表采用数组来存储信息,数组第n个位置存储的是 更新区域/导航功能模块ID=n的数据,这样检索数据过程中通过ID值可以直接访问相应 的数据,避免了查找过程效率的损失。
[0032]数据库访问管理单元初始化流程见图5。
[0033]在多更新区域地图导航应用中,当数据库文件数量超过31个时,一个数据库对象 无法同时加载全部的数据库文件,这时需要有一个合理的调度策略来确定哪个数据库文件 被加载、哪个数据库文件被卸载,以便于保证数据访问的效率。
[0034]本发明中数据库文件调度的策略定义如下:
[0035](I)数据库访问管理单元不主动加载任何数据库文件,只有当导航功能模块请求 使用某个注册的查询请求时,才将该查询涉及的数据库文件加载到数据库对象中。
[0036](2)数据库文件加载成功后,设置数据库文件信息中的“加载状态标识”为已加载 状态。
[0037](3)已加载的数据库文件保持加载状态,直到符合策略(4)、(5)、(6)的情况才允 许卸载
[0038](4)在数据库对象加载的数据库文件达到31个的情况下,如果需要访问未加载的 数据库文件时,将符合条件(5)、(6)的数据库文件卸载。
[0039](5)只允许卸载数据库文件信息中访问计数等于0的数据库文件
[0040](6)在符合条件(5)的情况下优先卸载最后访问时间距现在最久的数据库文件
[0041](7)如果出现符合条件(4)同时不符合条件(5)、(6)的情况,则需要向请求方返回 失败息。
[0042](8)数据库文件卸载成功后,设置数据库文件信息中的“加载状态标识”为未加载 状态。
[0043](9)卸载数据库文件时,首先要从数据库对象中将已编译的访问被卸载数据库文 件的查询命令清除,同时将数据库对象索引表中的查询命令记录清除。[0044]地图数据查询使用的查询语句的可以简单描述成:从哪个表,选择什么数据,条件是什么。而多更新区域地图数据库文件调度过程中影响到的是“从哪个表”这一部分,当一个数据库对象加载了多个数据库文件情况下,需要从某个表中读取数据时,需要在表名称前面限定其属于哪个数据库文件。
[0045]本发明中的查询语句注册管理机制通过如下策略避免了数据库调度对导航功能模块查询数据操作的影响:
[0046]( I)导航功能模块将所有需要使用的查询语句向数据库访问管理单元注册,数据库访问管理单元将查询语句插入到查询语句索引表中该功能模块对于的查询请求列表中, 注册流程参考图6。
[0047](2)注册时将完整的SQL语句分为三部分,选择部分、来源部分、条件部分,分别对应选择什么数据、从哪个表、条件是什么三部分,其中条件部分可以为空;来源部分是使用到的数据库表的名称列表,当使用多个表时,系统默认表的别名按a、b、c…来命名。
[0048](3)注册后数据库访问管理单元会为查询语句分配一个固定的查询语句ID,该ID 同时可以用于识别查询语句访问数据的导航功能模块索引信息以及查询语句的索引信息, 以便于使用时快速查找。
[0049](4)导航功能模块需要查询数据时,需要向数据库访问管理模块发出连接请求,将更新区域ID和查询语句ID传递给数据库访问管理单元。如果两个ID确定的查询语句已经在数据库对象中编译成功,则数据库访问管理单元将数据库对象返回给导航功能模块用于查询操作;否则执行策略(5)、(6),成功后将数据库对象返回给导航功能模块。
[0050](5)如果查询语句还未成功编译,数据库访问管理单元根据查询语句ID从查询语句索引表中获取到查询语句的信息,将查询语句三个部分拼成完整的SQL语句.[0051](6)并在数据库对象中编译查询语句。
[0052](7)在策略(5)拼接SQL语句过程中,首先需要根据更新区域ID以及查询语句ID 中的模块信息从数据库对象索引表中找到查询使用到的数据库文件信息,如果该数据库文件已经加载到数据库对象,则从数据库文件信息表中取出别名作为查询语句中表的前缀。
[0053](8)执行策略(7)成功后,将数据库文件信息中的访问计数加I。
[0054](9)如果数据库文件 未被加载,根据数据库调度策略加载需要使用的数据库文件, 如果成功则执行策略(7)、(8),否则返回失败信息。
[0055](10)查询操作执行完毕必须向数据库访问管理单元发出查询结束通知。
[0056](11)查询操作结束后,将数据库文件信息中的访问计数减I。
[0057]图7、8 描述了策略(4)、(5)、(6)、(7)、(8)、(9)的执行流程。
[0058]图9描述了策略(10)、(11)的执行流程。
[0059]本发明通过独特的查询语句注册管理机制,隐藏了多更新区域下数据库名称以及数据库文件加载/卸载对查询语句的影响,简化了导航功能模块数据访问的流程,降低了各导航功能模块访问多更新区域数据的复杂度。同时充分利用Sqlite提供的参数化的 SQL,解决了数据访问过程中相同查询语句多次重复编译的效率问题。
[0060]本发明利用Sqlite数据库系统可以同时打开31个数据库文件的特性,通过科学的调度策略来管理数据库文件的加载/卸载操作,在系统中只申请一个数据库访问对象的情况下,保证各个功能模块对数据库高效、流畅地访问数据,达到节约系统内存的要求。[0061]本发明利用发明的查询语句注册管理机制简化数据访问操作,只需要通过更新区 域ID,查询语句ID两个参数就可以对数据库进行访问,隐藏数据库文件名称、数据库加载/ 卸载等细节。
【权利要求】
1.一种导航地图多个更新区域的数据库文件访问管理方法,包括步骤:将各个导航功能模块使用的、用于查询数据库的查询请求在数据库访问管理单元中进 行注册;数据库访问管理单元为注册的查询请求分配查询请求ID '及 各个导航功能模块使用查询请求ID进行数据访问。
2.根据权利要求1所述的导航地图多个更新区域的数据库文件访问管理方法,其中, 注册步骤是在导航系统启动时进行的。
3.根据权利要求2所述的导航地图多个更新区域的数据库文件访问管理方法,其中, 数据库访问管理单元在导航系统启动时建立数据库文件信息索弓丨表、查询请求索引表及数据库对象索引表,以管理数据库文件、查询请求、电子地图更新区域、导航功能模块的 索引信息。
4.根据权利要求3所述的导航地图多个更新区域的数据库文件访问管理方法,其中, 数据库文件信息索引表、查询请求索引表及数据库对象索引表互相关联。
5.根据权利要求3或4所述的导航地图多个更新区域的数据库文件访问管理方法,其中,查询请求索引表对所述查询请求进行管理。
6.一种导航地图多个更新区域的数据库文件访问管理装置,包括:注册单元,用于将各个导航功能模块使用的、用于查询数据库的查询请求进行注册;ID分配单元,用于为注册的查询请求分配查询请求ID,各个导航功能模块使用查询请 求ID进行数据访问。
7.根据权利要求6所述的导航地图多个更新区域的数据库文件访问管理装置,其中, 所述注册单元在导航系统启动时进行注册。
8.根据权利要求7所述的导航地图多个更新区域的数据库文件访问管理装置,其中, 还包括索引表创建单元,用于在导航系统启动时建立数据库文件信息索引表、查询请求索 引表及数据库对象索引表,以管理数据库文件、查询请求、电子地图更新区域、导航功能模 块的索引信息。
9.根据权利要求8所述的导航地图多个更新区域的数据库文件访问管理装置,其中, 数据库文件信息索引表、查询请求索引表及数据库对象索引表互相关联。
10.根据权利要求8或9所述的导航地图多个更新区域的数据库文件访问管理装置,其 中,查询请求索引表对所述查询请求进行管理。
【文档编号】G06F17/30GK103514185SQ201210210037
【公开日】2014年1月15日 申请日期:2012年6月20日 优先权日:2012年6月20日
【发明者】刘泽林, 刘志毅 申请人:北京四维图新科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1