图形数据库neo4j_Neo4j的图形数据库基础

图形数据库neo4j

对于非常庞大的各种非结构化信息集合,图形数据库已经成为一种帮助收集,管理和搜索大数据集的技术。 在这个由三部分组成的系列文章中,我们将使用开源图形数据库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,插入数据以及进行一些基本搜索。

翻译自: https://opensource.com/article/17/7/fundamentals-graph-databases-neo4j

图形数据库neo4j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值