大数据时代建模——图数据库建模

大数据时代建模——图数据库建模导读:云计算环境下,传统关系型数据库在大数据库建模、海量数据存储方面存在瓶颈,对树形结构与半结构化数据的建模比较困难。本文介绍一种全新的建模方式——图数据库建模。应用图数据库模型更具扩展性、灵活性、高可靠性和高性能,能建立高细粒度的数据模型,非常适合复杂关系的建模和推理,有较高的实用价值。

大家好,欢迎来到IT知识分享网。

导读:云计算环境下,传统关系型数据库在海量数据存储方面存在瓶颈,对树形结构与半结构化数据的建模比较困难。本文介绍一种全新的建模方式——图数据库建模。应用图数据库模型更具扩展性、灵活性、高可靠性和高性能,能建立高细粒度的数据模型,非常适合复杂关系的建模和推理,有较高的实用价值。

本文以图数据库Galaxybase为例,详细描述了图数据库的建模过程,并应用Cypher语言实现了该模型的增加、删除、更改、查询及统计功能。实践结果表明,图数据库建模技术能使构造的模型语义表达更丰富,更具简易性和可扩展性等优点。

图模型表示方式

图模型GM可以用一个三元组描述,
G M : = < N , R , L > GM: = <N,R,L> GM:=<N,R,L>
其中N={
n1, n2, … nt} 为非空有限数量的结点集(node set),N中的t个元素称为t个结点。

R={
r1, r2, … rs} 为顶点集N中的有序结点偶对(ni, nj)组成的关系集(relationship set),R中的s个元素称为s个关系,且满足 ⊆ \subseteq N × NL是结点属性、关系属性的集合。

结点及关系可以有多个属性,每种不同类型的结点或关系用ID来区分。结点之间可以有多个不同的关系,方向既可以单向,也可以双向,其属性个数也可以动态扩展。如工厂与原材料两个节点,既有工厂供应原材料的关系,也有工厂购买原材料的关系,因此图模型具有丰富的语义表达能力。

图模型建模规则

规则1 单实体集建模规则

单实体集建模为单结点。

以创建单实体“学生”为例,点类型和点属性如下表所示。

点类型 点属性
学生 外部唯一标识(ID)、姓名、年龄、班级

建模后如下图所示。

在这里插入图片描述
在这里插入图片描述

规则2 两个实体集具有1:N联系的建模规则

两个实体集分别按照规则1建模为两个单结点,联系集建模为图模型中结点的关系。结点间用带箭头的线段连接,方向可以是双向,也可以是单向。根据需要可以为关系添加若干属性。

以创建实体“学生”、“学校”,联系“就读”为例,点类型和点属性如下表所示。

点类型 点属性
学生 外部唯一标识(ID)、姓名、年龄、班级
学校 外部唯一标识(ID)、名称、地址、规模

边类型、边属性如下表所示。

边类型 起始点类型 终止点类型 边属性
就读 学生 学校 入学时间、入学方式

建模后如下图所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

规则3 两个实体集具有M:N联系的建模规则

两个实体集分别按照规则1建模为两个单结点,联系集建模为图模型中结点的关系。结点间用两条带箭头的线段连接,线段方向相反。

以创建实体“学生”、“学校”,联系“就读”、“管理”为例,点类型和点属性如下表所示。

点类型 点属性
学生 外部唯一标识(ID)、姓名、年龄、班级
学校 外部唯一标识(ID)、名称、地址、规模

边类型、起始点类型、终止点类型、边属性如下表所示。

边类型 起始点类型 终止点类型 边属性
就读 学生 学校 入学时间、入学方式
管理 学校 学生 学籍状态、毕业去向

建模后如下图所示。
在这里插入图片描述
在这里插入图片描述

规则4 两个或多个实体集之间存在整体与部分包含关系的建模规则

整体实体集与部分实体集之间符合1:1或1:N的联系,遵守规则2的建模规则。在图模型中,关系的方向从整体结点到部分结点(关系名可用HasParts[包含]、Contains[由···组成]等语义描述)或从部分结点到整体结点(关系名可用PartOf[属于]、ConsistOf[组成]等语义描述)。

