首页 > 编程知识 正文

数据库建模图,大数据模型构建

时间:2023-05-03 11:33:33 阅读:37700 作者:2581

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

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

图模型表现模式图模型GM可以用一个三元组来描述,

L 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 ) subseteqnn,l

节点和关系具有多个属性,每种类型的节点或关系都由ID区分。 节点之间可以具有多个不同的关系,方向可以是单向的或双向的,并且其属性的数量也可以动态扩展。 像工厂和原材料两个节点一样,工厂提供原材料的关系和工厂购买原材料的关系,因此图模型具有丰富的语义表达能力。

图模型建模规则1单实体集建模规则单实体集被建模为单节点。

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

类型点属性对学生的外部唯一标识符(ID )、姓名、年龄、班级进行建模后如下图所示。

具有规则222个实体集合1:N联系的建模规则2个实体集合分别根据规则1建模为2个单节点,联系集合建模为图模型中节点的关系。 节点之间由带箭头的线段连接,方向可以是双向的或单向的。 如果需要,可以向关系中添加一些属性。

请考虑创建实体的“学生”、“学校”,联系“上学”的例子。 点类型和点属性如下表所示。

类型点属性学生外部唯一标识符(ID )、姓名、年龄、班级学校外部唯一标识符)、姓名、地址、规模边缘类型、边缘属性如下表所示。

边缘类型起点类型终点类型边缘属性对就读学生学校入学时间、入学方式建模后,如下图所示。

规则32个实体集合具有M:N联系的建模规则2个实体集合分别根据规则1建模为2个单节点,联系集合建模为图模型中节点的关系。 节点之间由两条带箭头的线段连接,线段的方向相反。

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

点类型点属性学生外部唯一标识符(ID )、姓名、年龄、班级学校外部唯一标识符)、姓名、地址、规模边缘类型、起点类型、终点类型、边缘属性如下表所示。

边缘类型起点类型终点类型边缘属性对就读学生学校入学时间、入学方式管理学校学生学籍状态、毕业去向建模后,如下图所示。

根据规则42的建模规则,在两个或多个实体集合之间满足建模规则整体和部分实体集合之间的关系1:1或1:N,包括整体和部分关系。 在图模型中,关系的方向可以是从所有节点到部分节点(关系名称可以表示为HasParts[包含]、Contains[组成]等),也可以是从部分节点到全部节点(关系名称为PartOf[属于]、consinistion [属于]等)

在样本模型中,学校可以有多个社区,节点“社区”和节点“学校”具有从部分节点到整体节点的包含关系。

规则52个或多个实体集之间具有父代和子代实体集继承关系的建模规则父子继承关系根据规则2的建模规则与1:1或1:N的关系匹配。 在图模型中,关系的方向可以用父代到子代或子代到父代,关系名称可以用SubClass[是子集]来表示。 关系名称可以用ISA[是的指令集]、SubClassOf[是的子集]等进行语义记述。

在示例模型中,节点“位置”和节点“社区”具有继承关系。

图数据库建模应用实例某大型制造企业制造某系列轻型摩托车

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

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

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

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

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

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

建模后如下图所示。

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

图数据库实现与检索技术

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

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

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

操作示例Cypher图数据库操作语言创建结点“员工”并添加类型和属性CREATE (n:员工{工号:‘102’,姓名:‘mtdsb’,性别:‘男’,部门:‘仓管部’})在结点“员工”的属性“姓名”上创建单属性索引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五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。