7.5-图形数据库-1_第1页
7.5-图形数据库-1_第2页
7.5-图形数据库-1_第3页
7.5-图形数据库-1_第4页
7.5-图形数据库-1_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7.5 图形数据库图形数据库的基本概念图数据模型Neo4j图形数据库Neo4j数据模型【本节学习目标】一、图形数据库的基本概念互联网+、社交网络,智能推荐等的大规模兴起和繁荣。寻找直接朋友或是寻找朋友的朋友这样的遍历查询-图数据库。 图数据库源起欧拉和图理论,面向/基于图的数据库。以“图”数据结构存储和查询数据,数据模型以节点和关系(边)体现,也处理键值对。图特征:包含节点和边;节点上有属性(键值对);边有名字和方向,开始结束节点;边可有属性。图是顶点和边的集合,或图是一些节点和关联联系(relationship)的集合。一、图形数据库的基本概念图元素G=(V, E) , V=vertex(节

2、点) , E=edge(边) 。节点和关系属性;节点多个标签(类别);一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性组成的有向图。顶点-节点(Node),边-关系(Relationship)点和关系-实体,节点是独立存在的,节点有设置标签,相同标签节点属于一个分组或集合;关系通过关系类型来分组,类型相同的关系属于同一个集合。关系是有向的图数据库可处理大量的、复杂的、互联的、多变的网状数据,适用于社交网络、实时推荐、银行交易环路、金融征信系统等广泛的领域二、图数据模型图就是二元关系。利用一系列由线(称为边)或箭头(称为弧)连接的点(称为节点)有向图: 节点

3、集合,弧集合 -节点的有序对。弧(u,v)表示为uv。v弧的头部 u弧的尾部。从某节点通向其自身的弧,叫作自环(loop)。当uv,u是v的前导(predecessor),v是u的后继(successor)。为图的各节点附加标号(label)。标号是绘制在所对应的节点附近的。路径是一列节点(v1,v2,vk),vivi+1,i=1,2,k-1。该路径的长度是k-1,也就是这条路径上弧的数量。二、图数据模型有环图和无环图: 环路(cycle)起点和终点为同一节点的长度不为0的路径。环路长度=路径长度。环路的起点和终点可以是其中的任一节点。如果环路(v1,v2,vk,v1)的节点v1、vk中没有一

4、个出现一次以上,就说该环路是简单环路,简单环路的唯一重复出现在最终节点处。非简单环路: (1)v出现了3次或3次以上;(2) 存在某个v之外的节点u,它出现了两次,也就是,环路肯定是(v,u,u,v)这样的。二、图数据模型图的实现-两种。一种叫作邻接表,大致上与二元关系的实现方法类似。第二种叫作邻接矩阵,是一种表示二元关系的新方法,图的应用包括最短路径、可达集、 各种搜索算法等。这些都给图的应用提供理论基础。 。二、图数据模型结点集和连接结点的关系。结点集就是图中一系列结点的集合,连接结点的关系则是图形数据库所特有的组成。每个结点仍具有标示自己所属实体类型的标签,也既是其所属的结点集,并记录一

5、系列描述该结点特性的属性。通过关系来连接各个结点。因此各个结点集的抽象实际上与关系型数据库中的各个表的抽象还是有些类似的二、图数据模型如果两个实体之间拥有多种关系,就需要在它们之间创建多个关联表。在一个图形数据库中,只需要标明两者之间存在着不同的关系,例如用DirectBy关系指向电影的导演,或用ActBy关系来指定参与电影拍摄的各个演员。三、Neo4J图数据库Neo4j是开源的用Java实现图数据库,有两种运行方式,一种是服务的方式,对外提供REST接口;另外一种是嵌入式模式,数据以文件的形式存放在本地,直接对本地文件进行操作。Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储

6、在网络上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中但是可以享受到具备完全的事务特性、企业级的数据库的所有好处。Neo4J特点因其嵌入式、高性能、轻量级等优势,越来越受到关注。图形数据结构, 在一个图中包含两种基本的数据类型:Nodes(节点) 和 Relationships(关系)。Nodes 和 Relationships 包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构。2. 查询语言Neo4j查询语言名为Cyph

7、er, 不使用schema,可以满足任何形式的需求, 对于高度关联的数据(图形数据)的查询快速快, 它的实体与关系结构非常自然地切合人类的直观感受,支持兼容ACID的事务操作, 提供了一个高可用性模型,以支持大规模数据量的查询,支持备份、数据局部性以及冗余, 提供了一个可视化的查询控制台。四 Nei4J的数据模型每个实体都有ID(Identity)唯一标识,每个节点由标签(Lable)分组,每个关系都有一个唯一的类型,属性图模型的基本概念有:实体(Entity)是指节点(Node)和关系(Relationship);每个实体都有零个、一个或多个属性,一个实体的属性键是唯一的;每个节点都有零个、

8、一个或多个标签,属于一个或多个分组;每个关系都只有一个类型,用于连接两个节点;路径(Path)是指由起始节点和终止节点之间的实体(节点和关系)构成的有序组合;标记(Token)是非空的字符串,用于标识标签(Lable),关系类型(Relationship Type),或属性键(Property Key);标签:用于标记节点的分组,多个节点可以有相同的标签,一个节点可以有多个Lable,Lable用于对节点进行分组;关系类型:用于标记关系的类型,多个关系可以有相同的关系类型 Neo4J数据模型属性键:用于唯一标识一个属性;属性(Property)是一个键值对(Key/Value Pair),每个

9、节点或关系可以有一个或多个属性;属性值可以是标量类型,或这标量类型的列表(数组)。 Neo4J数据模型在下面的图形中,存在三个节点和两个关系共5个实体;Person和Movie是Lable,ACTED_ID和DIRECTED是关系类型,name,title,roles等是节点和关系的属性。实体包括节点和关系,节点有标签和属性,关系是有向的,链接两个节点,具有属性和关系类型。 Neo4J数据模型1,实体在示例图形中,包含三个节点,分别是:Name =Tom Hanks Name=Robert Zemeckis title=Forrest Group Born=1956 born=1951 rel

10、eased=1994 2 关系: 包含两个关系是两个关系类型ACTED_IN和DIRECTED,两个关系是连接name属性为Tom Hank节点和Movie节点的关系,和连接name属性为Robert Zemeckis的节点和Movie节点的关系。 Neo4J数据模型2,标签(Lable)在图形结构中,标签用于对节点进行分组,相当于节点的类型,拥有相同标签的节点属于同一个分组。一个节点可以拥有零个、一个或多个标签,因此,一个节点可以属于多个分组。对分组进行查询,能够缩小查询的节点范围,提高查询的性能。在示例图形中,有两个标签Person和Movie,两个节点是Person,一个节点是Movie,标签有点像节点的类型,每个节点可以有多个标签。 Neo4J数据模型 3,属性(Property), 是一个键值对(Key/Value),用于为节点或关系提供信息。每个节点都由name属性,用于命名节点。在示例图形中,Person节点有两个属性name和born,Movie节点有两个属性:title和released。关系类型ACTED_IN有一个属性:roles(扮演的角色),该属性值是一个数组,而关系类型为DIRECTED的关系没有属性。遍历(Traversal)一个图形,是指沿着关系及其方向,访问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论