自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Neo4j圖數(shù)據(jù)庫基礎(chǔ)

數(shù)據(jù)庫 其他數(shù)據(jù)庫
在本文中,我將向你展示圖數(shù)據(jù)庫的基礎(chǔ)知識,幫助你快速了解概念模型。在第二篇中,我將向你展示如何啟動 Neo4j 數(shù)據(jù)庫,并使用內(nèi)置的瀏覽器工具填充一些數(shù)據(jù)。而且,在本系列的最后一篇文章中,我們將探討一些在開發(fā)工作中使用的 Neo4j 編程庫。

Neo4j圖數(shù)據(jù)庫基礎(chǔ)

在這個三篇系列文章的***篇文章中,我們將學(xué)習(xí)圖數(shù)據(jù)庫(graph database)的基礎(chǔ)知識,它支持了這地球上***的一些數(shù)據(jù)池。

對于海量的各種非結(jié)構(gòu)化信息來說,圖數(shù)據(jù)庫已經(jīng)成為幫助收集、管理和搜索大量數(shù)據(jù)的技術(shù)。在這三篇系列文章中,我們將使用開源圖數(shù)據(jù)庫軟件 Neo4j 來研究圖數(shù)據(jù)庫。

在本文中,我將向你展示圖數(shù)據(jù)庫的基礎(chǔ)知識,幫助你快速了解概念模型。在第二篇中,我將向你展示如何啟動 Neo4j 數(shù)據(jù)庫,并使用內(nèi)置的瀏覽器工具填充一些數(shù)據(jù)。而且,在本系列的***一篇文章中,我們將探討一些在開發(fā)工作中使用的 Neo4j 編程庫。

掌握圖數(shù)據(jù)庫的概念模型是有用的,所以我們從那里開始。圖數(shù)據(jù)庫中只存儲兩種數(shù)據(jù):節(jié)點node和邊edge。

  • 節(jié)點是實體:諸如人物、發(fā)票、電影、書籍或其他具體事物。這些有些等同于關(guān)系數(shù)據(jù)庫中的記錄或行。
  • 邊名關(guān)系:連接節(jié)點的概念、事件或事物。在關(guān)系數(shù)據(jù)庫中,這些關(guān)系通常存儲在具有鏈接字段的數(shù)據(jù)庫行中。在圖數(shù)據(jù)庫中,它們本身就是有用的,是可以以其自己的權(quán)限搜索的對象。

節(jié)點和邊都可以擁有可搜索的屬性。例如,如果你的節(jié)點代表人,他們可能擁有名字、性別、出生日期、身高等屬性。而邊的屬性可能描述了兩個人之間的關(guān)系何時建立,見面的情況或關(guān)系的性質(zhì)。

這是一個幫助你可視化的圖表:

 

 

Graph database image 1

在這張圖中,你知道 Jane Doe 有一個新的丈夫 John;一個女兒(來自她以前的夫妻關(guān)系)Mary Smith 和朋友 Robert 和 Rhonda Roe。Roes 有一個兒子 Ryan,他正在與 Mary Smith 約會。

看看它怎么工作?每個節(jié)點代表一個獨立于其他節(jié)點的人。你需要找到關(guān)于那個人的一切都可以存儲在節(jié)點的屬性中。邊描述了人們之間的關(guān)系,這與你在程序中需要的一樣多。

關(guān)系是單向的,且不能是無向的,但這沒有問題。由于數(shù)據(jù)庫可以以相同的速度遍歷兩個方向,并且方向可以忽略,你只需要定義一次此關(guān)系。如果你的程序需要定向關(guān)系,則可以自由使用它們,但如果雙向性是暗含的,則不需要。

另外需要注意的是,圖數(shù)據(jù)庫本質(zhì)上是無 schema 的。這與關(guān)系數(shù)據(jù)庫不同,關(guān)系數(shù)據(jù)庫每行都有一組列表,并且添加新的字段會給開發(fā)和升級帶來很多工作。

