圖數據庫Neo4j的介紹與使用

圖數據庫Neo4j的介紹與使用

Neo4j Neo4j 也可以被看作是一個高性能的圖引擎,該引擎具有成熟數據庫的所有特性。

接下來我們來一起學習一下Neo4j的安裝和使用方法吧!


知識點
Neo4j 的安裝
Neo4j 數據遷移
Neo4j Browser 的使用


圖數據庫的概念

圖數據庫的基本概念是圖,在這裡我們用一個簡單的例子來介紹圖:

圖例同時該用戶參加了第23 期Python 樓賽,獲得了第二名。

另一名用戶為雲課管理員,用戶ID 為1。

圖片描述

  • 節點

節點通常用於表示節點是組成圖的最小單位。

  • 標籤

標籤用於分類節點,如所有用來表示藍橋雲課課程的節點都可以使用標籤:課程進行標記。在Neo4j 中,就可以根據不同標籤類型進行特定節點的查詢。

一個節點可以有多個標籤。如用戶Gods_Dusk,既是藍橋雲課用戶,也是藍橋雲課作者;用戶雲課管理員,既是藍橋雲課用戶,也是藍橋雲課員工。

  • 關係

圖中的邊表示關係,關係連接兩個節點,如

關係具有方向性,如《圖數據庫Neo4j 基礎入門》屬於Neo4j 類型的課程,而反之不成立,但只需要注意到關係的方向,就不需要在相反的方向上添加重複的關係,即Neo4j 類型的課程包含《圖數據庫Neo4j 基礎入門》。

被關係連接的兩個節點,其中關係的起始節點被稱為同時,一個節點的

特別的是,一個節點可以有指向自己的關係,比如用戶Gods_Dusk

  • 關係類型

關係與節點一樣具有類型劃分,但關係有且僅有一種關係類型。

  • 屬性

屬性是用於描述節點和關係特性的如一個用戶,具有屬性:用戶名- Gods_Dusk,用戶ID - 812252。

  • 路徑與遍歷

在圖中,查詢過程是路徑搜索與遍歷的過程,如“Gods_Dusk 寫過哪些課?”,為了獲得答案,就需要先從圖中找到用戶名為Gods_Dusk 的節點,然後找到類型為撰寫的關係,這些關係的出節點就是答案,在這里路徑的搜索長度為1。而問題“Gods_Dusk 寫過的課程都是屬於哪些類型?”的搜索長度為2。

Neo4j 安裝與使用

如果你使用的是個人環境,可以在Windows 和Mac 系統下有對應的桌面應用,可以直接下載安裝。 Linux 系統下需要下載壓縮包,解壓後進入bin 目錄啟動程序。

如果你在使用

啟動Neo4j

打開終端,輸入

sudo neo4j start

即可啟動Neo4j 服務。

同時輸入:

sudo neo4j status

可以查看Neo4j 的啟動情況。

打開瀏覽器,在地址欄輸入localhost:7474,就可以打開Neo4j Browser(若網頁提示連接失敗,請等待片刻後再刷新網頁)。 Neo4j Browser 是Neo4j 數據庫面向開發人員的工具,允許開發人員執行查詢語句並可視化結果。

首次進入Neo4j Browser 時需要重置密碼,系統默認密碼為neo4j,我們將它修改為lanqiao,當然你可以隨意設置。

數據遷移

Neo4j 提供了neo4j-admin 來進行數據的導入導出,在遷移之前,需要停止Neo4j 服務。

數據導入

