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

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

图模型表示方式

图模型GM可以用一个三元组描述,
GM:=<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个关系,且满足R⊆\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文档。


相关资源

  • Galaxybase Studio新手入门指南

  • 创邻科技成立五周年新闻稿

  • 创邻科技荣登《2021年中国新经济准独角兽企业榜单》

  • 2021世界人工智能大会创邻科技“图”论坛:智能互联,引燃全场

大数据时代建模——图数据库建模相关推荐

  1. 大数据时代的新型数据库 — 图数据库 Neo4j 的应用

    概览 微云数聚(北京)科技有限公司是一家实力雄厚的大数据技术公司,由移动互联网技术专家团队.大数据专业团队和建模博士团队组成.微云数聚专注于研究图数据库技术及其应用,是世界领先的图数据库Neo4j在中 ...

  2. 大数据时代的新型数据库-图数据库Neo4j介绍

    2019独角兽企业重金招聘Python工程师标准>>> 1.Neo4j简介 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上形成图谱而不是表中.Neo4j也 ...

  3. 大数据时代-使用关系型数据库的价值意义?

    不知道大家有没有这种经历:一个系统刚上线的时候是有完整的架构逻辑的,数据库表的设计也是经过精细推敲,以为可以经得起时间的考验.结果呢?上线之后各种新业务支持.新需求支持.不得不在原有的数据表中添加字段 ...

  4. 图数据库——大数据时代的高铁

    如果把传统关系型数据库比做火车的话,那么到现在大数据时代,图数据库可比做高铁.它已成为NoSQL中关注度最高,发展趋势最明显的数据库. 简介 在众多不同的数据模型里,关系数据模型自20世纪80年代就处 ...

  5. 图数据库――大数据时代的高铁

    如果把传统关系型数据库比做火车的话,那么到现在大数据时代,图数据库可比做高铁.它已成为 NoSQL 中关注度最高,发展趋势最明显的数据库. 简介 在众多不同的数据模型里,关系数据模型自20世纪80年代 ...

  6. 【2016年第6期】大数据时代空间科学领域的科研信息化实践与成果

    邹自明,佟继周,熊森林,胡晓彦,纪珍 中国科学院国家空间科学中心,北京  100190 摘要:随着人类对空间探索的拓展以及对空间认知的加深,空间科学探测大工程任务相继推进.实施,催生了空间科学领域大数 ...

  7. 大数据时代是什么意思?大数据是什么?

    界快速虚拟化,数据的来源及其数量正以前所未有的速度增长. 伴随着云计算,大数据.物联网.人工智能等信息技术的快速发展和传统产业数字化的转型,数据量呈现几何级增长,根据市场研究资料显示,全球数据总量将从 ...

  8. 如何治理“网络暴力” 在人类文明不断发展向前的进程中,大数据时代应运而来。数学建模解题步骤,愚见而已,欢迎指错和探讨呀~

    题目可见文章:(20条消息) 如何治理"网络暴力" 在人类文明不断发展向前的进程中,大数据时代应运而来. 数学建模,90%成品论文,附附件.原题.代码 注,水平有限,非广告,仅供交 ...

  9. 图分析在大数据时代的应用

    在数据规模越来越大.数据结构越来越复杂的大数据时代,传统的关系型数据暴露出了建模缺陷.水平伸缩等问题,于是具有更强大表达能力的图数据受到业界极大的重视.如果把关系数据模型比做火车的话,那么现在的图数据 ...

最新文章

  1. 安卓环境搭建 unable to access Android SDK add-on list解决方案
  2. 基于Linux命令行KVM虚拟机的安装配置与基本使用
  3. 笔记-项目范围管理-指导与管理项目工作-控制质量-确认范围-结束项目或阶段...
  4. webpack图解-学习笔记
  5. python input输入多个变量_「Python 秘籍」1.2 解压可迭代对象赋值给多个变量
  6. P2756 飞行员配对方案问题【网络流24题】
  7. webstorm创建代码模板
  8. ominigraffle 模板_商河盖梁模板安装
  9. 一道关于CSS选择器优先级的题
  10. sns.barplot/sns.countplot/sns.boxplot参数设置
  11. 软考中级网络工程师学习技巧
  12. 将无线网卡变身为 wifi 热点的 完整批处理文件 或者 让i电脑变成wifi热点
  13. Unity3D坦克大战项目总结
  14. Capstone/CS5216 CS5218设计 DP转HDMI转换方案芯片
  15. echarts x轴,y轴滚动条
  16. 计算机控制电缆灰色和蓝色,计算机电缆、控制电缆区别
  17. 流水灯verilog实验原理_6个简单的儿童科学实验,培养孩子的创造力和发散思维...
  18. 九九乘法表c语言枚举法,小学枚举法教案
  19. java8新特性总结——lambda表达式
  20. 卡片式设计流行的秘密 — 看完这15个案例你就懂了!

热门文章

  1. Windows wsl2 安装 centos
  2. Bugku:加密 富强民主
  3. Python 之父卸任 BDFL | 历史上的今天
  4. c#版本视频在线播放(通用播放器调用),支持avi,wmv,asf,mov,rm,ra,ram等
  5. 周期性时间序列的预测
  6. 她说:是的,嫁人当嫁程序员!
  7. 作品标题这是一篇博客文章标题待定
  8. electron安装【纯详细版】
  9. 2005年度美国高校排名
  10. 网易Java社招面试