圖數據庫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!
參考資料
如果你覺得這篇文章有用就點個贊吧!