當前位置:
首頁 > 知識 > Neo4j 圖資料庫基礎

Neo4j 圖資料庫基礎

Neo4j 圖資料庫基礎


對於海量的各種非結構化信息來說,圖資料庫已經成為幫助收集、管理和搜索大量數據的技術。在本文中,我將向你展示圖資料庫的基礎知識,幫助你快速了解概念模型。 -- Ruth Holloway

編譯自: https://opensource.com/article/17/7/fundamentals-graph-databases-neo4j

作者: Ruth Holloway

譯者: geekpi

在這個三篇系列文章的第一篇文章中,我們將學習圖資料庫graph database的基礎知識,它支持了這地球上最大的一些數據池。

對於海量的各種非結構化信息來說,圖資料庫已經成為幫助收集、管理和搜索大量數據的技術。在這三篇系列文章中,我們將使用開源圖資料庫軟體 Neo4j[1] 來研究圖資料庫。

在本文中,我將向你展示圖資料庫的基礎知識,幫助你快速了解概念模型。在第二篇中,我將向你展示如何啟動 Neo4j 資料庫,並使用內置的瀏覽器工具填充一些數據。而且,在本系列的最後一篇文章中,我們將探討一些在開發工作中使用的 Neo4j 編程庫。

掌握圖資料庫的概念模型是有用的,所以我們從那裡開始。圖資料庫中只存儲兩種數據:節點node和邊edge。

  • 節點是實體:諸如人物、發票、電影、書籍或其他具體事物。這些有些等同於關係資料庫中的記錄或行。

  • 邊名關係:連接節點的概念、事件或事物。在關係資料庫中,這些關係通常存儲在具有鏈接欄位的資料庫行中。在圖資料庫中,它們本身就是有用的,是可以以其自己的許可權搜索的對象。

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

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

Neo4j 圖資料庫基礎

Graph database image 1

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

看看它怎麼工作?每個節點代表一個獨立於其他節點的人。你需要找到關於那個人的一切都可以存儲在節點的屬性中。邊描述了人們之間的關係,這與你在程序中需要的一樣多。

關係是單向的,且不能是無向的,但這沒有問題。由於資料庫可以以相同的速度遍歷兩個方向,並且方向可以忽略,你只需要定義一次此關係。如果你的程序需要定向關係,則可以自由使用它們,但如果雙向性是暗含的,則不需要。

另外需要注意的是,圖資料庫本質上是無 schema 的。這與關係資料庫不同,關係資料庫每行都有一組列表,並且添加新的欄位會給開發和升級帶來很多工作。

每個節點都可以擁有一個標籤label;對於大多數程序你需要「輸入」這個標籤,是對典型的關係資料庫中的表名的模擬。標籤可以讓你區分不同的節點類型。如果你需要添加新的標籤或屬性,修改程序來用它就行!

使用圖資料庫,你可以直接開始使用新的屬性和標籤,節點將在創建或編輯時獲取它們。不需要轉換東西;只需在你的代碼中使用它們即可。在這裡的例子中,你可以看到,我們知道 Jane 和 Mary 最喜歡的顏色和 Mary 的出生日期,但是別人沒有(這些屬性)。這個系統不需要知道它;用戶可以在正常使用程序的過程中訪問節點時為其添加信息(屬性)。

作為一名開發人員,這是一個有用的特性。你可以將新的標籤或屬性添加到由節點處理的表單中並開始使用它,而不必進行資料庫 schema 的修改。對於沒有該屬性的節點,將不顯示任何內容。你可以使用任何一種類型的資料庫來為表單進行編碼,但是你可以放下在關係型資料庫中要進行的許多後端工作了。

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

Neo4j 圖資料庫基礎

Graph database image 2, defining a new type of nod

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

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



via: https://opensource.com/article/17/7/fundamentals-graph-databases-neo4j

作者:Ruth Holloway[2] 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

  • [1]: Neo4j - https://neo4j.com/

  • [2]: Ruth Holloway - https://opensource.com/users/druthb

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

熱烈祝賀!LCTT 第一位達成翻譯 500 篇成就的譯者 geekpi!
6 個學習 OpenStack 的新指南和教程
Linus Torvalds 說:談論技術創新是愚蠢的,閉上嘴把事情做好
成為一名軟體開發者你應該學習哪種語言?
與開放社區討論法律事宜的 7 種方式

TAG:Linux技術 |

您可能感興趣

華為全球發布AI-Native資料庫 重定義數據基礎設施
華為全球發布AI-Native資料庫 重定義數據基礎設施
基礎設施建設公司HG InfraEngineering Ltd完成13.859億盧比融資
Moto E5 Plus基礎規格現身Geekbench 搭載驍龍430
20分鐘了解TensorFlow基礎
Fintech 54億美元融資創記錄,基礎設施是核心焦點 | CBInsights 2018Q1報告(附下載)
js-generator基礎
華為全球發布AI-Native資料庫GaussDB,解決數據基礎設施三大挑戰
python基礎數據類型
8.16 VR掃描:為數字化轉型業務打基礎,Valence收購AR/VR工作室8ninths
Ember.js-模版篇 Handlerbars基礎
【新機】Moto E5 Plus基礎規格現身Geekbench 18:9比例屏/驍龍430/3GB運存
以 OG 作基礎—Nike Air Max 95 推出全新「Aluminum」配色
Chapter 4 TensorFlow基礎知識
TensorFlow基礎筆記
Arm推出Neoverse N1與E1兩款基礎設施等級平台
加大版「Swoosh」!Nike Air Force 1 Low基礎款推陳出新!
Android框架層基礎JNI
day23.數據結構與演算法基礎Python教程
SpringBoot配置基礎攔截器