# 下載其他已導出的Neo4j 數據wget https://labfile.oss.aliyuncs.com/courses/4043/graph.db.dump # 下载其他已导出的Neo4j 数据wget https://labfile.oss.aliyuncs.com/courses/4043/graph.db.dump # 停止Neo4j 服务sudo neo4j stop # 导入到本地数据库中sudo neo4j-admin load --from=graph.db.dump --database=graph.db --force # 启动Neo4j 服务sudo neo4j start # 停止Neo4j 服務sudo neo4j stop # 下载其他已导出的Neo4j 数据wget https://labfile.oss.aliyuncs.com/courses/4043/graph.db.dump # 停止Neo4j 服务sudo neo4j stop # 导入到本地数据库中sudo neo4j-admin load --from=graph.db.dump --database=graph.db --force # 启动Neo4j 服务sudo neo4j start # 導入到本地數據庫中sudo neo4j-admin load --from=graph.db.dump --database=graph.db --force # 下载其他已导出的Neo4j 数据wget https://labfile.oss.aliyuncs.com/courses/4043/graph.db.dump # 停止Neo4j 服务sudo neo4j stop # 导入到本地数据库中sudo neo4j-admin load --from=graph.db.dump --database=graph.db --force # 启动Neo4j 服务sudo neo4j start

數據導出

# 停止Neo4j 服務sudo neo4j stop # 停止Neo4j 服务sudo neo4j stop # 导出数据到本地/home/shiyanlou/Code 目录下sudo neo4j-admin dump --database=graph.db --to=/home/shiyanlou/Code # 启动Neo4j 服务sudo neo4j start # 導出數據到本地/home/shiyanlou/Code 目錄下sudo neo4j-admin dump --database=graph.db --to=/home/shiyanlou/Code # 停止Neo4j 服务sudo neo4j stop # 导出数据到本地/home/shiyanlou/Code 目录下sudo neo4j-admin dump --database=graph.db --to=/home/shiyanlou/Code # 启动Neo4j 服务sudo neo4j start

Neo4j Browser

Neo4j Browser 中有3 個模塊,側邊欄,Cypher 編輯器與結果欄,在進入Neo4j Browser 時結果欄會展示歡迎界面。

Cypher 編輯器

Cypher 是Neo4j 數據庫的查詢語言, Cypher 編輯器則用於輸入和運行Cypher 語句。

在Cypher 編輯器右側有三個按鈕。

其功能分別是:

保存收藏輸入框中的Cypher 語句。
清除輸入框中的Cypher 語句。
運行輸入框中的Cypher 語句,若語句只有一行,則可以用回車鍵作為快捷鍵。

側邊欄

側邊欄包含一組按鍵,用於數據瀏覽和環境設置。從上至下分別是:

數據庫訊息

在數據導入一節,我們從其他數據庫中導入了一些數據,所以在點擊數據庫訊息展示按鈕時,可以展示數據庫中具體統計內容,如下圖所示:

Node Labels

Relationship Types

Property Keys

Connected as

DBMS

單擊節點、關係、屬性中顯示的任何一個標籤,Neo4j 會運行一個快捷查詢,並在結果欄可視化查詢結果。


收藏夾


文檔
Neo4j Browser 中直接內嵌了官方文檔,點擊相應標題就可以跳轉到對應的官方文檔。


數據庫遠程同步


設置


Neo4j 相關訊息


結果欄

Neo4j Browser 以結果幀的方式,在結果欄保存每一次運行結果,允許用戶直接在結果幀中進行查詢後的操作。

以點擊側邊欄中節點

結果幀下方的結果視圖分別有:

圖視圖在點擊圖中節點和邊時,視圖的下邊欄會顯示對應節點和邊的屬性,其中

圖視圖並不會始終出現在結果幀中,只有當查詢結果可以表示為圖時,才會有圖視圖。

表視圖

文本視圖

代碼視圖

總結

以上是Neo4j 的簡介,通過上文的學習我們初步接觸了圖數據庫,Neo4j 及Cypher 的基本概念,實踐了對Neo4j 的啟動,停止和數據遷移,使用和查看Neo4j Browser 等基本操作。
希望大家再接再厲,早日熟練運用Neo4j!
參考資料

如果你覺得這篇文章有用就點個贊吧!

What do you think?

Written by marketer

如何塑造品牌“獨特性資產”? 15條創始人容易混淆的品牌真相

歐賽斯解讀第一性原理及創新的秘密