博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图形数据库neo4j_Neo4j的图形数据库基础
阅读量:2526 次
发布时间:2019-05-11

本文共 1611 字,大约阅读时间需要 5 分钟。

图形数据库neo4j

对于非常庞大的各种非结构化信息集合,图形数据库已经成为一种帮助收集,管理和搜索大数据集的技术。 在这个由三部分组成的系列文章中,我们将使用开源图形数据库探索图形数据库。

在本文中,我将向您展示图形数据库的基础知识,使您快速掌握概念模型。 在第二篇中,我将向您展示如何启动Neo4j数据库并使用内置的浏览器工具填充一些数据。 并且,在本系列的第三篇也是最后一篇文章中,我们将探索几个在您的开发工作中使用Neo4j的编程库。

掌握图形数据库的概念模型非常有用,因此我们将从这里开始。 图数据库中仅存储两种数据: nodeedge

  • 节点是实体:诸如人,发票,电影,书籍或其他具体事物之类的事物。 这些在某种程度上等效于关系数据库中的记录或行。
  • 边名称关系:连接节点的概念,事件或事物。 在关系数据库中,这些关系通常通过链接字段存储在数据库行中。 在图形数据库中,它们本身就是有用的,可搜索的对象。

节点和边都可以具有可搜索的属性 。 例如,如果您的节点代表人,则它们可能拥有诸如姓名,性别,出生日期,身高等属性。 边缘属性可以描述何时在两个人之间建立关系,开会的环境或关系的性质。

这是一个图表,可以帮助您直观地看到这一点:

Graph database image 1

在此图中,您了解到简·多伊有一个新丈夫约翰; 一个女儿(来自以前的恋爱关系)玛丽·史密斯; 和朋友罗伯特和朗达·罗伊。 es子有一个儿子瑞安(Ryan),他与玛丽·史密斯(Mary Smith)约会。

看看它怎么运作? 每个节点代表一个独立于其他节点的人。 您需要查找的有关人的所有信息都可以存储在节点的属性中。 边缘描述了人与人之间的关系,并提供了应用程序所需的详细信息。

关系是单向的,不能是无向的,但这没问题。 由于数据库可以以相同的速度遍历两个方向,并且可以忽略方向,因此只需定义一次此关系。 如果您的应用程序需要方向关系,则可以自由使用它们,但是如果隐含双向性,则不需要。

要注意的另一件事是,图数据库本质上是无模式的。 这与关系数据库不同,在关系数据库中,每行都有一组字段列表,添加新字段是开发和升级的一项重大投资。

每个节点可以拥有一个标签 ; 此标签是大多数应用程序所需的所有“类型”,并且是典型关系数据库中表名的类似物。 标签使您可以区分不同的节点类型。 如果您需要添加新标签或属性,请更改您的应用程序以开始使用它!

使用图形数据库,您可以简单地开始使用新的属性和标签,并且节点将在创建或编辑它们时获取它们。 无需进行转换。 只需在代码中开始使用它们即可。 在此处的示例中,您可以看到我们知道Jane和Mary最喜欢的颜色以及Mary的生日,但其他人都不知道。 系统不需要知道这一点。 用户可以在应用程序正常使用过程中访问节点时随意添加该信息。

作为开发人员,这是一件有用的事情。 不必处理数据库架构更改,只需将新标签或属性添加到处理节点的表单中并开始使用它。 对于不具有该属性的节点,不显示任何内容。 您必须使用任何一种数据库类型对表单进行编码,但是您会丢弃很多关系数据库所需的后端工作。

让我们添加一些新信息:

Graph database image 2, defining a new type of node

这是一种新型的节点,代表一个位置和一些相关关系。 现在我们看到John Doe出生于加利福尼亚州的Petaluma,而他的妻子Jane则出生于德克萨斯州的大草原。 他们俩现在都住在德克萨斯州的赛普拉斯,因为简在附近的休斯敦工作。 与Ryan Roe缺乏城市关系对数据库没有什么大不了,我们只是还不知道这些信息。 当应用程序用户输入更多数据时,该数据库可以轻松地获取新数据并将其添加,并根据需要创建新的节点和关系。

了解节点和边缘应该足以让您开始使用图形数据库。 如果您像我一样,就已经在考虑如何处理您所使用的应用程序。 在本系列的下一篇文章中,我将向您展示如何安装Neo4j,插入数据以及进行一些基本搜索。

翻译自:

图形数据库neo4j

转载地址:http://lgszd.baihongyu.com/

你可能感兴趣的文章
用74HC165读8个按键状态
查看>>
jpg转bmp(使用libjpeg)
查看>>
linear-gradient常用实现效果
查看>>
sql语言的一大类 DML 数据的操纵语言
查看>>
VMware黑屏解决方法
查看>>
JS中各种跳转解析
查看>>
JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
查看>>
Ecust OJ
查看>>
P3384 【模板】树链剖分
查看>>
Thrift源码分析(二)-- 协议和编解码
查看>>
考勤系统之计算工作小时数
查看>>
4.1 分解条件式
查看>>
Equivalent Strings
查看>>
flume handler
查看>>
收藏其他博客园主写的代码,学习加自用。先表示感谢!!!
查看>>
H5 表单标签
查看>>
su 与 su - 区别
查看>>
C语言编程-9_4 字符统计
查看>>
在webconfig中写好连接后,在程序中如何调用?
查看>>
限制用户不能删除SharePoint列表中的条目(项目)
查看>>