圖數據庫NoSQL數據庫分類鍵值對數據庫 早期的和現在流行的Redis文檔數據庫 一般保存XML、YAML、JSON、BSON、PDF、word文檔,算是鍵值對數據庫的一個衍生品列存儲數據庫 按照列儲存,根據ROWID辨別,典型的是HBase圖數據庫 圖形數據庫在處理實體間的關系時具有很好的性能,但是在其他應用領域,其性能不如其他 NoSQL 數據庫,行業領導者 Neo4j
圖數據庫定義
一個節點和邊的集合 A set of nodes and edges
圖形數據庫是NoSQL數據庫的一種類型,他應用圖理論儲存實體之間的關系信息。圖形數據庫是一種非關系型數據庫,最常見的例子就是社會網絡中人與人之間的關系。使用關系型數據庫也可以表示圖數據庫可以干的,但是效果不太好,查詢復雜緩慢超出預期
關系數據庫和圖數據庫對比
EMP舉例
**舉個關系型數據庫和圖數據庫的例子:**部門員工表
這是典型的EMP表的一部分,如果要用關系型數據庫表示,只能使用第三個關聯表來記錄兩個表之間的關系
這個是使用圖數據庫保存的關系,每個員工和部門都是一個節點,如果員工和部門有關系,只需要在兩個節點之間加個邊
再說兩個數據庫的查詢速度:以查詢員工號為7521的員工所在部門名稱為例子
首先是三個表鏈接做乘法,然后按照連接條件,將所有的數據檢索,按照乘法原則,需要檢索的數據行數是三個表的行數的乘機,可見效率是非常的低。
圖數據庫只需要找到節點,然后根據任職于邊找到部門節點就行,如果節點的存取按照hash算法,那么查找節點也是相當的快。
可以看出,關系數據庫的關系是計算出來的,而圖數據庫的關系是讀出來的,在圖中,實體是節點,聯系是邊,節點和邊都可以帶有屬性——鍵值對,在關系數據庫中,實體和聯系都是表
效率對比
圖數據庫的優勢
在需要表示多對多的關系時,常常需要創建一個關聯表來記錄不同實體之間的多對多關系,這個關聯表通常是用來表示兩個實體之間的關系的,不用來記錄信息數據庫系統原理知識點,如果兩個實體之間擁有多種關系數據庫系統原理知識點,那么就需要在他們之間創建多個關聯表。而在圖數據庫中,我們只需要用邊標明兩者之間存在著某種關系。所以圖數據庫可以表示豐富的關系,應多這個世界多端的變化了。也就不需要在項目初為了設計關系數據表而再三考慮了,因為關系數據庫特別不容易擴展。
圖數據庫的應用
社交網絡 微信、QQ、王者榮耀英雄關系圖
實時推薦系統 依賴于事物的關聯,快手的可能認識的人
知識圖譜 全歷史APP 百度地圖
圖數據庫的產品
圖領域劃分從作用劃分從模型劃分
圖數據庫考慮特性
圖數據庫的儲存分為原生圖儲存和保存到關系型數據庫中
一般使用免索引領接,這樣在物理意義上是指向,這樣帶來的性能優勢是其他數據庫無法比擬的
數據建模
建模是為了讓不規則的領域的一些具體方面變成結構化的、可操縱的空間。
這里使用帶有標簽的屬性圖模型
帶標簽的屬性圖是由節點、聯系、屬性和標簽組成節點包含屬性節點可以被打上一個或者多個標簽聯系連接節點屬性也可以有屬性
版權聲明:本文為CSDN博主「林雨意」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:圖數據庫理論知識_林雨意的博客-CSDN博客_圖數據庫原理
封面圖來自實例操作過程
——————————————————
圖客官方網站:
圖客試用:
若有任何疑問,您可在評論區留言或通過私信聯系圖客TUKE
期待與您在“圖”的世界共繪人類數據應用未來!