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