《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.
節點是實體:諸如人物、發票、電影、書籍或其他具體事物.這些有些等同于關系數據庫中的記錄或行.
邊名關系:連接節點的概念、事件或事物.在關系數據庫中,這些關系通常存儲在具有鏈接字段的數據庫行中.在圖數據庫中,它們本身就是有用的,是可以以其自己的權限搜索的對象.
節點和邊都可以擁有可搜索的屬性.例如,如果你的節點代表人,他們可能擁有名字、性別、出生日期、身高等屬性.而邊的屬性可能描述了兩個人之間的關系何時建立,見面的情況或關系的性質.
這是一個幫助你可視化的圖表:
Graph database image 1
在這張圖中,你知道 Jane Doe 有一個新的丈夫 John;一個女兒(來自她以前的夫妻關系)Mary Smith 和朋友 Robert 和 Rhonda Roe.Roes 有一個兒子 Ryan,他正在與 Mary Smith 約會.
看看它怎么工作?每個節點代表一個獨立于其他節點的人.你需要找到關于那個人的一切都可以存儲在節點的屬性中.邊描述了人們之間的關系,這與你在程序中需要的一樣多.
關系是單向的,且不能是無向的,但這沒有問題.由于數據庫可以以相同的速度遍歷兩個方向,并且方向可以忽略,你只需要定義一次此關系.如果你的程序需要定向關系,則可以自由使用它們,但如果雙向性是暗含的,則不需要.
另外需要注意的是,圖數據庫本質上是無 schema 的.這與關系數據庫不同,關系數據庫每行都有一組列表,并且添加新的字段會給開發和升級帶來很多工作.
每個節點都可以擁有一個標簽label;對于大多數程序你需要“輸入”這個標簽,是對典型的關系數據庫中的表名的模擬.標簽可以讓你區分不同的節點類型.如果你需要添加新的標簽或屬性,修改程序來用它就行!
使用圖數據庫,你可以直接開始使用新的屬性和標簽,節點將在創建或編輯時獲取它們.不需要轉換東西;只需在你的代碼中使用它們即可.在這里的例子中,你可以看到,我們知道 Jane 和 Mary 最喜歡的顏色和 Mary 的出生日期,但是別人沒有(這些屬性).這個系統不需要知道它;用戶可以在正常使用程序的過程中訪問節點時為其添加信息(屬性).
作為一名開發人員,這是一個有用的特性.你可以將新的標簽或屬性添加到由節點處理的表單中并開始使用它,而不必進行數據庫 schema 的修改.對于沒有該屬性的節點,將不顯示任何內容.你可以使用任何一種類型的數據庫來為表單進行編碼,但是你可以放下在關系型數據庫中要進行的許多后端工作了.
讓我們添加一些新的信息:
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
維易PHP培訓學院每天發布《Neo4j 圖數據庫基礎》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9167.html