開發者要了解的圖形資料庫知識
21CTO導讀:為什麼圖形資料庫對我們開發者來說很重要,本文一探究竟。
業務架構師應該瞭解什麼
我們可以在Google 上獲得圖形資料庫都是學術性的內容,比如關於圖形資料庫的描述,比如Koigsberg的七座橋樑,還有全球資訊網的發明者Berners-Lee。
一些理論和願景很好,但對我來講,我認為引導相關性非常重要。
那麼,為什麼圖形資料庫對我們如此重要?
聯想一下儲存本地連鎖餐廳的資料。比如我們想要追蹤客戶資訊,則可以把TA們的資訊儲存在一個數據表裡,銷售資料放在一張表中,如果想了解銷售的產品情況,訂購庫彎路,以及最忠實的客戶是誰,可以很方便的查詢。
但是關係資料庫裡缺少組織結構以及專案之間的連線關係等,圖形資料庫儲存了相同型別的資料,還能夠儲存事物之間的連結。比如老王購買了不少可樂,老張和小麗結婚買了紅酒飲料。我不需要使用JOIN來查詢應該向每個客戶推送什麼產品,通過資料中的關係,就不用做出假設來對其進行測試。
這個新的連線資訊層為幫我們做很多,這不僅僅是與購買客戶意向有關,也會和很多用例提供價值,特別是在機器學習或者希望機器進行分析或推理時非常有用。
由於傳統資料庫是用表格而不是用資料鏈接設計的,SQL將不能再使用,圖形資料庫提供了類似SQL的語言,比如SparQL,Gremlin和Cypher等。
一個主要區別是需要對連結資料採用分析功能。比如想找到在網站上購買某種最熱門的商品,如果我們想對某個專案的受歡迎程度進行排名,那麼我們得使用一種新語法,需要學習連線資料的語言才能最大化利用它。
不能用RDBMS做到這一點嗎
當然可以,在傳統的關係資料庫管理系統(RDBMS)中建立這些關係連結。但是,想要在傳統資料庫中執行任務,DBA要認真設計唯一鍵與JOIN的關係。如果我們使用圖形資料庫,那麼主題及其關係(稱為主語和謂詞)都是已知的,不用再重建連線。
比如定義馬麗是小婉的媽媽,那麼就可以搶斷出小婉是馬麗的例子。我們不用需要再專門定兩種關係,圖形資料庫對該方面很智慧。相比之下,RDBMS無法理解任何未定義的內容。因此,在檢視興趣、家庭和社群時,這種推理能力具有明顯的價值。
圖形資料庫的專長
與RDBMS一樣,圖形資料庫可以是事務性也可以是分析性的。圖形資料庫有不同的側重點。比如流行的Neo4j專注於事務(OLTP)圖形資料庫,而AnzoGraph是分析型(OLAP)圖形資料庫。我們第一次使用圖形資料庫,會感覺有一些區別。所以,我們可能需要一個不同的引擎來執行涉及單個實體的快速查詢,比如Susan有什麼車,以及輪詢整個資料庫的查詢分析,例如Susan等人買車的平均價格是多少。
隨著機器學習和人工智慧的發展,圖形資料庫OLAP變得越來越重要,許多機器學習演算法本質上圖形算髮,因此在圖形OLAP資料庫上執行比RDBMS上執行會更有效。
編譯:老夏
來源:21CTO