一种基于富图模型RichGraph的图数据管理方法

文档序号:9597904阅读:342来源:国知局
一种基于富图模型RichGraph的图数据管理方法
【技术领域】
[0001] 本发明涉及图数据管理的技术领域,具体涉及一种基于富图模型RichGraph的图 数据管理方法。
【背景技术】
[0002] 随着web2. 0时代的到来,海量具有复杂图结构的数据不断产生,越来越多的领域 不仅仅看重于信息实体本身,更关注于实体间的联系,例如网页挖掘、生物领域、化学领域、 空间科学、地理学等。如何合理地、高效地管理具有图结构的信息是数据库领域面临的挑 战。
[0003] 然而目前应用最广泛的关系型数据库由于其关系逻辑模型的局限性,存在很多难 以克服的问题,因此非关系型数据应运而生,如列存储数据库、文档型数据库、键值存储数 据库以及图数据库。其中图数据库的逻辑模型即是图结构,因此十分易于信息实体间复杂 语义关系的表达。但是目前的图数据模型未能表示实体及实体间关系所具有的丰富属性, 对信息的表达并不充分。近期热门的图数据库如Sparksee和Ne〇4j,由于其底层索引方式 较为复杂且并不开源,因此实用性不强。
[0004] 本发明提出了一种基于富图模型RichGraph的图数据管理方法,给出了富图模型 的完整定义以及基于Lucene的实现方法,并将其应用在图数据管理领域,实现了一种属性 图数据库管理系统MyGraphDB。本发明的图数据方法对包含复杂语义关系的图结构数据具 有良好的表示及管理能力。

【发明内容】

