您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

NoSQL數(shù)據(jù)庫分類及應(yīng)用分析

大?。?/span>0.9 MB 人氣: 2017-09-30 需要積分:1

  簡介

  在眾多不同的數(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é)果。

  NoSQL數(shù)據(jù)庫分類及應(yīng)用分析

  圖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所示。

  NoSQL數(shù)據(jù)庫分類及應(yīng)用分析

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?