• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 17
    • 下载费用:30 金币  

    代收重庆时时彩官网: 图形数据库非联机事务中删除数据的控制方法.pdf

    关 键 词:
    图形 数据库 联机 事务 删除 数据 控制 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201110072939.5

    申请日:

    2011.03.25

    公开号:

    CN102193978A

    公开日:

    2011.09.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||专利申请权的转移IPC(主分类):G06F 17/30变更事项:申请人变更前权利人:北京世纪互联工程技术服务有限公司变更后权利人:北京世纪互联宽带数据中心有限公司变更事项:地址变更前权利人:100015 北京市朝阳区酒仙桥东路1号院5号楼3层变更后权利人:100015 北京市朝阳区酒仙桥东路1号院5号楼3层变更事项:申请人变更前权利人:北京云快线软件服务有限公司登记生效日:20121022|||实质审查的生效IPC(主分类):G06F 17/30申请日:20110325|||公开
    IPC分类号: G06F17/30; G06F9/46 主分类号: G06F17/30
    申请人: 北京世纪互联工程技术服务有限公司; 北京云快线软件服务有限公司
    发明人: 陈升; 于洪方; 井卫军; 蒋建平; 陈晞; 刘健
    地址: 100015 北京市朝阳区酒仙桥东路1号院5号楼3层
    优先权:
    专利代理机构: 北京北新智诚知识产权代理有限公司 11100 代理人: 张卫华
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201110072939.5

    授权公告号:

    102193978B|||||||||

    法律状态公告日:

    2012.12.05|||2012.11.21|||2011.11.23|||2011.09.21

    法律状态类型:

    授权|||专利申请权、专利权的转移|||实质审查的生效|||公开

    摘要

    本发明涉及图形数据库非联机事务中删除数据的控制方法,包括步骤:1)客户程序调用API,将参数数据传给图形数据库;2)进入同步区;3)确定待删除数据;4)检查待删除数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;5)检查与待删除数据相关的Relation是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;6)从DataSet中物理删除在步骤3)中确定的待删除数据;7)退出同步区,程序结束;8)等待一段时间;9)判断操作是否超时,若超时则退出执行逻辑,否则转步骤2)再次进入同步区。本发明的优点是作为联机事务中删除数据的有效补充,在删除数据的应用场景中,如无需开启联机事务,则可调用非联机事务的API直接删除数据。

    权利要求书

    1.一种图形数据库非联机事务中删除数据的控制方法,其特征在于:非联机事务处理自上而下分为三层:最上层为暴露给外部调用程序的API;中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;用Relation描述图形数据库中的节点与节点之间的关系,每一个Relation均有一个全局唯一的名称、一个源Node、一个目标Node,将每一个Relation的定义信息保存在名称为graphic_db_relation_def的DataSet中,该DataSet的数据结构如下:??列名称
    ??数据类型
    ??说明
    ??relation_id
    ??Number
    ??全局唯一的ID
    ??name
    ??String
    ??用于保存Relation的名称
    ??source_node
    ??Number
    ??源Node的ID
    ??target_node
    ??Number
    ??目标Node的ID
    两个通过Relation连接的Node中的数据可以建立连接,将所有数据的连接信息保存在名称为graphic_db_relation_record_def的DataSet中,该DataSet的数据结构如下:执行以下步骤:1)客户程序调用API,将参数数据传给图形数据库;2)进入同步区;3)确定待删除数据;4)检查待删除数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;5)检查与待删除数据相关的Relation是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;6)从DataSet中物理删除在步骤3)中确定的待删除数据;7)退出同步区,程序结束;8)等待一段时间;9)判断操作是否超时,若超时则退出执行逻辑,否则转步骤2)再次进入同步区。
    2.如权利要求1所述的图形数据库非联机事务中删除数据的控制方法,其特征在于:在所述步骤1)中,API传入如下参数:node_name,指定将要删除哪个Node中的数据;filter,过滤条件。3.如权利要求2所述的图形数据库非联机事务中删除数据的控制方法,其特征在于:在所述步骤3)中,确定待删除数据的详细步骤如下:通过客户程序调用API时传入的filter参数作为过滤条件,对与API参数node_name同名的DataSet中的数据进行过滤,所有与过滤条件相匹配的数据均为待删除的数据记录。4.如权利要求2所述的图形数据库非联机事务中删除数据的控制方法,其特征在于:在所述步骤4)中,检查待删除数据是否被事务锁定的详细步骤如下:检查每一条待删除数据,如果有任何一条记录列_dirty的值为-1,且列_tx_no的值既不为空也不等于当前事务编号,则意味着在待删除数据中存在被其他事务锁定的情况。5.如权利要求2所述的图形数据库非联机事务中删除数据的控制方法,其特征在于:在所述步骤5)中,检查与待删除数据相关的Relation是否被事务锁定的详细步骤如下:查询名称为graphic_db_relation_record_def的DataSet,过滤获取所有source_record或target_record列的值与待删除数据的RID相等的记录,依次检查这些记录的_tx_no字段,如果有任何一条记录_tx_no列的值不为空,则意味着相关数据的Relation存在被其他事务锁定的情况。

    说明书

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

    技术领域

    本发明涉及一种图形数据库非联机事务中删除数据的控制方法。

    背景技术

    通常在数据库系统中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。在联机事务处理中,事务是被立即执行的。在单一用户、单一数据库环境下执行事务是简单的,这是因为没有冲突问题或对数据库间同步的需求。在一个分布式环境下,写操作经常并行地在多个数据库服务器上发生。这样的并发事务处理需要一个“卷回”机制,以保证在一次写操作中系统失效的情况下,仍保证数据库的完整性。事务要么一起确认,要么放弃。如果一个或多个与事务有关的系统响应不一致,这意味着系统或通信可能出现了故障,因而就会放弃一个事务??梢钥闯?,当多个用户试图同时改变数据的同一块时,就出现了冲突问题。

    发明内容

    为了解决上述问题,本发明提出了一种图形数据库非联机事务中删除数据的控制方法,它可在图形数据库未开启事务时删除数据。

    本发明采用的技术方案如下:

    一种图形数据库非联机事务中删除数据的控制方法,其特征在于:

    非联机事务处理自上而下分为三层:

    最上层为暴露给外部调用程序的API;

    中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java语言的线程同步锁定特性实现,非同步区的操作则不受限制,在任何时间均可以进行;

    最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息;

    用Relation描述图形数据库中的节点与节点之间的关系,每一个Relation均有一个全局唯一的名称、一个源Node、一个目标Node,将每一个Relation的定义信息保存在名称为graphic_db_relation_def的DataSet中,该DataSet的数据结构如下:

    ??列名称
    ??数据类型
    说明
    ??relation_id
    ??Number
    全局唯一的ID
    ??name
    ??String
    用于保存Relation的名称

    ??source_node
    ??Number
    源Node的ID
    ??target_node
    ??Number
    目标Node的ID

    两个通过Relation连接的Node中的数据可以建立连接,将所有数据的连接信息保存在名称为graphic_db_relation_record_def的DataSet中,该DataSet的数据结构如下:

    执行以下步骤:

    1)客户程序调用API,将参数数据传给图形数据库;

    2)进入同步区;

    3)确定待删除数据;

    4)检查待删除数据是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;

    5)检查与待删除数据相关的Relation是否被事务锁定,若锁定则转步骤8),否则继续执行下面的步骤;

    6)从DataSet中物理删除在步骤3)中确定的待删除数据;

    7)退出同步区,程序结束;

    8)等待一段时间;

    9)判断操作是否超时,若超时则退出执行逻辑,否则转步骤2)再次进入同步区。

    进一步地:

    在所述步骤1)中,API传入如下参数:node_name,指定将要删除哪个Node中的数据;filter,过滤条件。

    在所述步骤3)中,确定待删除数据的详细步骤如下:通过客户程序调用API时传入的filter参数作为过滤条件,对与API参数node_name同名的DataSet中的数据进行过滤,所有与过滤条件相匹配的数据均为待删除的数据记录。

    在所述步骤4)中,检查待删除数据是否被事务锁定的详细步骤如下:检查每一条待删除数据,如果有任何一条记录列_dirty的值为-1,且列_tx_no的值既不为空也不等于当前事务编号,则意味着在待删除数据中存在被其他事务锁定的情况。

    在所述步骤5)中,检查与待删除数据相关的Relation是否被事务锁定的详细步骤如下:查询名称为graphic_db_relation_record_def的DataSet,过滤获取所有source_record或target_record列的值与待删除数据的RID相等的记录,依次检查这些记录的_tx_no字段,如果有任何一条记录_tx_no列的值不为空,则意味着相关数据的Relation存在被其他事务锁定的情况。

    本发明具有以下优点:

    作为联机事务中删除数据的有效补充,在删除数据的应用场景中,如无需开启联机事务,则可调用非联机事务的API直接删除数据。

    附图说明

    图1为图形数据库的架构;

    图2为节点之间的关系图;

    图3为数据在DataSet中的存储方式;

    图4为节点之间的引用图;

    图5为联机事务处理流程;

    图6为非联机事务处理流程;

    图7为非联机事务处理的结构;

    图8为删除数据的处理流程。

    具体实施方式

    本发明提出了一种图形数据库非联机事务中删除数据的控制方法,下面结合附图详细说明。

    图形数据库概述

    本发明图形数据库的架构自上而下可以分为三层。如图1所示,最上层为图形数据中各种概念对象的组织与实现。中间层为抽象的数据物理存储接口层,将物理存储的数据抽象为若干个数据集DataSet。底层为物理存储实现层,由程序借助现有的存储引擎实现,比如:传统的关系数据库,XML文件等等。

    DataSet(数据集)

    DataSet是图形数据库中数据的逻辑存储单元,图形数据库中的数据以及数据库自身的逻辑定义均存储在DataSet中,DataSet是一个抽象的接口,真实的数据可以通过遵循DataSet接口的实现程序存储在关系数据库、XML或自定义格式的文件中。每一个DataSet由一个全局唯一的名称和若干个列(Column)组成。DataSet中的列表支持如下两种数据类型:

    ??类型
    ?说明
    ??String
    ?用于保存文本性的描述信息
    ??Number
    ?用于保存整数、浮点数等数字信息,或用来保存布尔值信息,用1表示true,用-1表示false.

    表1

    Node(节点)

    Node为图形数据库中存储数据的逻辑单元,在图形数据库中,每一种记录实体均可抽象为Node,比如在表述一个计算机网络应用系统时,交换机中的端口、PC服务器的网卡、CPU、生产配件的厂商、我们为之提供服务的客户、系统中的用户、权限等等,每个Node拥有一个全局唯一的名称,和一些其特有的属性,用于记录配置信息,例如:相对于我们服务的客户,我们将其命名为Customer,其拥有如下属性:contractedAmount(合同总额)、industry(所属行业)、name(客户名称)、description(描述)等。在本发明中,Node的属性可以是如下类型的数据。

    表2

    每一个Node的定义信息均保存在名称为graphic_db_node_def的DataSet中,该DataSet的数据结构如下:

    ?列名称
    ??数据类型
    ??说明
    ?node_id
    ??Number
    ??全局唯一的ID
    ?name
    ??String
    ??用于保存Node的名称

    表3

    每一个Node中所定义的属性信息保存在名称为graphic_db_node_attr_def的DataSet中,该DataSet的数据结构如下:

    表4

    针对于Node的定义,物理存储的DataSet类似如下两个表:

    表5

    表6

    每一个Node的数据信息保存在与其同名的DataSet中,假设我们有一个名称为Customer的Node,该Node有如下属性:

    ??属性名称
    ??数据类型
    ??说明
    ??RID
    ??String
    ??数据库内置
    ??name
    ??String
    ??客户名称
    ??contractedAmount
    ??Number
    ??合同金额
    ??industry
    ??Reference
    ??所属行业
    ??description
    ??String
    ??客户描述信息

    表7

    则该Node对应的DataSet结构为:

    表8

    物理存储的DataSet类似下表:

    表9

    RID(记录ID,Record?ID)

    在图形数据库中,每一个Node都会有一个名称为RID的属性,存储在Node中的每一条数据的RID值均是全局唯一的,作为该条记录在图形数据库中的标识。RID的数据类型为String型。每一个Node均含有该属性。RID格式为:Node名称+下划线+递增数字,一个典型的RID数值类似于如下形式:Industry_109。

    Relation(关系)

    每一类信息的实体均可以抽象为Node,在现实应用中,常常需要将这些Node按某种逻辑组织起来,Relation就是用来描述Node与Node之间的组织关系的。假设现在已有代表客户的Node:Customer,代表系统用户的Node:SysUser,在现实世界中,我们的一个销售人员会成为系统中的一个用户,并负责一些客户的销售、及沟通工作。因此,我们可以在SysUser与Customer之间建立一个名为SysUserServeCustomer的Relation来表述两者之间的关系。我们用图2来表述这种关系,Relation就是用于描述Node与Node之间关系的特殊对象。每一个Relation均有一个全局唯一的名称,一个源Node,一个目标Node。由源Node到目标Node的方向,我们称之为正向,由目标Node到起始Node的方向我们称之为反向。

    每一个Relation的定义信息均保存在名称为graphic_db_relation_def的DataSet中,该DataSet的数据结构如下:

    ??列名称
    ??数据类型
    ??说明
    ??relation_id
    ??Number
    ??全局唯一的ID
    ??name
    ??String
    ??用于保存Relation的名称
    ??source_node
    ??Number
    ??源Node的ID
    ??target_node
    ??Number
    ??目标Node的ID

    表10

    针对于Relation的定义,物理存储的DataSet类似下表:

    表11

    按照Relation的定义,两个通过Relation连接的Node中的数据可以建立连接。所有数据的连接信息保存在名称为graphic_db_relation_record_def的DataSet中,该DataSet的数据结构如下:

    表12

    在应用场景中,其物理存储的DataSet类似下表:

    表13

    Reference(引用)

    在图形数据库抽象中,一些常用的Node会与其他大部分Node有关系,这些常用的Node数据量很有限、且基本不会发生变化,比如:国家、省、市等。如果采用Relation的方式来表述的话,则需要与其他Node之间建立的大量关系,这对后期的维护将会造成一定的困难。在此种情形下,可以考虑采用Reference的形式来表述关系。一个Node通过其所拥有的属性引用另外一个Node,在其实现形式上,很大程度与RDBMS(关系数据库)的Foreign?Key(外键)相类似。某一条记录的Dictionary属性中保存的是另外一个Node中数据记录的RID??悸侵拔颐翘致酃腘ode——Customer,拥有(industry)行业这一属性,假设在我们的应用场景中,行业的数量很有限,且不会经常发生变化。则可以用Reference属性的方式引用Industry这一Node中的某条记录。数据在DataSet中的存储方式如图3所示。

    在本发明中我们用虚线表示Node之间的Reference,以区别于Relation,见图4。

    联机事务与非联机事务

    图形数据库中数据的操作可分为:“联机事务数据操作”与“非联机事务数据操作”。联机事务数据操作步骤依次为:创建联机事务、进行联机事务数据操作(在一个联机事务中该操作可以重复多次)、提交联机事务使操作生效或者回滚联机事务放弃操作。见图5所示。而非联机事务数据操作不受事务控制,直接调用图形数据库API即可,见图6所示。

    如图7所示,本发明的非联机事务处理自上而下分为三层:

    最上层为暴露给外部调用程序的API。

    中间层为事务逻辑控制层,按操作类别分为同步区与非同步区,同步区意味着在同一时间只能有一个操作进行,其他操作在进入同步区之间均处于等待状态,该机制利用Java语言的线程同步锁定特性实现。非同步区的操作则不受限制,在任何时间均可以进行。

    最下层为存储数据的DataSet操作抽象层,在DataSet中,保存有联机事务自身的状态信息,以及数据的事务状态属性信息。非联机事务自身无状态信息,故不需要保存。仅保存数据信息。

    在图形数据库中,联机事务的状态数据存储在名称为graphic_db_tx_def的DataSet中,该DataSet的数据结构如下:

    表14

    在图形数据库中每一个Node均有一个相对应的同名的DataSet,数据之间的Relation信息保存在名称为graphic_db_relation_record_def的DataSet中。这些DataSet中均缺省内置如下两个列:

    表15

    非联机事务中删除数据的控制

    如图8所示,在非联机事务中,删除数据的处理逻辑如下:

    (1)客户程序调用API,将参数传给图形数据库。API传入如下参数:

    a.node_name,指定将要删除哪个Node中的数据。

    b.filter,过滤条件

    (2)进入同步区,同步区利用Java语言的synchronized线程同步锁定实现,在同一时刻,仅有一个操作能进入同步区。

    (3)确定待删除数据。通过客户程序调用API时传入的filter参数作为过滤条件,对与API参数node_name同名的DataSet中的数据进行过滤,所有与过滤条件相匹配的数据均为待删除的数据记录。

    (4)检查数据锁定。检查每一条待删除数据。如果有任何一条记录列_dirty的值为-1,且列_tx_no的值既不为空也不等于当前事务编号。则意味着在待删除数据中存在被其他事务锁定的情况。

    (5)检查数据相关的Relation是否被锁定。查询名称为graphic_db_relation_record_def的DataSet,过滤获取所有source_record或target_record列的值与待删除数据的RID相等的记录,依次检查这些记录的_tx_no字段,如果有任何一条记录_tx_no列的值不为空。则意味着相关数据的Relation存在被其他事务锁定的情况。

    (6)从DataSet中物理删除在步骤(3)中确定的待删除数据。

    (7)退出同步区。跳出线程锁定的synchronized方法。

    (8)等待10毫秒。执行当前逻辑的线程休眠10毫秒。

    (9)判断操作是否超时,如果本次调用进入同步区的时间已超过30000毫秒(30秒)。则表明本次调用已超时,退出执行逻辑。否则转步骤(2)再次进入同步区。

    关于本文
    本文标题:图形数据库非联机事务中删除数据的控制方法.pdf
    链接地址://www.4mum.com.cn/p-5865298.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 11选五你有稳赚的投注技巧吗 吉林快三杀号秘诀 幸运飞艇计划预测软件 快速时时正规吗 北京pk10的走势图 时彩后一稳赚技巧之后一三码抓顺子! 彩票阶梯投注方案 pk10app计划软 七乐彩中奖规则图解 时时彩二码不定位技巧 聚富视界软件 ig飞艇人工计划软件 3d四码组六遗漏 玩pk10倾家荡产案例 三分pk10手机计划软件下载 时时彩独胆稳赚技巧