iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
1
AI & Data

看圖說故事,讓 Neo4j 重新詮釋你的資料庫系列 第 1

圖形資料庫簡介,讓你對資料的關係一目瞭然!

  • 分享至 

  • xImage
  •  

Neo4j 看圖說故事

大家好,我是蛋踢球,在開始這一系列的分享之前,先讓大家欣賞一張網頁前端技能關係圖,作為一個開場,這是之前我在研究網頁前端時建立的~
這張圖就是用 Neo4j 儲存,動態網頁的部分採用 D3.js 去呈現,以及 AJAX 去根據使用者選擇,即時取得相關的節點,背景則是一張很可愛的新年賀歲圖,這部分的技術細節,會在鐵人賽後期跟大家分享喔。
Web Frontend Skills powered by Neo4j
(感謝 HPX高雄讀書會最帥的設計師 - 小孫提供)

Graph DB 如你所見,底層儲存的方式就是上圖的模樣,不再是以列、行、資料表來儲存。每個圓圈都是一個 Node - 節點,代表一筆資料,而每個 Node 都可以有很多 Relation - 關係,而每一個關係可以是單向或是雙向,以下是官網的圖,是不是覺得很直觀呢!
Neo4j Graph sample

Graph DB 的三種模型

為了避免讀者們直接把 GraphDB 和 Neo4j 劃上等號,我就先從 Graph DB 開始介紹囉!
目前 Graph DB 有三大模型如下

  • Property Graphs
    Neo4j 就是這一類,藉由許多的 nodes、relations、properties 所組合而成
  • Hypergraphs
    和前者的差別在於,一個 relation 可以連接多個 nodes,很適合用於資料彼此有大量的「多對多」關係的情境
  • Triple Stores
    使用 W3C 的 RDF(資源描述框架)

Neo4j 簡介

進入正題,為何我特別選 Neo4j 呢?一來是過去摸索有一些經驗,想與大家分享,另外一個原因,我發覺 Neo4j 這幾年持續的進步與改善,現在已經是排名第一的 Graph DB!
Graph DBMS Ranking
https://db-engines.com/en/ranking/graph+dbms

Neo4j 是當前最受歡迎的 Graph DBMS,可以做到傳統 RDBMS 很難表達的複雜關係。Adobe 用 Neo4j 取代 Cassandra;eBay 用 Neo4j 取代 MySQL,他們在效能的提升、或資料量的壓縮都取得非常好的成果

Native vs. Non-Native graph database

官方對 Neo4j 的定義中,就直接強調它是 Native graph database,這指的是,它底層儲存的不只是資料,也一併儲存了資料彼此的關係,這也是為何 Neo4j 在大量複雜資料中尋找關係時,非常快速有效率,因為關係早就都儲存好了!
Non-Native 的 Graph DB 則是先將資料儲存在我們相對熟悉的 MySQL、Cassandra、HBase 等資料庫,再透過演算法將資料的關係給層層疊疊找出來,模擬成 Graph DB,所以效能會相對較差。

說到查詢效能,我也借花獻佛一下,底下是官網的範例,相同目的的查詢,SQL 卻寫了更多的語法,也花費更多時間。如果您的資料有類似這樣多層次的複雜關係,就可以考慮使用 Neo4j!
Cypher 是 Neo4j 的查詢語言,簡單直覺,將會在日後的文章做介紹喔!

Cypher
Sample of Neo4j Cypher

SQL
Sample of SQL query as Graph DB

接下來的文章,我會由淺入深,開始介紹 Neo4j 的安裝與使用,懇請大家繼續支持,寫不好的地方請跟我說,或是覺得有看不懂也歡迎留言唷~

同場加映

今年度 Neo4j 開發者博覽高峰會 NODES 2020 要來囉!
將會在台灣時間 10/20 8:00PM ~ 10/21 5:00AM 舉行 ... zzzzz
大家好好睡吧~ 不要衝動 ^^
之後會有錄影可以看的
如果你仍然想報名看個究竟
也歡迎點我的報名連結,給我個支持(免費)
https://neo4j.com/nodes-2020/?node=4128615

參考資源

https://neo4j.com
https://neo4j.com/blog/other-graph-database-technologies/
https://www.tpisoftware.com/tpu/articleDetails/1874
https://zh.wikipedia.org/wiki/%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93


下一篇
Neo4j 授權與快速安裝上手
系列文
看圖說故事,讓 Neo4j 重新詮釋你的資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言