NoSQL數據庫分類及應用分析
簡介
在眾多不同的數據模型里,關系數據模型自20世紀80年代就處于統治地位,而且出現了不少巨頭,如Oracle、MySQL和MSSQL,它們也被稱為關系數據庫管理系統(RDBMS)。然而,隨著關系數據庫使用范圍的不斷擴大,也暴露出一些它始終無法解決問題,其中最主要的是數據建模中的一些缺陷和問題,以及在大數據量和多服務器之上進行水平伸縮的限制。同時,互聯網發展也產生了一些新的趨勢變化:
用戶、系統和傳感器產生的數據量呈指數增長,其增長速度因大部分數據量集中在Amazon、Google和其他云服務的分布式系統上而進一步加快;
數據內部依賴和復雜度的增加,這一問題因互聯網、Web2.0、社交網絡,以及對大量不同系統的數據源開放和標準化的訪問而加劇。
而在應對這些趨勢時,關系數據庫產生了更多的不適應性,從而導致大量解決這些問題中某些特定方面的不同技術出現,它們可以與現有RDBMS相互配合或代替它們——亦被稱為混合持久化(Polyglot Persistence)。數據庫替代品并不是新鮮事物,它們已經以對象數據庫(OODBMS)、層次數據庫(如LDAP)等形式存在很長時間了。但是,過去幾年間,出現了大量新項目,它們被統稱為NoSQL數據庫(NoSQL-databases)。
NoSQL數據庫
NoSQL(Not Only SQL,不限于SQL)是一類范圍非常廣泛的持久化解決方案,它們不遵循關系數據庫模型,也不使用SQL作為查詢語言。其數據存儲可以不需要固定的表格模式,也經常會避免使用SQL的JOIN操作,一般有水平可擴展的特征。
簡言之,NoSQL數據庫可以按照它們的數據模型分成4類:
鍵-值存儲庫(Key-Value-stores)
BigTable實現(BigTable-implementations)
文檔庫(Document-stores)
圖形數據庫(Graph Database)
在NoSQL四種分類中,圖數據庫從最近十年的表現來看已經成為關注度最高,也是發展趨勢最明顯的數據庫類型。圖1就是db-engines.com對最近三年來所有數據庫種類發展趨勢的分析結果。
圖1 db-engines.com對最近三年來所有數據庫種類發展趨勢的分析圖數據庫
圖數據庫源起歐拉和圖理論,也可稱為面向/基于圖的數據庫,對應的英文是Graph Database。圖數據庫的基本含義是以“圖”這種數據結構存儲和查詢數據,而不是存儲圖片的數據庫。它的數據模型主要是以節點和關系(邊)來體現,也可處理鍵值對。它的優點是快速解決復雜的關系問題。
圖具有如下特征:
包含節點和邊;
節點上有屬性(鍵值對);
邊有名字和方向,并總是有一個開始節點和一個結束節點;
邊也可以有屬性。
說得正式一些,圖可以說是頂點和邊的集合,或者說更簡單一點兒,圖就是一些節點和關聯這些節點的聯系(relationship)的集合。圖將實體表現為節點,實體與其他實體連接的方式表現為聯系。我們可以用這個通用的、富有表現力的結構來建模各種場景,從宇宙火箭的建造到道路系統,從食物的供應鏈及原產地追蹤到人們的病歷,甚至更多其他的場景。
通常,在圖計算中,基本的數據結構表達就是:
G=(V, E)
V=vertex(節點)
E=edge(邊)
如圖2所示。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
NoSQL數據庫分類及應用分析下載
相關電子資料下載
- 一文詳解RedisJSON和其他框架的對比 130
- 針對Ampere Altra處理器的MongoDB優化指南 143
- Redis的LRU與LFU算法實現 203
- 基于圖數據庫的配電網供電范圍分析應用研究 350
- Redis數據同步解決方案—NineData 301
- NoSQL數據庫的四種類型 1764
- 記錄關系數據庫中的半結構化數據 395
- 什么是 NoSQL數據庫?為什么要使用NoSQL數據庫? 573
- 數據庫技術與數據庫學習筆記 384
- Redis緩存的異常原因及其處理辦法分析 311