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