[0005] 本发明要解决的问题为:克服现有技术的不足,提出了一种表达能力更为丰富的 属性图数据模型RichGraph,并通过开源的Lucene全文索引检索引擎进行底层实现,为图 数据信息的表示和管理提供了一种高效可行的技术解决方案。
[0006] 本发明采用的技术方案为:一种基于富图模型RichGraph的图数据管理方法,该 处理方法包括如下步骤:
[0007] (1)建立属性图数据模型RichGraph
[0008] 属性图模型RichGraph符合一般数据模型的定义,分逻辑模型、物理模型和完整 性约束三个方面进行定义;
[0009] 所述的逻辑模型用于定义图数据库中的数据结构类型,即可以表示的节点以及 边;该模型不仅可以表示图的拓扑结构,还能对表示信息实体的图节点以及表示实体间语 义关系的边具有的复杂属性信息进行表示;
[0010] 所述的操作模型定义了数据的增、删、改、查四类操作,通过该模型可以完成对数 据信息的管理操作;关于数据查询,具体定义了 6种原子操作和4种限制操作,通过这些操 作可以实现对数据库中所有数据信息的查询;
[0011] 所述的完整性约束是保证数据一致性,保证数据库中的数据实例与数据库预先定 义模式相一致的约束条件;按照图数据模型中的两类主要元素,分别定义了节点完整性约 束和边完整性约束;
[0012] (2)基于属性图模型RichGraph的图数据管理方法
[0013] 采用lucene全文索引检索引擎作为图数据模型的底层物理实现方法,将属性图 中的节点和边信息存储于lucene索引目录中,通过lucene检索引擎完成对属性图数据的 全部操作。
[0014] 本发明与现有技术相比的优点在于:
[0015] (1)、本发明完整地形式化表达了一种富图模型RichGraph,其在传统图模型的基 础上增加了图节点以及边的属性信息描述,丰富了图数据模型的表达能力;
[0016] (2)、本发明提出了一种基于开源lucene全文检索引擎的图数据管理方法,其对 于图数据的管理在效率和效果上均优于现有技术。
【附图说明】
[0017] 图1为节点插入流程图;
[0018] 图2为边插入流程图;
[0019] 图3为富图数据逻辑模型与物理模型的映射示意图。
【具体实施方式】
[0020] 下面参考附图,对本发明的实施分富图模型的定义、富图数据模型的实现方法以 及属性图数据库管理系统MyGraphDB三部分进行详细的说明。
[0021] -、富图数据模型的定义
[0022] 富图数据模型的定义分为逻辑模型、物理模型和完整性约束三个方面进行定义。
[0023] 1.逻辑模型:通常情况下我们理解的图是由一些节点和边共同组成的一种数据 模型,其可以定义为G= (V,E)。其中V表示图中节点的集合,Ι?Ξ (ΚχΓ):表示节点与节点 之间边的集合。为了表示除拓扑结构以外更丰富的属性信息,定义富图数据模型如下,
[0024] G = (V, E, Iv, Ie, Tv, Te, Rv, Sv, Re, Se, λ v, λ e, μ v, μ v, μ v, μ e)
[0025] (1)富图中的节点
[0026] 富图数据模型中V表示节点的集合,、表示节点的唯一标识符的集合。存在函 数λν:ν-Ιν,表示每个节点与其唯一标识符的对应关系。这里的节点即表示现实世界中 客观存在的实体,因此定义实体类型集合τν,并定义函数ηV:V - TV,表示每个节点与其 所属实体类型的对应关系。此外,节点可包含属性信息,定义节点属性集合Rv,以及节点属 性可取值的集合\,并定义函数yv:VXRv- Sv,表示每个节点、节点具有的属性与属性取 值的对应关系。因此,富图数据模型中的一个节点可以表示为,V(vertice_id,vertice_ type, property_key1, property^alue^ ..., property_keyn, property_valuen) n ^ 1
[0027] vertice_id e Iv表示该节点v的唯一标识符,vertice_type e T v表示该节点的 实体类型,property+keyiG 1^表示该节点具有的某一个属性,一个节点可以具有若干属 性,每个属性对应一个具体的取值propertyjalue; e S v。
[0028] (2)富图中的边
[0029] 富图数据模型中的J QfxF)表示边的集合,Ie表示边的唯一标识符的集合。存 在函数,表示每条边与其唯一标识符的对应关系。这里的边是有向边,表示显示 世界中实体与实体之间存在的关系,因此定义关系类型集合?;,并定义函数ru:E - ?;,表 示每条边与其所属关系类型的对应关系。与节点相似,边也包含属性信息。定义边的属性 集合&,以及边属性可取值的集合并定义了函数μ S y表示每条边、边所具有 的属性与属性取值的对应关系。因此,一条边可以表示为,
[0030] e (edge_id, start_vertice_id, end_vertice_id, edge_type, property_ key^ property^alue^ ..., property_keyn, property_valuen), n ^ 0
[0031 ] edge_id e Ie表示该边e的唯一标识符,edge_type e T e表示该边的关系 类型,start_vertice_id和end_vertice_id分别表示起始节点ID和结束节点的ID, property+keyiG Re表示该边具有的某一个属性,每个属性对应一个具体的取值property_ value; G S e〇
[0032] 2.操作模型:在富图数据逻辑模型的基础上定义操作模型,具体为数据增、删、 改、查四类操作。
[0033] (1)数据插入
[0034] 数据插入分为两种,一种是插入节点信息,一种是插入边信息。
[0035] 如图1所示,收到节点添加请求后,先进行节点查询,判断节点是否已经存在。根 据实体类型可缩小检索范围,根据节点属性值判断节点是否已存在。如果满足要求的节点 不存在,则添加新节点。
[0036] 如图2所示,一个边插入请求需要包括边的起始节点信息、结束节点信息以及边 的关系类型和边属性信息,收到插入请求后先判断起始节点和结束节点的存在性,如果节 点不存在则返回相应异常信息提醒数据库管理员应先创建相应节点。若节点存在则根据边 的具体属性信息判断边是否已经存在,如果满足要求的边不存在则创建新的边。
[0037] (2)数据删除
[0038] 对数据的删除操作分为删除属性信息和删除整个数据元素两类。任何删除操作均 应满足富图模型的完整性约束。删除数据元素又可分为删除节点和删除边两类。对于节点 的删除较为特殊,删除某一节点之前应查询与该节点直接连接的边,在删除该节点的同时 删除掉这些边以保证数据满足完整性约束。
[0039] (3)数据修改
[0040] 数据修改主要指对节点或边的属性信息进行修改,其操作与数据删除操作类似, 任何数据修改操作均应满足富图模型的完整性约束。
[0041 ] (4)数据查询
[0042] 关于数据查询,具体定义了 6种原子操作和4种限制操作,通过这些操作可以实现 对数据库中所有数据信息的查询。
[0043] I.原子操作
[0044] 节点和边是构成富图的元素,定义仅需一步查找即可从一个元素检索到另一个元 素的操作为原子操作,如这一条边指向哪个节点?这个节点射出了哪几条边?原子操作的 具体定义如下:
[0045] a) ν^Ρ (E) - P (V),找到边的结束节点;
[0046] b) vin:P (E) - P (V),找到边的起始节点;
[0047] c)eciut:P(V) - P(E),找到从节点射出的边;
[0048] d)ein:P(V) - P(E),找到指向节点的边(射入节点的边);
[0049] e)s:P(V U E) XR - P(S),找到满足属性信息要求的元素;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1