圖數據庫Neo4j的介紹與使用

blank

圖數據庫Neo4j的介紹與使用

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

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


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


圖數據庫的概念

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

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

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

blank

圖片描述

  • 節點

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

  • 標籤

標籤用於分類節點,如所有用來表示藍橋雲課課程的節點都可以使用標籤:課程進行標記。在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 時結果欄會展示歡迎界面。

blank

Cypher 編輯器

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

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

其功能分別是:

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

側邊欄

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

數據庫訊息

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

blank

Node Labels

Relationship Types

Property Keys

Connected as

DBMS

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


收藏夾

blank

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

blank

數據庫遠程同步

blank


設置

blank


Neo4j 相關訊息

blank

結果欄

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

以點擊側邊欄中節點

blank

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

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

blank

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

表視圖

blank

文本視圖

blank

代碼視圖

blank

總結

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

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

What do you think?

Written by marketer

blank

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

blank

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