[12屆 鐵人賽] [Day2] 圖形資料庫?? Neo4j?? === ###### tags: `iT鐵人賽` `Neo4j` ## 什麼圖形資料庫? 在聊什麼是圖形資料庫之前,我們需要先認識資料庫 來看圖 ( 如果糊了就把圖丟去新分頁 ) ![](https://i.imgur.com/KsR8K2P.png) ~這圖我用Neo4j畫的,因為找不到適合的圖,只好自己畫~ 首先資料庫大致上分成兩大類 * 關聯式資料庫 SQL * 非關聯式資料庫 NoSQL ### 那 " 非關聯式資料庫 " 是什麼? 非關聯式資料庫,英文:NoSQL,通常視為 Not Only SQL 的縮寫 主要為了解決以下問題 * 包含非關聯結構 Being Non-Relational * 分散式 Distributed * 開源 Open-Source * 可平行擴 Horizontally Scalable 阿 太文學了嗎 ~~絕對不是再下去就要超出我的知識範圍了~~ 講簡單點 想像一下,在傳統 SQL 下,你的資料突然需要增加新的欄位 而每一筆資料需要新增的欄位完全不一樣 這樣對於傳統關聯式資料庫而言,就會變得很麻煩 這時候 NoSQL 就強勢登場了 ``` { "Name":"", "Phone":"", "Age":20 } ``` ``` { "Phone":"", "Address":"", "Id":20, "Birthday":"" } ``` 像上面這兩個沒什麼關聯的結構,在 NoSQL 就可以輕鬆的合併了 ``` { "Man": [ { "Name": "", "Phone": "", "Age": 20 }, { "Phone": "", "Address": "", "Id": 20, "Birthday": "" } ] } ``` > 用 Json 感覺比好呈現這個意思 NoSQL 就是這麼自由 (?) ### 那圖形資料庫呢 ? 讓我們回到剛剛那張圖 ![](https://i.imgur.com/KsR8K2P.png) ~沒錯我就是要再貼一次~ 你可以看到非關聯式資料庫下還有四種類型 ( 實際上不只這四種 ) 而圖形資料庫就在其中 圖形資料庫不同於關聯式資料庫以"資料表"跟"關聯"組成 圖形資料庫的核心為 * 節點 Node * 關係 Relationship 都叫做 "圖形" 資料庫了,我們當然可以看看他們長成甚麼德行 他是節點![](https://i.imgur.com/nXJmudm.png) 他是關係![](https://i.imgur.com/5cMlHAt.png) 結合起來就是圖形資料庫了 ![](https://i.imgur.com/BTjoiku.png) 而 Neo4j 就是圖形資料庫的其中一種 >![](https://upload.wikimedia.org/wikipedia/commons/f/fd/Neo4j-2015-logo.png) > Source : [Neo4j-logo](https://en.wikipedia.org/wiki/Neo4j) [官網](https://neo4j.com/) Neo4j 是一個[開源](https://github.com/neo4j/neo4j)的圖形資料庫 第一個版本從 2010 年發布至今 現在也有許多企業正在使用中,例:ebay 那接下來就讓我來介紹慢慢介紹 Neo4j 如何使用吧 --- 今天結束了_(:3 」∠ )_ 查資料查到起笑 ( ˘•ω•˘ ) 超怕寫錯東西 那張 PPAP 正常來說 Node 應該要跟 Relationship 左右換邊 單純只是覺得右邊的手看起來像拿著那顆球 所以就這樣放了(゚∀。) 明天 ***讓我們從 Neo4j Desktop 開始吧*** 期待明日的降臨吧 Ciao! ## 參考資料 [Wikipedia NoSQL](https://zh.wikipedia.org/wiki/NoSQL) [NOSQL DEFINITION](https://hostingdata.co.uk/nosql-database/) [Wikipedia Neo4j](https://en.wikipedia.org/wiki/Neo4j) [Neo4j Customers](https://neo4j.com/customers/) --- ## 紀錄 * 撰寫日期:2020/09/06 * 耗時:加一加應該是 3 小時左右 ## 備註 上方某行 > 而每一筆資料需要新增的欄位完全不一樣 > 原始 > 而每一筆資料需要而每一筆資料需要新增的欄位完全不一樣 感謝 @mikeyangyo 提醒錯誤 >[name=作者] [time=20201014]