图形数据库非联机事务中查询数据的控制方法

文档序号:6655035阅读:225来源:国知局
专利名称:图形数据库非联机事务中查询数据的控制方法
技术领域
本发明涉及一种图形数据库非联机事务中查询数据的控制方法。
背景技术
通常在数据库系统中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。在联机事务处理中,事务是被立即执行的。 在单一用户、单一数据库环境下执行事务是简单的,这是因为没有冲突问题或对数据库间同步的需求。在一个分布式环境下,写操作经常并行地在多个数据库服务器上发生。这样的并发事务处理需要一个“卷回”机制,以保证在一次写操作中系统失效的情况下,仍保证数据库的完整性。事务要么一起确认,要么放弃。如果一个或多个与事务有关的系统响应不一致,这意味着系统或通信可能出现了故障,因而就会放弃一个事务。可以看出,当多个用户试图同时改变数据的同一块时,就出现了冲突问题。

发明内容
为了解决上述问题,本发明提出了一种图形数据库非联机事务中查询数据的控制方法,它可在图形数据库未开启事务时查询数据。本发明采用的技术方案如下一种图形数据库非联机事务中查询数据的控制方法,其特征在于非联机事务处理自上而下分为三层最上层为暴露给外部调用程序的API ;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用 Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;将图形数据库中的每一个节点Node的定义信息保存在名称为graphiC_db_n0de_ def的数据集DatMet中,该DatMet的数据结构如下
权利要求
1. 一种图形数据库非联机事务中查询数据的控制方法,其特征在于 非联机事务处理自上而下分为三层 最上层为暴露给外部调用程序的API ;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java 语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;将图形数据库中的每一个节点Node的定义信息保存在名称为graphiC_db_n0de_def 的数据集DatMet中,该DatMet的数据结构如下
2.如权利要求1所述的图形数据库非联机事务中查询数据的控制方法,其特征在于 在所述步骤2、中,检查目标节点是否存在的方法是查询名称为graphiC_db_n0de_def的Datakt,查找该DataSet的name列中的值与API中传入的node_name值相等的数据记录,如果找到相应记录,则说明目标节点存在。
3.如权利要求2所述的图形数据库非联机事务中查询数据的控制方法,其特征在于 在所述步骤3)中,检查返回节点数据结果集的路径表达式是否正确的详细步骤如下 解析路径表达式,以API中传入的nodejame为起始点,查询名称为graphic_db_relation_def的DataSet,根据关系表达式的方向不同,查找source_node列或target_ node列,与name列相匹配的数据记录,如果记录存在,说明表达式正确。
4.如权利要求3所述的图形数据库非联机事务中查询数据的控制方法,其特征在于 在所述步骤4)中,检查过滤条件是否合法的详细步骤如下如果过滤条件中包含路径表达式,则进行路径表达式合法性的检查,检查过程与步骤 3)相同,然后获取过滤条件中的列属性名称,查询名为graphiC_db_n0de_def的DatMet, 查看路径表达式中的最后一个节点是否包含该列,如果包含,则说明过滤条件合法,否则不合法;如果过滤条件中不包含路径表达式,则直接获取过滤条件中的列属性名称,然后查询名为graphic_db_node_def的DataSet,查看API中的传入的node_name标识的节点是否包含该列,如果包含,则说明过滤条件合法,否则不合法。
5.如权利要求4所述的图形数据库非联机事务中查询数据的控制方法,其特征在于在所述步骤6)中,基于路径表达式的条件查询的详细步骤如下a.反转路径表达式,以过滤条件中路径表达式的终点为起点,以其起点为终点,同时将关系的方向倒转;b.查询反转后的路径表达式的起始节点,按过滤条件获取匹配的数据记录,如果结果集中有的值为1的数据,说明该条记录为脏数据,将其从结果集中去除;c.以上一步查询的结果集为起点,依照反转后的路径表达式,通过查询名称为 graphic_db_relation_record_def的Datakt,递归获取与之建立关系的记录,如果记录的drity列的值为1,则说明该条记录为脏数据,忽略该条记录;d.反转路径表达式终点节点的关联记录为当前过滤条件的查询结果。
6.如权利要求4所述的图形数据库非联机事务中查询数据的控制方法,其特征在于在所述步骤7)中,简单查询的详细步骤如下查询API中传入的n0de_name参数指定的节点,按过滤条件对其中的记录进行匹配,与过滤条件相符合,且列的值为-1的记录是查询的结果集。
全文摘要
本发明涉及图形数据库非联机事务中查询数据的控制方法,包括步骤1)客户程序调用API;2)检查欲查询数据的目标节点是否存在,存在则继续;3)检查返回节点数据结果集的路径表达式是否正确,正确则继续;4)检查过滤条件是否合法,合法则继续;5)检查过滤条件中是否包含路径表达式,包含则进行基于路径表达式的查询步骤6),否则进行简单查询步骤7);6)执行基于路径表达式的条件查询;7)进行简单查询;8)将查询后的结果集返回给API调用者,查询结束。与联机事务中的查询操作相比较,非联机事务的查询会避免大量的数据锁定检测,从而能够获取更高的查询性能。非联机事务的查询操作不受联机事务锁定、提交、回滚的影响。
文档编号G06F17/30GK102193979SQ20111007294
公开日2011年9月21日 申请日期2011年3月25日 优先权日2011年3月25日
发明者于洪方, 井卫军, 刘健, 蒋建平, 陈升, 陈晞 申请人:北京世纪互联工程技术服务有限公司, 北京云快线软件服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1