每個節(jié)點都可以擁有一個標(biāo)簽label;對于大多數(shù)程序你需要“輸入”這個標(biāo)簽,是對典型的關(guān)系數(shù)據(jù)庫中的表名的模擬。標(biāo)簽可以讓你區(qū)分不同的節(jié)點類型。如果你需要添加新的標(biāo)簽或?qū)傩裕薷某绦騺碛盟托?

使用圖數(shù)據(jù)庫,你可以直接開始使用新的屬性和標(biāo)簽,節(jié)點將在創(chuàng)建或編輯時獲取它們。不需要轉(zhuǎn)換東西;只需在你的代碼中使用它們即可。在這里的例子中,你可以看到,我們知道 Jane 和 Mary 最喜歡的顏色和 Mary 的出生日期,但是別人沒有(這些屬性)。這個系統(tǒng)不需要知道它;用戶可以在正常使用程序的過程中訪問節(jié)點時為其添加信息(屬性)。

作為一名開發(fā)人員,這是一個有用的特性。你可以將新的標(biāo)簽或?qū)傩蕴砑拥接晒?jié)點處理的表單中并開始使用它,而不必進行數(shù)據(jù)庫 schema 的修改。對于沒有該屬性的節(jié)點,將不顯示任何內(nèi)容。你可以使用任何一種類型的數(shù)據(jù)庫來為表單進行編碼,但是你可以放下在關(guān)系型數(shù)據(jù)庫中要進行的許多后端工作了。

讓我們添加一些新的信息:

 

 

Graph database image 2, defining a new type of node

這是一個新的節(jié)點類型,它代表一個位置,以及一些相關(guān)關(guān)系?,F(xiàn)在我們看到 John Doe 出生在加利福尼亞州的 Petaluma,而他的妻子 Jane 則出生在德克薩斯州的 Grand Prairie。 他們現(xiàn)在住在得克薩斯州的賽普拉斯,因為 Jane 在附近的休斯頓工作。Ryan Roe 缺乏城市關(guān)系對數(shù)據(jù)庫來說沒有什么大不了的事情,我們不知道那些信息而已。當(dāng)用戶輸入更多數(shù)據(jù)時,數(shù)據(jù)庫可以輕松獲取新數(shù)據(jù)并添加新數(shù)據(jù),并根據(jù)需要創(chuàng)建新的節(jié)點和關(guān)系。

了解節(jié)點和邊應(yīng)該足以讓你開始使用圖形數(shù)據(jù)庫。如果你像我一樣,已經(jīng)在考慮如何在一個圖中重組你的程序。在本系列的下一篇文章中,我將向你展示如何安裝 Neo4j、插入數(shù)據(jù),并進行一些基本的搜索。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2011-07-26 12:48:52

neo4j圖數(shù)據(jù)庫

2022-04-13 11:32:45

Neo4j圖數(shù)據(jù)庫

2022-11-18 17:53:03

Neo4j

2018-05-03 15:40:33

2011-09-22 16:46:02

Neo4j圖形數(shù)據(jù)庫數(shù)據(jù)庫

2018-05-16 08:26:39

知識圖譜Neo4j

2021-12-27 07:31:37

JavaNeo4J數(shù)據(jù)庫

2022-01-17 17:10:18

Neo4j 圖數(shù)據(jù)庫

2022-01-17 14:34:59

數(shù)據(jù)平臺數(shù)據(jù)數(shù)字化

2024-06-03 10:53:18

LLMRAGGraphRAG

2021-12-03 20:33:08

計算

2022-02-15 08:22:28

Neo4jSpring數(shù)據(jù)庫

2021-12-22 07:31:18

RedisNoSQL數(shù)據(jù)庫

2024-08-08 08:31:32

SpringNeo4j優(yōu)化

2017-04-24 20:30:47

數(shù)據(jù)庫工具導(dǎo)入數(shù)據(jù)

2015-03-09 11:11:23

圖形數(shù)據(jù)庫數(shù)據(jù)庫流行度DB-engines

2015-09-28 08:57:06

Ruby APPNeo4j

2021-10-27 17:20:23

圖數(shù)據(jù)數(shù)據(jù)庫

2023-10-12 08:59:52

Docker AI生成式 AI

2022-05-20 11:54:28

Neo4jNeo4j數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號