大数据时代建模——图数据库建模
导读:云计算环境下,传统关系型数据库在海量数据存储方面存在瓶颈,对树形结构与半结构化数据的建模比较困难。本文介绍一种全新的建模方式——图数据库建模。应用图数据库模型更具扩展性、灵活性、高可靠性和高性能,能建立高细粒度的数据模型,非常适合复杂关系的建模和推理,有较高的实用价值。
本文以图数据库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 × N,L是结点属性、关系属性的集合。
结点及关系可以有多个属性,每种不同类型的结点或关系用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世界人工智能大会创邻科技“图”论坛:智能互联,引燃全场
大数据时代建模——图数据库建模相关推荐
- 大数据时代的新型数据库 — 图数据库 Neo4j 的应用
概览 微云数聚(北京)科技有限公司是一家实力雄厚的大数据技术公司,由移动互联网技术专家团队.大数据专业团队和建模博士团队组成.微云数聚专注于研究图数据库技术及其应用,是世界领先的图数据库Neo4j在中 ...
- 大数据时代的新型数据库-图数据库Neo4j介绍
2019独角兽企业重金招聘Python工程师标准>>> 1.Neo4j简介 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上形成图谱而不是表中.Neo4j也 ...
- 大数据时代-使用关系型数据库的价值意义?
不知道大家有没有这种经历:一个系统刚上线的时候是有完整的架构逻辑的,数据库表的设计也是经过精细推敲,以为可以经得起时间的考验.结果呢?上线之后各种新业务支持.新需求支持.不得不在原有的数据表中添加字段 ...
- 图数据库——大数据时代的高铁
如果把传统关系型数据库比做火车的话,那么到现在大数据时代,图数据库可比做高铁.它已成为NoSQL中关注度最高,发展趋势最明显的数据库. 简介 在众多不同的数据模型里,关系数据模型自20世纪80年代就处 ...
- 图数据库――大数据时代的高铁
如果把传统关系型数据库比做火车的话,那么到现在大数据时代,图数据库可比做高铁.它已成为 NoSQL 中关注度最高,发展趋势最明显的数据库. 简介 在众多不同的数据模型里,关系数据模型自20世纪80年代 ...
- 【2016年第6期】大数据时代空间科学领域的科研信息化实践与成果
邹自明,佟继周,熊森林,胡晓彦,纪珍 中国科学院国家空间科学中心,北京 100190 摘要:随着人类对空间探索的拓展以及对空间认知的加深,空间科学探测大工程任务相继推进.实施,催生了空间科学领域大数 ...
- 大数据时代是什么意思?大数据是什么?
界快速虚拟化,数据的来源及其数量正以前所未有的速度增长. 伴随着云计算,大数据.物联网.人工智能等信息技术的快速发展和传统产业数字化的转型,数据量呈现几何级增长,根据市场研究资料显示,全球数据总量将从 ...
- 如何治理“网络暴力” 在人类文明不断发展向前的进程中,大数据时代应运而来。数学建模解题步骤,愚见而已,欢迎指错和探讨呀~
题目可见文章:(20条消息) 如何治理"网络暴力" 在人类文明不断发展向前的进程中,大数据时代应运而来. 数学建模,90%成品论文,附附件.原题.代码 注,水平有限,非广告,仅供交 ...
- 图分析在大数据时代的应用
在数据规模越来越大.数据结构越来越复杂的大数据时代,传统的关系型数据暴露出了建模缺陷.水平伸缩等问题,于是具有更强大表达能力的图数据受到业界极大的重视.如果把关系数据模型比做火车的话,那么现在的图数据 ...
最新文章
- 安卓环境搭建 unable to access Android SDK add-on list解决方案
- 基于Linux命令行KVM虚拟机的安装配置与基本使用
- 笔记-项目范围管理-指导与管理项目工作-控制质量-确认范围-结束项目或阶段...
- webpack图解-学习笔记
- python input输入多个变量_「Python 秘籍」1.2 解压可迭代对象赋值给多个变量
- P2756 飞行员配对方案问题【网络流24题】
- webstorm创建代码模板
- ominigraffle 模板_商河盖梁模板安装
- 一道关于CSS选择器优先级的题
- sns.barplot/sns.countplot/sns.boxplot参数设置
- 软考中级网络工程师学习技巧
- 将无线网卡变身为 wifi 热点的 完整批处理文件 或者 让i电脑变成wifi热点
- Unity3D坦克大战项目总结
- Capstone/CS5216 CS5218设计 DP转HDMI转换方案芯片
- echarts x轴,y轴滚动条
- 计算机控制电缆灰色和蓝色,计算机电缆、控制电缆区别
- 流水灯verilog实验原理_6个简单的儿童科学实验,培养孩子的创造力和发散思维...
- 九九乘法表c语言枚举法,小学枚举法教案
- java8新特性总结——lambda表达式
- 卡片式设计流行的秘密 — 看完这15个案例你就懂了!