在这个由三部分组成的系列的第一篇文章中,我们将学习图形数据库的基础知识,它为地球上一些最大的数据池提供支持。对于海量的各种非结构化信息,图数据库已经成为帮助收集、管理和搜索大量数据的技术。在这个由三部分组成的系列中,我们将使用开源图形数据库软件Neo4j探索图形数据库。在本文中,我将向您展示图数据库的基础知识,并帮助您快速理解概念模型。在第二部分中,我将向您展示如何启动Neo4j数据库并使用内置的浏览器工具用一些数据填充它。并且,在本系列的最后一篇文章中,我们将探讨在我们的开发工作中使用的一些Neo4j编程库。掌握图形数据库的概念模型很有用,因此我们将从这里开始。图数据库中只存储两种数据:node节点和edge。节点是实体:例如人、发票、电影、书籍或其他具体事物。这些在某种程度上相当于关系数据库中的记录或行。边缘名称关系:连接节点的概念、事件或事物。在关系数据库中,这些关系通常存储在带有链接字段的数据库行中。在图形数据库中,它们本身就很有用,可以自行搜索的对象。节点和边都可以具有可搜索的属性。例如,如果你的节点代表人,他们可能有姓名、性别、出生日期、身高等属性。而边的属性可能描述两个人之间的关系何时建立、他们相遇的情况,或者关系的性质。这里有一张图表可以帮助您形象化:图表数据库图像1在这张图表中,您知道JaneDoe有了新丈夫John;一个女儿(来自她以前的关系)玛丽史密斯和朋友罗伯特和朗达罗伊。Roes有一个儿子Ryan,正在和MarySmith约会。看看它怎么运作?每个节点代表一个独立于其他节点的人。您需要找到的有关该人的所有信息都可以存储在节点的属性中。边描述人与人之间的关系,正如您在程序中所需要的那样。关系是单向的,不能无向,但这很好。由于数据库可以以相同的速度遍历两个方向,而方向可以忽略,所以你只需要定义一次这个关系。如果您的程序需要方向关系,您可以自由使用它们,但如果隐含双向性则不能。另一件需要注意的事情是图形数据库本质上是无模式的。这与关系数据库不同,关系数据库的每一行都有一组列表,添加新字段需要大量开发和升级工作。每个节点可以有一个label标签;对于大多数程序,您需要“键入”此标签,它类似于典型关系数据库中的表名。标签允许您区分不同的节点类型。如果需要添加新的标签或属性,只需修改程序即可使用!使用图形数据库,您可以直接开始使用新的属性和标签,节点将在创建或编辑时选择它们。无需转换东西;只需在您的代码中使用它们。在此处的示例中,您可以看到我们知道Jane和Mary最喜欢的颜色以及Mary的出生日期,但其他人不知道。系统不需要知道它;用户可以在正常使用程序期间访问节点时向节点添加信息(属性)。作为开发人员,这是一个有用的功能。您可以向节点处理的表单添加新的标签或属性并开始使用它,而无需更改数据库架构。对于没有此属性的节点,将不会显示任何内容。您可以使用任何类型的数据库来编写表单代码,但是您可以放弃很多在关系数据库中进行的后端工作。让我们添加一些新的信息:Graphdatabaseimage2,定义一个新的节点类型这是一个新的节点类型,代表一个位置,以及一些相关的关系。现在我们看到JohnDoe和他的妻子Jane出生在加利福尼亚州的佩塔卢马,出生在德克萨斯州的大草原城。他们现在住在德克萨斯州的赛普拉斯,简在附近的休斯顿工作。RyanRoe缺少城市关系对数据库来说不是什么大问题,我们只是不知道这些信息。随着用户输入更多数据,数据库可以轻松获取和添加新数据,根据需要创建新节点和关系。了解节点和边应该足以让您开始使用图形数据库。如果您像我一样,您已经在考虑如何在图表中重构您的程序。在本系列的下一篇文章中,我将向您展示如何安装Neo4j、插入数据和进行一些基本搜索。
