01 知识图谱基础

1 基本概念

  • 图形是一组节点和连接这些节点的关系
    • 图形以属性的形式将数据存储在节点和关系中;
    • 属性是用于表示数据的键值对;
  • 图库的主要作用:
    • 主要用于存储更多的连接数据;
    • RDBMS存储更多连接的数据,不能提供用于遍历大量数据的适当性能;在这情况下,Graph Database提高了应用程序性能;
  • 在图形理论中,我们可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示
    • 单个节点:不包含任何属性
1567565195539.png
  • 带有属性的节点:属性是一个名称:值对
1567565223340.png
  • 两个节点之间创建关系:
1567565244714.png
  • 节点关系:
1567565280118.png
  • 单向关系:ABC到PQR
  • 双向关系: ABC到XYZ

2 数据模型

2.1 属性图模型规则

  • 表示节点,关系和属性中的数据
  • 节点和关系都包含属性
  • 关系连接节点
  • 属性是键值对
  • 节点用圆圈表示,关系用方向键表示
  • 关系具有方向:单向和双向。
  • 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”

Neo4j图数据库需要注意的事项:

  1. “关系应该是方向性的”:在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息;
  2. 将其所有数据存储在节点和关系中。不需要任何额外的RRBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式;
  3. 本机GPE(图形处理引擎)引擎来使用它的本机图存储格式

2.2 主要构建模块

  • 节点
  • 关系
  • 属性
1567565602658.png

这里我们使用圆圈表示节点。 使用箭头的关系。 关系是有方向性的。 我们可以用Properties(键值对)来表示Node的数据。 在这个例子中,我们在Node的Circle中表示了每个Node的Id属性。

3 Neo4j 特点和优势

3.1 特点

  • SQL就像简单的查询语言Neo4j CQL
  • 它遵循属性图数据模型
  • 它通过使用Apache Lucence支持索引
  • 它支持UNIQUE约束
  • 它包含一个用于执行CQL命令的UI:Neo4j数据浏览器
  • 它支持完整的ACID(原子性,一致性,隔离性和持久性)规则
  • 它采用原生图形库与本地GPE(图形处理引擎)
  • 它支持查询的数据导出到JSON和XLS格式
  • 它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问
  • 它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本
  • 它支持两种Java API:Cypher API和Native Java API来开发Java应用程序

3.2 优点

  • 它很容易表示连接的数据
  • 检索/遍历/导航更多的连接数据是非常容易和快速的
  • 它非常容易地表示半结构化数据
  • Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
  • 它使用简单而强大的数据模型
  • 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

3.3 缺点或限制

  • AS的Neo4j 2.1.3最新版本,它具有支持节点数,关系和属性的限制。
  • 它不支持Sharding。

4 Neo4j构建模块

Neo4j主要有以下构建模块:

  • 节点:图标的基本单位,具有键值对的属性
    • 如下是Node Name = “Employee”, 包含一组属性作为键值对
1567578611502.png
  • 属性:描述图节点和关系的键值对

    • Key = 值
    • Key是字符串
    • 值可以用任意Neo4j数据类型表示
  • 关系:另一个主要构建块。 它连接两个节点

    • Emp和Dept是两个不同的节点
    • WORKS_FOR”是Emp和Dept节点之间的关系
    • 从Emp到Dept的箭头标记
    • 每个关系包含一个起始节点和一个结束节点,这里“Emp”是一个起始节点,Dept”是结束节点。
    • 由于该关系箭头标记表示从“Emp”节点到“Dept”节点的关系,该关系被称为“进入关系”到“Dept”节点
    • 像节点一样,关系也可以包含属性作为键值对。
    • 这里的“WORKS_FOR”关系有一个属性作为键值对,它代表了这种关系的一个ID。
1567578987039.png
  • 标签:

    • 将一个公共名称与一组节点或关系相关联
    • 节点或关系可以包含一个或多个标签
    • 可以为现有节点或关系创建新标签
    • 可以从现有节点或关系中删除现有标签
    • 从上图可以观察到:左侧节点都有一个标签:“EMP”,而右侧节点都有一个标签:“Dept”。
    • 两个节点之间的关系,也有一个标签:“WORKS_FOR”
  • 数据浏览器:

    • 访问链接:http://localhost:7474/browser/
    • Neo4j数据浏览器用于执行CQL命令并查看输出输出
    • 在美元符号后键入命令,然后单击“执行”按钮运行命令
    • 与Neo4j数据库服务器交互
    • 使用“VI视图”按钮以图形格式查看结果。 以“UI视图”格式显示结果。
    • 使用“网格视图”按钮在网格视图中查看结果
      • CSV
      • JSON
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容