示例模型中,学校可以有多个社团,结点“社团”与结点“学校”有部分结点到整体结点的包含关系。

在这里插入图片描述

规则5 两个或多个实体集之间存在父与子实体集的继承关系的建模规则

父子继承关系符合1:1或1:N的联系,遵守规则2的建模规则。在图模型中,关系的方向从父结点到子结点(关系名可用SubClass[有···子集]语义描述)或从子结点到父结点(关系名可用ISA[是···的指令集]、SubClassOf[是···的子集]等语义描述)。

示例模型中,结点“职位”与结点“社团”存在继承关系。

在这里插入图片描述

图数据库建模应用示例

某大型制造企业制造某系列轻型摩托车产品,需要采购毛坯及零部件等物料进行制造、装配,物料到货经过质检部门验收合格后,需要入库存储。由于该企业的采购、制造、装配的零部件(含物料)多达两万件,涉及国内外的供应商多大三千多家,每天约380个采购入库单,导致该企业每月新增数据约16~20GB。

接下来使用Galaxybase分布式图数据库来实现物料入库的管理模型。

以创建实体“员工”、“物料入库单”、“供应商”、“物料信息”、“入库单明细”、“货位信息”,联系“经手”、“供应”、“包含”、“分配”、“由···构成”为例,点类型和点属性如下表所示。

点类型 点属性
员工 外部唯一标识(ID)、工号、姓名、性别、部门
物料入库单 外部唯一标识(ID)、入库单号、入库时间、状态
供应商 外部唯一标识(ID)、编号、名称、信誉等级
物料信息 外部唯一标识(ID)、物料编号、名称、价格
入库单明细 外部唯一标识(ID)、数量
货位信息 外部唯一标识(ID)、货位号、容量

边类型、起始点类型、终止点类型如下表所示。

边类型 起始点类型 终止点类型
经手(一对多) 员工 物料入库单
供应(一对多) 供应商 物料信息
包含(一对多) 物料入库单 入库单明细
分配(一对一) 入库单明细 货位信息
由···构成(多对一) 入库单明细 物料信息

建模后如下图所示。

在这里插入图片描述

更多图模型构建方式请参考图构建

图数据库实现与检索技术

Galaxybase是一个高性能的NoSQL图形数据库,具有ACID事务、高可用性、高扩展性及高性能等特点,非常适合大数据库的图形数据建模、管理、快速查找。

将上面建立的图数据库模型实例化,可以得到数据库实例图。

在这里插入图片描述

Galaxybase使用Cypher或Gremlin语言对图数据进行查找操作,不需要编写代码就可以进行高效率的查询。

操作示例 Cypher图数据库操作语言
创建结点“员工”并添加类型和属性 CREATE (n:员工{工号:‘102’,姓名:‘张三’,性别:‘男’,部门:‘仓管部’})
在结点“员工”的属性“姓名”上创建单属性索引 CREATE INDEX ON :员工(姓名)
精确查询性别为男的员工,并返回姓名和性别 MATCH (n:员工{性别:男}) RETURN n.姓名,n.性别
查询姓张的员工,并返回员工姓名 MATCH (n:员工) WHERE n.姓名 STARTS WITH ‘张’ RETURN n.姓名
范围查询容量在90~100之间的货位信息,并返回货位号和容量 MATCH (n:货位信息) WHERE n.容量>90 AND n.容量<100 RETURN n.货位号,n.容量
查询供应商的数量 MATCH (n:供应商) RETURN count(n)
修改属性,例如:修改编号为“M329”的物料的价格 MATCH (n:物料信息{物料编号:‘M329’ }) SET n.价格=‘230’ RETURN n.价格
删除结点,例如:删除入库单号为“2013120271”的入库单 MATCH (n:入库单明细) WHERE n.入库单编号 = ‘2013120271’ DELETE n
查询结点的关系数量,例如:查询编号为“S01”的供应商有哪些语义关系及关系数量,并返回关系类型及其个数 MATCH (n:供应商{供应商编号: ‘S01’ })-[r]->() RETURN type® as type, count(*) as count

更多Cypher/Gremlin语言使用方式请参考Cypher文档


相关资源

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15826.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信