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

文档序号:9597904阅读:来源:国知局

[0050] f) (sp?perty-key) (i),获取元素i的属性名称为property_key的属性值。
[0051] 其中P(V)和P(E)分别节点和边的集合,R表示属性集合,S表示属性值,下同。
[0052] II.限制操作
[0053] 在通过上述原子操作进行图元素的查找时需要对找到的结果附加一些限定操作, 以确保最终查找得到的是所需信息。定义限制操作包括对节点实体类型的限制、对边关系 类型的限制、对元素属性信息的限制以及对元素本身的限制,具体定义如下:
[0054] a) vlab± : P (V) X T - P (V),筛选或者过滤所有实体类型属于T的节点,lab+表示保 留该类型的实体,lab-表示过滤该类型的节点;
[0055] b) elab± : P (E) X T - P (E),筛选或者过滤所有关系类型属于T的边,lab+表示保留 该类型的边,lab-表示过滤该类型的边;
[0056] c)sp±:P(V U E) XRXS -P(V U E),筛选或者过滤所有属性信息满足要求的元素, P+表示保留属性信息相符的元素,P-表示过滤属性信息相符的元素;
[0057] d)ss±:P(V U E) X (V U E) - P(V U E),筛选或者过滤指定的元素,s+表示保留该 元素,s-表示过滤该元素;
[0058] 3.完整性约束
[0059] 完整性约束是保证数据一致性,保证数据库中的数据实例与数据库预先定义的模 式相一致的约束条件。在此按照富图数据模型中的两类主要元素,节点和边分别定义完整 性约束。
[0060] (1)节点完整性约束
[0061] I.每个节点与一个唯一的节点标示符iv对应,i ve I v,表示该节点的id ;
[0062] II.每个节点与一个实体类型tv对应,t VG T v;
[0063] III.每个节点必须具有"name"属性,且其属性值非空;"name"属性是除节点id 外的唯一标识属性,其与实体类型共同作用相当于关系数据库中的"主键"。
[0064] IV.每个节点具有唯一性,即不能存在两个节点具有相同的实体类型且具有相同 的属性及属性值。
[0065] (2)边完整性约束
[0066] I.每条边与一个唯一的边标示符L对应,i I ^,表示该边的id ;
[0067] II.每条边与一个关系类型%对应,t # T
[0068] III.对于关系类型为%的边e:〈Vl,v2>,其初始节点、结束节点与关系类型应满足 预先定义的关系模式P:Te-TvXTv;该条约束保证了边所表示的关系在语义上符合预先定 义好的关系模式。
[0069] IV.每条边具有唯一性,即不能存在两条边具有相同的始末节点、相同的实体类 型、以及相同的属性及属性值。
[0070] 二、富图数据模型的实现方法
[0071] 如图3所示,采用lucene全文索引检索引擎实现富图数据模型,将富图数据模 型中的数据元素映射为lucene底层索引项,将对图数据库中所有信息的操作映射为对 lucene索引信息的操作。下面分别描述富图数据模型中逻辑模型、操作模型和完整性约束 三部分的实现方法:
[0072] 1、逻辑模型的实现方法
[0073] 将富图数据逻辑模型中的节点和边作为各种文档(Document)构建在lucene检 索引擎索引目录中,利用文档的域信息(Field)来存储节点和边的相关具体信息。节点的 Field域信息组成如表1所示,节点Document中必须包含节点ID (vertice_id)、实体类型 (vertice_type)以及节点名称(vertice_name)这三个Field项,除此之外还可选择性地增 加某些节点属性项信息。
[0076] 边的Field域信息组成如表2所示,边Document中必须包含边ID (edge_id)、关系 类型(edge_type)、初始节点ID(start_node)和结束节点ID(end_node),除此之外还可选 择性地增加某些边属性项信息。
[0079] 2、操作模型的实现方法
[0080] 将富图数据操作模型中的数据插入映射为lucene检索引擎的addDocument (新建 文档)操作,先将节点或边的Field项信息写入对应Document,再将Document信息加入到 索引目录中。而针对富图数据操作模型中的数据删除和修改,由于lucene索引机制不支持 单独对Field项信息的修改,因此数据删除和修改操作均映射为deleteDocuments (删除文 档)操作,在删除对应索引文档后,按需要增加新的文档信息。
[0081] 对于富图数据查询的各种原子操作和限制操作则可对应到lucene检索引擎 Query类下支持的各种检索方法,如通过TermQuery可以按照节点ID查找到表示该节点的 Document,进一步通过getField方法获取该节点的具体信息。
[0082] 此外,lucene检索引擎索引的文档信息有两种管理方式,一是加载到内存中,有利 于数据信息的快速检索和读取;二是持久化到磁盘中,待需要时再读取到内存中操作,有利 于数据的安全性备份。
[0083] 3、完整性约束的实现方法
[0084] 对数据完整性的约束主要在数据插入和删除的过程中加以保证,即在调用lucene 操作索引项的接口之前增加相关校验,以保证索引目录中的数据符合数据模型定义的各项 完整性约束条件。
[0085] 三、属性图数据库管理系统MyGraphDB
[0086] 基于上述富图模型及其实现方法,我们设计并实现了一种应用系统一一属性图数 据库管理系统MyGraphDB。该数据库管理系统能够根据RichGraph富图模型对图数据信息 进行建模,通过基于lucene的RichGraph富图模型实现方法对图数据信息进行管理,实现 元数据定义、图数据信息的增、删、改、查操作。系统用户可以通过对外编程接口完成对图数 据管理系统的操作。
[0087] 通过使用属性图数据库管理系统MyGraphDB对頂Db电影数据进行管理,收获了良 好的应用效果。IMDb电影数据具体包含了电影信息,演员信息,角色信息,电影关键词信息, 制片公司信息及其出演关系、饰演关系、制片关系等语义关系。下面我们将分数据插入和查 询两方面展示MyGraphDB的应用效果:
[0088] 1、数据插入
[0089] 下表3为不同量级的数据进行数据插入操作的时间和空间开销。其中我们共计使 用38763个节点和147431条边作为十万量级的数据集,90万个节点和213万条边作为百万 量级的数据集,1259万个节点和2632万条边作为千万量级的数据集。可以发现MyGraphDB 面对不同量级的图数据信息插入均有良好的时间效率,且由于采用lucene倒排索引技术, 数据索引占用的存储空间明显小于现有的图数据管理系统。
[0092] 2、数据查询
[0093] 下表4为"千万量级"数据集上MyGraphDB进行不同查询操作的用时,测试结果体 现了 MyGraphDB在数据查询方面的效率较高。
[0094] 表 4
[0096] 此外,MyGraphDB在数据查询的效果方面也有很好的表现,针对固定ID进行的一 系列查询的返回结果准确率为100%,并且按属性项的查询方面由于采用对数据进行分词 后构建索引的方法,MyGraphDB能够很好的支持模糊查询。而现有的图数据库管理系统仅 支持数据的完全匹配查询,因此MyGraphDB在数据查询方面有着更大的优势。
【主权项】
1. 一种基于富图模型RichGraph的图数据管理方法,该管理方法包括如下步骤: (1) 建立属性图数据模型RichGraph 属性图模型RichGraph符合一般数据模型的定义,分逻辑模型、物理模型和完整性约 束三个方面进行定义; 所述的逻辑模型用于定义图数据库中的数据结构类型,即可以表示的节点以及边,该 逻辑模型不仅可以表示图的拓扑结构,还能对表示信息实体的图节点以及表示实体间语义 关系的边具有的复杂属性信息进行表示; 所述的操作模型定义了数据的增、删、改、查四类操作,通过该操作模型可以完成对数 据信息的管理操作;关于数据查询,具体定义了 6种原子操作和4种限制操作,通过这些操 作可以实现对数据库中所有数据信息的查询; 所述的完整性约束是保证数据一致性,保证数据库中的数据实例与数据库预先定义模 式相一致的约束条件;按照图数据模型中的两类主要元素,分别定义了节点完整性约束和 边完整性约束; (2) 基于属性图模型RichGraph的图数据管理方法 采用lucene全文索引检索引擎作为图数据模型的底层物理实现方法,将属性图中的 节点和边信息存储于lucene索引目录中,通过lucene检索引擎完成对属性图数据的全部 操作。
【专利摘要】本发明公开了一种基于富图模型RichGraph的图数据管理方法,该图数据管理方法中提出了一种节点和边元素均可包含属性信息的属性图数据模型,并给出了该数据模型基于Lucene全文索引检索引擎的底层实现方法。本发明解决了传统关系数据库模型获取数据中固有的图结构信息的限制问题,为包含丰富语义信息的复杂数据提供了合理的表达模型,同时提高了图数据复杂信息的管理能力。
【IPC分类】G06F17/30
【公开号】CN105354266
【申请号】CN201510697881
【发明人】郎波, 赵骥恒
【申请人】北京航空航天大学
【公开日】2016年2月24日
【申请日】2015年10月23日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1