SQL是什么?、NoSQL又是什么?業(yè)務(wù)系統(tǒng)如何數(shù)據(jù)庫(kù)技術(shù)選型呢?
隨著云計(jì)算時(shí)代的出現(xiàn),大數(shù)據(jù)和物聯(lián)網(wǎng),越來(lái)越多的網(wǎng)友正在涌入互聯(lián)網(wǎng),越來(lái)越多的應(yīng)用系統(tǒng)需要支持大規(guī)模的數(shù)據(jù)存儲(chǔ)。它還需要滿足業(yè)務(wù)需求,以滿足高并發(fā)性,高可靠性,具有高可擴(kuò)展性和其他要求,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)不能再滿足需求,所以NoSQL陷入了。那是什么SQL?什么是nosql?如何選擇業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)?
NoSQL!= NO SQL,但NOTONLYSQL出現(xiàn)為關(guān)系數(shù)據(jù)庫(kù)的補(bǔ)充。關(guān)系數(shù)據(jù)庫(kù)是由關(guān)系模型組織的數(shù)據(jù)庫(kù)。簡(jiǎn)單來(lái)說(shuō),它是一個(gè)二維表模型,包括關(guān)系(表名),元組(二維表中的行),屬性(二維表中的列),域(值范圍)屬性),關(guān)鍵字(可以唯一識(shí)別元組的屬性),關(guān)系模式(表結(jié)構(gòu),關(guān)系描述)和其他概念。對(duì)于用戶信息表,用戶信息表是整個(gè)關(guān)系。元組是由名稱,性別,年齡,電話號(hào)碼和地區(qū)組成的記錄行。該屬性是一個(gè)單獨(dú)的區(qū)域列,年齡列等,該區(qū)域意味著該區(qū)域是中國(guó)的所有區(qū)域。對(duì)于省份,城市等,關(guān)鍵字是用戶ID,可以唯一地識(shí)別用戶,并且關(guān)系模型是整個(gè)表,包括名稱,性別,年齡,電話號(hào)碼和地理屬性。
對(duì)于關(guān)系數(shù)據(jù)庫(kù),它已經(jīng)非常受歡迎,以下四個(gè)原因:1。強(qiáng)勁的交易一致性。數(shù)據(jù)庫(kù)的酸(原子學(xué),一致性,隔離和耐久性)可確保所有記錄的數(shù)據(jù)都是準(zhǔn)確的。對(duì)于早期的互聯(lián)網(wǎng),每個(gè)人都沒(méi)有完全信任無(wú)形和無(wú)形,所以這個(gè)功能非常重要;它易于理解,二維表的結(jié)構(gòu)非常適合真實(shí)世界。 3.使用易于使用,一般的SQL語(yǔ)言使操作關(guān)系數(shù)據(jù)庫(kù)非常方便; 4.易于維護(hù)。設(shè)計(jì)中采用實(shí)體完整性和參照完整性,從而降低了數(shù)據(jù)冗余和數(shù)據(jù)不一致。常用的關(guān)系數(shù)據(jù)庫(kù)包括MySQL,Oracle等,但隨著互聯(lián)網(wǎng)上的大規(guī)模數(shù)據(jù)的增加,關(guān)系數(shù)據(jù)庫(kù)也創(chuàng)建了瓶頸。具體表現(xiàn)如下:1。不能應(yīng)對(duì)高度并發(fā)的讀寫(xiě)請(qǐng)求。關(guān)系數(shù)據(jù)庫(kù)以行結(jié)構(gòu)存儲(chǔ)。例如,我們想要獲得某個(gè)地區(qū)。您需要按行讀取用戶列表行,然后獲取其中的用戶名的屬性,從而消耗很多磁盤IO; 2.它不能以彈性縮放,并且通過(guò)添加更多硬件和服務(wù)節(jié)點(diǎn)來(lái)擴(kuò)展性能,關(guān)系數(shù)據(jù)庫(kù)不能像WebServer一樣簡(jiǎn)單。這對(duì)于需要每天24小時(shí)需要提供的數(shù)據(jù)庫(kù)和服務(wù)數(shù)量的巨大增加的公司非常不舒服; 3.不再需要強(qiáng)大的交易一致性和實(shí)時(shí)讀寫(xiě)。這是關(guān)系數(shù)據(jù)庫(kù)的早期版本。優(yōu)點(diǎn),隨著互聯(lián)網(wǎng)服務(wù)的廣泛覆蓋,用戶可以接受某些延遲和某些錯(cuò)誤。因此,出現(xiàn)了NoSQL關(guān)系數(shù)據(jù)庫(kù)。作為關(guān)系數(shù)據(jù)庫(kù)的補(bǔ)充,根據(jù)互聯(lián)網(wǎng)時(shí)代的需求,它們可以分為:1。關(guān)鍵值數(shù)據(jù)庫(kù),支持高性能并發(fā)讀寫(xiě),如redis; 2.支持大規(guī)模數(shù)據(jù)訪問(wèn)文件數(shù)據(jù)庫(kù),如MongoDB和CouchDB; 3.支持大數(shù)據(jù)存儲(chǔ)和分析的柱狀數(shù)據(jù)庫(kù),例如Hbase; 4.搜索支持全文搜索的引擎數(shù)據(jù)庫(kù),例如Elasticsearch。
?