前言 關係,指事物之間相互作用、相互影響的狀態。 數據之間的關係也是如此,數據之間關係的存儲在RDS就已經開始。從資料庫支持的外鍵,到手動建立的關係表,人們採取了許多方法,只為瞭解決查詢複雜、緩慢等問題。 在NoSQL興起的今天,圖資料庫進入了我們的視野,關係模型靜態、剛性、不靈活的本質在網路狀的存 ...
前言
關係,指事物之間相互作用、相互影響的狀態。
數據之間的關係也是如此,數據之間關係的存儲在RDS就已經開始。從資料庫支持的外鍵,到手動建立的關係表,人們採取了許多方法,只為瞭解決查詢複雜、緩慢等問題。
在NoSQL興起的今天,圖資料庫進入了我們的視野,關係模型靜態、剛性、不靈活的本質在網路狀的存儲結構里已然不復存在。現在,讓我們以初學者的身份,初探圖資料庫的奧妙。
圖資料庫以圖形結構(即網路狀)的形式存儲數據,他以“節點”為基本的存儲單位,“節點”之間則以“關係”作為關聯,“節點”與“關係”中可以包含許多“屬性”,正如RDS里的“行”、“列”,圖資料庫以圖形結構進行存儲。
Neo4j
Neo4j是一個世界領先的圖資料庫,具有本機圖形存儲與處理功能,具有展示方便、支持面廣、性能優異等優點。
包含有靈活的架構、完整的事務管理、集群以提升高可用與性能、強大的Cypher(CQL)查詢語言、可視化Web界面 Neo4j Browser、驅動支持時下流行的語言與框架、方便的數據導入、成熟的雲端服務等特性。
開始使用
Neo4j的安裝各系統皆不相同,因此不再贅述,麻煩大家自行尋找。
(PS:因為比較新、支持多系統、多種安裝方式,大多可以直接安裝,改個配置就能用了)
預設的埠:
http:7474
https:7473
bolt:7687
預設的賬戶名與密碼:
賬號:neo4j
密碼:neo4j
Neo4j瀏覽器
Neo4j Browser即Neo4j瀏覽器頁面是Neo4j自帶的可視化界面,在啟動完Neo4j後直接訪問 http://你的功能變數名稱:7474/browser/ 即可訪問,首次訪問需要設置密碼。
在設置完賬號密碼之後,即進入了主頁面,主頁面主要分為三個部分,即左邊的菜單欄,右下邊的數據展示部分,右上方的CQL錄入部分。
其中菜單欄分為:
資料庫信息:展示資料庫已有的數據信息
收藏的CQL:展示已收藏的CQL,也包含了CQL的語句樣例
文件資料:包含了基礎教程、幫助、相關資源等信息
系統設置:主要為頁面設置、結果展示設置、圖形可視化設置
資料庫信息菜單欄則分為:
節點列表:展示所有節點
關係列表:展示所有關係
欄位列表:展示了所有節點的所有欄位
連接信息:包含了當前的連接信息,以及一些操作語句
資料庫信息包含了資料庫版本信息以及系統信息查詢語句
SpringBootData
Neo4j支持多種語言,無論使用Java,C#,Python,Ruby,JavaScript,PHP,R還是Go,Neo4j社區都構建了驅動程式,使得與Neo4j的HTTP API的交互變得容易。同時支持流行的框架,例如Spring Data,Django ORM,Laravel,JDBC等。這裡,我們只說說SpringBootData。
SpringBootData使用Neo4j所需要的依賴如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
<version>version</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>version</version>
</dependency>
基礎的配置文件如下:
spring:
data:
neo4j:
uri: bolt://www.clevercoder.cn/:7687
username: neo4j
password: neo4j
更多配置:
spring:
data:
neo4j:
connection:
pool:
size:#連接池大小
livenes:
check:
timeout:#see Java driver doc
encryption:
level:#加密級別
trust:
strategy:#信任策略,預設TRUST_ALL_CERTIFICATES(信任所有證書)
certificate:
file:#若填寫了TRUST_CUSTOM_CA_SIGNED_CERTIFICATES
#或TRUST_SYSTEM_CA_SIGNED_CERTIFICATES需要的文件路徑
verify:
connection: #see Java driver doc
在使用SpringBootData的情況下,配置完成即可直接使用了,後續將介紹如何方便快捷的在SpringBootData里使用Neo4j。
結語
neo4j作為時下流行的圖資料庫,java對其的支持也非常完善,你可以很方便的使用java原生的GraphDatabaseService類來操作,也能通過SpringData的Repository來進行操作。更加方便的是Neo4j自帶了圖形化管理界面,哪怕是沒有代碼基礎的人也可以很方便的使用其進行作圖,例如知乎就有答主使用Neo4j製作明星關係圖。我們也可以很方便的在頁面上看到代碼操作的結果。
後續我們將分別講解Neo4j各種使用方式,敬請關註!