摘要:是設(shè)計(jì)互聯(lián)網(wǎng)規(guī)模數(shù)據(jù)庫(kù)解決方案的一種新方式它并非一個(gè)產(chǎn)品或一項(xiàng)技術(shù)而是定義一套數(shù)據(jù)庫(kù)技術(shù)的術(shù)語(yǔ)它并不以傳統(tǒng)的原則為基礎(chǔ)的概念源自發(fā)表于年的標(biāo)題為用于大型共享數(shù)據(jù)銀行的數(shù)據(jù)關(guān)系模型的白皮書(shū)用于查詢(xún)系統(tǒng)的語(yǔ)言就是結(jié)構(gòu)化查詢(xún)語(yǔ)言系統(tǒng)非常適合于保存
NoSQL
NoSQL是設(shè)計(jì)互聯(lián)網(wǎng)規(guī)模數(shù)據(jù)庫(kù)解決方案的一種新方式.它并非一個(gè)產(chǎn)品或一項(xiàng)技術(shù),而是定義一套數(shù)據(jù)庫(kù)技術(shù)的術(shù)語(yǔ),它并不以傳統(tǒng)的RDBMS原則為基礎(chǔ).
SQLRDBMS的概念源自E.F.Codd發(fā)表于1970年的標(biāo)題為"用于大型共享數(shù)據(jù)銀行的數(shù)據(jù)關(guān)系模型"的白皮書(shū).
用于查詢(xún)RDBMS系統(tǒng)的語(yǔ)言就是SQL(結(jié)構(gòu)化查詢(xún)語(yǔ)言).
RDBMS系統(tǒng)非常適合于保存在列和行中的結(jié)構(gòu)化數(shù)據(jù),可以使用SQL查詢(xún)這些數(shù)據(jù).
RDBMS系統(tǒng)基于A(yíng)CID事物的概念.ACID代表原子性(Atomic)、一致性(Consistent)、隔離性(Isolated)、持久性(Durable).其中,
原子性意味著要么一個(gè)事物的所有變更都完全被應(yīng)用,要么全都不被應(yīng)用.
一致性意味著在應(yīng)用事物之后數(shù)據(jù)處于一致性狀態(tài).這意味著在一個(gè)事物被提交之后,提取特定數(shù)據(jù)的查詢(xún)將得到相同的結(jié)果.
隔離性意味著被應(yīng)用到相同數(shù)據(jù)集的事物都是彼此獨(dú)立的.因此,一個(gè)事物將不會(huì)干擾另一個(gè)事物.
持久性意味著變更在系統(tǒng)中是永久性的,并且即使出現(xiàn)任何故障也不會(huì)丟失.
NoSQLNoSQL是用于指代非關(guān)系型數(shù)據(jù)庫(kù)的一個(gè)術(shù)語(yǔ).因此它包含了大多數(shù)不以常規(guī)的RDBMS原則為基礎(chǔ)的數(shù)據(jù)存儲(chǔ),并且被用于處理互聯(lián)網(wǎng)規(guī)模的大數(shù)據(jù)集.
NoSQL數(shù)據(jù)庫(kù)是從處理大數(shù)據(jù)的需要中發(fā)展而來(lái)的;傳統(tǒng)的RDBMS技術(shù)無(wú)法提供合適的解決方案.
適合NoSQL數(shù)據(jù)庫(kù)的大數(shù)據(jù)使用場(chǎng)景的一些示例:
社交網(wǎng)絡(luò)圖
搜索和檢索
ACID對(duì)比BASE CAP定理Eric Brewer于2000年提出了CAP定理(布魯爾定理).這是一個(gè)重要的概念,處理分布式數(shù)據(jù)庫(kù)的開(kāi)發(fā)人員和架構(gòu)師需要很好地理解它.
該定理規(guī)定,在設(shè)計(jì)一個(gè)分布式環(huán)境中的應(yīng)用程序時(shí),存在三種基本需求,分別是一致性、可用性以及分區(qū)容錯(cuò)性.
一致性意味著在修改數(shù)據(jù)的任何操作被執(zhí)行之后,數(shù)據(jù)仍舊保持一致,并且所有訪(fǎng)問(wèn)該應(yīng)用程序的用戶(hù)或客戶(hù)端都要得到相同的更新后的數(shù)據(jù).
可用性意味著系統(tǒng)總是保持可用.
分區(qū)容錯(cuò)性意味著,即使系統(tǒng)被劃分成無(wú)法彼此通信的幾組服務(wù)器,也要持續(xù)地正常運(yùn)行.
CAP定理宣稱(chēng),在任何時(shí)間點(diǎn),一個(gè)分布式系統(tǒng)都只能滿(mǎn)足上面三個(gè)保障中的兩個(gè).
BASEEric Brewer提出了BASE這個(gè)縮略語(yǔ).BASE可被解釋為:
基本可用 意味著根據(jù)CAP定理,系統(tǒng)將是可用的.
軟狀態(tài)表明,即便沒(méi)有為系統(tǒng)提供任何輸入,其狀態(tài)也將隨時(shí)間變化而變化
最終一致性意味著從長(zhǎng)遠(yuǎn)來(lái)看,系統(tǒng)將會(huì)達(dá)到一致性.
NoSQL的優(yōu)缺點(diǎn) NoSQL的優(yōu)點(diǎn)高拓展性:縱向拓展方法在事物率和快速響應(yīng)需求增加時(shí)會(huì)失敗.與此相反,新一代的NoSQL數(shù)據(jù)庫(kù)旨在橫向拓展.
可維護(hù)性和管理運(yùn)營(yíng):NoSQL數(shù)據(jù)庫(kù)主要旨在處理自動(dòng)修復(fù)、分布式數(shù)據(jù)以及較簡(jiǎn)單的數(shù)據(jù)模型,這會(huì)導(dǎo)致低水平的可維護(hù)性和管理運(yùn)營(yíng).
低成本:NoSQL數(shù)據(jù)庫(kù)的目的通常在于使用一個(gè)廉價(jià)服務(wù)器的群集,以便讓用戶(hù)可以花費(fèi)較低的成本來(lái)存儲(chǔ)和處理更多的數(shù)據(jù).
靈活的數(shù)據(jù)模型:可以處理任何類(lèi)型的數(shù)據(jù).
NoSQL的缺點(diǎn)成熟度
支持度
有限的查詢(xún)功能
管理運(yùn)營(yíng)
專(zhuān)業(yè)知識(shí)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/19055.html
摘要:理想情況下,單一文檔將成為項(xiàng)目所有信息的唯一來(lái)源。然而,卻沒(méi)有相等的事務(wù)去更新不同的文檔。許多的問(wèn)題已經(jīng)被曝光,但大部分還是歸結(jié)為一個(gè)問(wèn)題知識(shí)。 聲明:本文譯自SQL vs NoSQL The Differences,如需轉(zhuǎn)載請(qǐng)注明出處。 SQL(結(jié)構(gòu)化查詢(xún)語(yǔ)言)數(shù)據(jù)庫(kù)作為一個(gè)主要的數(shù)據(jù)存儲(chǔ)機(jī)制已經(jīng)超過(guò)40個(gè)年頭了。隨著web應(yīng)用和像MySQL、PostgreSQL和SQLite這些...
閱讀 3631·2021-11-18 10:07
閱讀 1721·2021-11-04 16:08
閱讀 1678·2021-11-02 14:43
閱讀 1231·2021-10-09 09:59
閱讀 1021·2021-09-08 10:43
閱讀 1281·2021-09-07 09:59
閱讀 1137·2019-12-27 11:56
閱讀 1273·2019-08-30 15:56