什么是NoSQL數(shù)據(jù)庫(kù)?從名稱“非SQL”或“非關(guān)系型”衍生而來(lái),這些數(shù)據(jù)庫(kù)不使用類似SQL的查詢語(yǔ)言,通常稱為結(jié)構(gòu)化存儲(chǔ)。這些數(shù)據(jù)庫(kù)自1960年就已經(jīng)存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開(kāi)始使用它們時(shí),這些數(shù)據(jù)庫(kù)才流行起來(lái)。該數(shù)據(jù)庫(kù)最明顯的優(yōu)勢(shì)是擺脫了一組固定的列、連接和類似SQL的查詢語(yǔ)言的限制。有時(shí),NoSQL這個(gè)名稱也可能表示“不僅僅SQL”,來(lái)確保它們可能支持SQL。 NoSQL數(shù)據(jù)庫(kù)使用諸如鍵值、寬列、圖形或文檔之類的數(shù)據(jù)結(jié)構(gòu),并且可以如JSON之類的不同格式存儲(chǔ)。
在網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營(yíng)銷成為有效果、有回報(bào)的無(wú)錫營(yíng)銷推廣。創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站建設(shè)十多年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。
NoSQL 數(shù)據(jù)庫(kù)因其功能性、易于開(kāi)發(fā)性和可擴(kuò)展性而廣受認(rèn)可,它們?cè)絹?lái)越多地用于大數(shù)據(jù)和實(shí)時(shí) Web 應(yīng)用程序,在本文中,我們通過(guò)示例討論 NoSQL、何時(shí)使用 NoSQL 與 SQL 及其用例。
NoSQL是一種下一代數(shù)據(jù)庫(kù)管理系統(tǒng) (DBMS)。NoSQL 數(shù)據(jù)庫(kù)具有靈活的模式,可用于構(gòu)建具有大量數(shù)據(jù)和高負(fù)載的現(xiàn)代應(yīng)用程序。
“NoSQL”一詞最初是由 Carlo Strozzi 在 1998 年創(chuàng)造的,盡管自 1960 年代后期以來(lái)就已經(jīng)存在類似的數(shù)據(jù)庫(kù)。然而,NoSQL 的發(fā)展始于 2009 年初,并且發(fā)展迅速。
在處理大量數(shù)據(jù)時(shí),任何關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) (RDBMS) 的響應(yīng)時(shí)間都會(huì)變慢。為了解決這個(gè)問(wèn)題,我們可以通過(guò)升級(jí)現(xiàn)有硬件來(lái)“擴(kuò)大”信息系統(tǒng),這非常昂貴。但是,NoSQL 可以更好地橫向擴(kuò)展并且更具成本效益。
NoSQL 對(duì)于非結(jié)構(gòu)化或非常大的數(shù)據(jù)對(duì)象(例如聊天日志數(shù)據(jù)、視頻或圖像)非常有用,這就是為什么 NoSQL 在微軟、谷歌、亞馬遜、Meta (Facebook) 等互聯(lián)網(wǎng)巨頭中特別受歡迎的原因。
一些流行的 NoSQL 數(shù)據(jù)庫(kù)包括:
隨著企業(yè)更快地積累更大的數(shù)據(jù)集,結(jié)構(gòu)化數(shù)據(jù)和關(guān)系模式并不總是適合。有必要使用非結(jié)構(gòu)化數(shù)據(jù)和大型對(duì)象來(lái)更好地捕獲這些信息。
傳統(tǒng)的 RDBMS 使用 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)法來(lái)存儲(chǔ)和檢索結(jié)構(gòu)化數(shù)據(jù),相反,NoSQL 數(shù)據(jù)庫(kù)包含廣泛的功能,可以存儲(chǔ)和檢索結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化和多態(tài)數(shù)據(jù)。
有時(shí),NoSQL 也被稱為“ 不僅僅是 SQL ”,強(qiáng)調(diào)它可能支持類似 SQL 的語(yǔ)言或與 SQL 數(shù)據(jù)庫(kù)并列。SQL 和 NoSQL DBMS 之間的一個(gè)區(qū)別是 JOIN 功能。SQL 數(shù)據(jù)庫(kù)使用 JOIN 子句來(lái)組合來(lái)自兩個(gè)或多個(gè)表的行,因?yàn)?NoSQL 數(shù)據(jù)庫(kù)本質(zhì)上不是表格的,所以這個(gè)功能并不總是可行或相關(guān)的。
但是,一些 NoSQL DBMS 可以執(zhí)行類似于 JOIN的操作——就像 MongoDB 一樣。這并不意味著不再需要 SQL DBMS,相反,NoSQL 和 SQL 數(shù)據(jù)庫(kù)傾向于以不同的方式解決類似的問(wèn)題。
一般來(lái)說(shuō),在以下情況下,NoSQL 比 SQL 更可?。?/p>
許多行業(yè)都在采用 NoSQL,取代關(guān)系數(shù)據(jù)庫(kù),從而為某些業(yè)務(wù)應(yīng)用程序提供更高的靈活性和可擴(kuò)展性,下面給出了 NoSQL 數(shù)據(jù)庫(kù)的一些企業(yè)用例。
內(nèi)容管理是一組用于收集、管理、傳遞、檢索和發(fā)布任何格式的信息的過(guò)程,包括文本、圖像、音頻和視頻。NoSQL 數(shù)據(jù)庫(kù)可以通過(guò)其靈活和開(kāi)放的數(shù)據(jù)模型為存儲(chǔ)多媒體內(nèi)容提供更好的選擇。
例如,福布斯在短短幾個(gè)月內(nèi)就構(gòu)建了一個(gè)基于 MongoDB 的定制內(nèi)容管理系統(tǒng),以更低的成本為他們提供了更大的敏捷性。
大數(shù)據(jù)是指太大而無(wú)法通過(guò)傳統(tǒng)處理系統(tǒng)處理的數(shù)據(jù)集,實(shí)時(shí)存儲(chǔ)和檢索大數(shù)據(jù)的系統(tǒng)在分析 歷史 數(shù)據(jù)的同時(shí)使用流處理來(lái)攝取新數(shù)據(jù),這是一系列非常適合 NoSQL 數(shù)據(jù)庫(kù)的功能。
Zoom使用 DynamoDB(按需模式)使其數(shù)據(jù)能夠在沒(méi)有性能問(wèn)題的情況下進(jìn)行擴(kuò)展,即使該服務(wù)在 COVID-19 大流行的早期使用量激增。
物聯(lián)網(wǎng)設(shè)備具有連接到互聯(lián)網(wǎng)或通信網(wǎng)絡(luò)的嵌入式軟件和傳感器,能夠在無(wú)需人工干預(yù)的情況下收集和共享數(shù)據(jù)。隨著數(shù)十億臺(tái)設(shè)備生成數(shù)不清的數(shù)據(jù),IoT NoSQL 數(shù)據(jù)庫(kù)為 IoT 服務(wù)提供商提供了可擴(kuò)展性和更靈活的架構(gòu)。
Freshub就是這樣的一項(xiàng)服務(wù),它從 MySQL 切換到 MongoDB,以更好地處理其大型、動(dòng)態(tài)、非統(tǒng)一的數(shù)據(jù)集。
擁有數(shù)十億智能手機(jī)用戶,可擴(kuò)展性正成為在移動(dòng)設(shè)備上提供服務(wù)的企業(yè)面臨的最大挑戰(zhàn)。具有更靈活數(shù)據(jù)模型的 NoSQL DBMS 通常是完美的解決方案。
例如,The Weather Channel使用 MongoDB 數(shù)據(jù)庫(kù)每分鐘處理數(shù)百萬(wàn)個(gè)請(qǐng)求,同時(shí)還處理用戶數(shù)據(jù)并提供天氣更新。
NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問(wèn)題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類帶來(lái)的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。
雖然NoSQL流行語(yǔ)火起來(lái)才短短一年的時(shí)間,但是不可否認(rèn),現(xiàn)在已經(jīng)開(kāi)始了第二代運(yùn)動(dòng)。盡管早期的堆棧代碼只能算是一種實(shí)驗(yàn),然而現(xiàn)在的系統(tǒng)已經(jīng)更加的成熟、穩(wěn)定。不過(guò)現(xiàn)在也面臨著一個(gè)嚴(yán)酷的事實(shí):技術(shù)越來(lái)越成熟——以至于原來(lái)很好的NoSQL數(shù)據(jù)存儲(chǔ)不得不進(jìn)行重寫,也有少數(shù)人認(rèn)為這就是所謂的2.0版本。這里列出一些比較知名的工具,可以為大數(shù)據(jù)建立快速、可擴(kuò)展的存儲(chǔ)庫(kù)。
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,是一項(xiàng)全新的數(shù)據(jù)庫(kù)革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢(shì)越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫(kù)運(yùn)用,這一概念無(wú)疑是一種全新的思維的注入。
對(duì)于NoSQL并沒(méi)有一個(gè)明確的范圍和定義,但是他們都普遍存在下面一些共同特征:
不需要預(yù)定義模式:不需要事先定義數(shù)據(jù)模式,預(yù)定義表結(jié)構(gòu)。數(shù)據(jù)中的每條記錄都可能有不同的屬性和格式。當(dāng)插入數(shù)據(jù)時(shí),并不需要預(yù)先定義它們的模式。
無(wú)共享架構(gòu):相對(duì)于將所有數(shù)據(jù)存儲(chǔ)的存儲(chǔ)區(qū)域網(wǎng)絡(luò)中的全共享架構(gòu)。NoSQL往往將數(shù)據(jù)劃分后存儲(chǔ)在各個(gè)本地服務(wù)器上。因?yàn)閺谋镜卮疟P讀取數(shù)據(jù)的性能往往好于通過(guò)網(wǎng)絡(luò)傳輸讀取數(shù)據(jù)的性能,從而提高了系統(tǒng)的性能。
彈性可擴(kuò)展:可以在系統(tǒng)運(yùn)行的時(shí)候,動(dòng)態(tài)增加或者刪除結(jié)點(diǎn)。不需要停機(jī)維護(hù),數(shù)據(jù)可以自動(dòng)遷移。
分區(qū):相對(duì)于將數(shù)據(jù)存放于同一個(gè)節(jié)點(diǎn),NoSQL數(shù)據(jù)庫(kù)需要將數(shù)據(jù)進(jìn)行分區(qū),將記錄分散在多個(gè)節(jié)點(diǎn)上面。并且通常分區(qū)的同時(shí)還要做復(fù)制。這樣既提高了并行性能,又能保證沒(méi)有單點(diǎn)失效的問(wèn)題。
異步復(fù)制:和RAID存儲(chǔ)系統(tǒng)不同的是,NoSQL中的復(fù)制,往往是基于日志的異步復(fù)制。這樣,數(shù)據(jù)就可以盡快地寫入一個(gè)節(jié)點(diǎn),而不會(huì)被網(wǎng)絡(luò)傳輸引起遲延。缺點(diǎn)是并不總是能保證一致性,這樣的方式在出現(xiàn)故障的時(shí)候,可能會(huì)丟失少量的數(shù)據(jù)。
BASE:相對(duì)于事務(wù)嚴(yán)格的ACID特性,NoSQL數(shù)據(jù)庫(kù)保證的是BASE特性。BASE是最終一致性和軟事務(wù)。
NoSQL數(shù)據(jù)庫(kù)并沒(méi)有一個(gè)統(tǒng)一的架構(gòu),兩種NoSQL數(shù)據(jù)庫(kù)之間的不同,甚至遠(yuǎn)遠(yuǎn)超過(guò)兩種關(guān)系型數(shù)據(jù)庫(kù)的不同??梢哉f(shuō),NoSQL各有所長(zhǎng),成功的NoSQL必然特別適用于某些場(chǎng)合或者某些應(yīng)用,在這些場(chǎng)合中會(huì)遠(yuǎn)遠(yuǎn)勝過(guò)關(guān)系型數(shù)據(jù)庫(kù)和其他的NoSQL。
經(jīng)常會(huì)有人問(wèn)我數(shù)據(jù)庫(kù)是干啥的,其實(shí)一開(kāi)始我是拒絕回答的,因?yàn)槲乙膊荒茏龅酵ㄋ滓锥谋磉_(dá)出來(lái),畢竟我接觸這個(gè)概念也沒(méi)有多長(zhǎng)時(shí)間,但隨著問(wèn)的人多了,我覺(jué)得是時(shí)候腦補(bǔ)一下我的第一堂課了,萬(wàn)一哪天冒出來(lái)個(gè)貨跟你掰扯這事兒,你沒(méi)分分鐘給他說(shuō)清,最后弄個(gè)丟里兒丟面兒,好尷尬呀。
數(shù)據(jù)庫(kù),說(shuō)白了就是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),這些數(shù)據(jù)是結(jié)構(gòu)化的,并可為多種應(yīng)用服務(wù)。
也就是說(shuō),數(shù)據(jù)庫(kù)是使用計(jì)算機(jī)服務(wù)器來(lái)存儲(chǔ)數(shù)據(jù)的,專門用來(lái)提供各種數(shù)據(jù)服務(wù)。
可以這樣想像,過(guò)去一個(gè)公司的所有財(cái)務(wù)數(shù)據(jù)都是放在保險(xiǎn)柜里面,而現(xiàn)在我們就可以針對(duì)這些財(cái)務(wù)數(shù)據(jù)搭建一個(gè)數(shù)據(jù)庫(kù)放在某臺(tái)計(jì)算機(jī)或服務(wù)器上面;再比如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號(hào)、姓名、年齡、性別、籍貫、工資、簡(jiǎn)歷等)存放在表中,這張表就可以看成是一個(gè)數(shù)據(jù)庫(kù)。
有了這個(gè)"數(shù)據(jù)倉(cāng)庫(kù)"我們就可以根據(jù)需要隨時(shí)查詢某職工的基本情況,也可以查詢工資在某個(gè)范圍內(nèi)的職工人數(shù)等等。
這些工作如果都能在計(jì)算機(jī)上自動(dòng)進(jìn)行,那我們的人事管理就可以達(dá)到極高的水平。
此外,在財(cái)務(wù)管理、倉(cāng)庫(kù)管理、生產(chǎn)管理中也需要建立眾多的這種"數(shù)據(jù)庫(kù)",使其可以利用計(jì)算機(jī)實(shí)現(xiàn)財(cái)務(wù)、倉(cāng)庫(kù)、生產(chǎn)的自動(dòng)化管理。
最常見(jiàn)的數(shù)據(jù)庫(kù)有:銀行儲(chǔ)蓄系統(tǒng)、手機(jī)話費(fèi)系統(tǒng)、美容美發(fā)會(huì)員系統(tǒng)、超市會(huì)員積分系統(tǒng)、水電費(fèi)系統(tǒng)、機(jī)票或火車票系統(tǒng)等,這些都需要后臺(tái)數(shù)據(jù)庫(kù)基礎(chǔ)設(shè)施的支撐。
舉了這么多例子,應(yīng)該是把數(shù)據(jù)庫(kù)說(shuō)明白了,至少能在大腦里面有個(gè)概念,知道這個(gè)東西是干啥的。
現(xiàn)在大數(shù)據(jù)被炒的紅得發(fā)紫,而大數(shù)據(jù)的基礎(chǔ)也是數(shù)據(jù),由此可見(jiàn),數(shù)據(jù)是一個(gè)企業(yè)的核心資源,說(shuō)它是企業(yè)的立身之本、發(fā)展之基都不為過(guò),因此,維護(hù)數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理員(DBA)是企業(yè)不可或缺的。
目前市面上的數(shù)據(jù)庫(kù)產(chǎn)品有很多,單從規(guī)模上分可分為大型、中型、小型幾種,典型的數(shù)據(jù)庫(kù)產(chǎn)品如下:大型數(shù)據(jù)庫(kù):Oracle、DB2、Sybase;中型數(shù)據(jù)庫(kù):MySQL、SQLServer、Infomix;小型數(shù)據(jù)庫(kù):Access、VisualFoxpro。
在眾多的數(shù)據(jù)庫(kù)產(chǎn)品中,Oracle數(shù)據(jù)庫(kù)一直處于行業(yè)領(lǐng)導(dǎo)先地位,也是當(dāng)今最流行的關(guān)系型數(shù)據(jù)庫(kù)。
Oracle可翻譯成"甲骨文",它是一家以數(shù)據(jù)庫(kù)為主業(yè)的全球化公司,是全球第二大軟件公司(第一名是微軟公司),目前Oracle在數(shù)據(jù)庫(kù)軟件市場(chǎng)已經(jīng)排名第一,數(shù)據(jù)庫(kù)軟件市場(chǎng)份額達(dá)到48.6%,遙遙領(lǐng)先于第二名占有率僅為20.7%的IBM公司的DB2。
在中國(guó)市場(chǎng)上的計(jì)算機(jī)專業(yè)系統(tǒng)后臺(tái)所使用的數(shù)據(jù)庫(kù)尤以O(shè)racle數(shù)據(jù)庫(kù)居多。
但是購(gòu)買Oracle數(shù)據(jù)庫(kù)需要很大一筆費(fèi)用,一般的大型企業(yè)使用,需要有專業(yè)人員進(jìn)行管理和維護(hù),中小企業(yè)承擔(dān)不起。
中小企業(yè)為了節(jié)省成本,一般使用MySQL、PostgreSQL這類免費(fèi)開(kāi)源的數(shù)據(jù)庫(kù),所以O(shè)racle數(shù)據(jù)庫(kù)相關(guān)的工作崗位一般是在大型企業(yè)中。
對(duì)于為什么選擇Oracle數(shù)據(jù)庫(kù),而不是其他的數(shù)據(jù)庫(kù)?第一,是因?yàn)镺racle數(shù)據(jù)庫(kù)占據(jù)最大的市場(chǎng)份額,并且越來(lái)越大,市場(chǎng)需要很多Oracle數(shù)據(jù)庫(kù)方面的人才,中國(guó)有句老話說(shuō)"做對(duì)事,選對(duì)人",是同樣的道理;第二,是很多非Oracle數(shù)據(jù)庫(kù)的老系統(tǒng)正往Oracle數(shù)據(jù)庫(kù)遷移,其他數(shù)據(jù)庫(kù)市場(chǎng)占有率在減少,其他數(shù)據(jù)庫(kù)工作者有面臨失業(yè)的風(fēng)險(xiǎn);第三,Oracle有大量的官方學(xué)習(xí)文檔,還有部分中文文檔,可以有效地進(jìn)行學(xué)習(xí);第四,Oracle有大量的從業(yè)人員,有共同方向的朋友可以互相幫助,不再是孤膽英雄;第五,是可以很容易地從Oracle官方網(wǎng)站下載功能齊全的數(shù)據(jù)庫(kù)最新版本進(jìn)行學(xué)習(xí),可以讓你了解數(shù)據(jù)庫(kù)方面的最新發(fā)展趨勢(shì)等。
在此說(shuō)明,以后的所有內(nèi)容都是基于Oracle11g數(shù)據(jù)庫(kù)產(chǎn)品的,下面我們就簡(jiǎn)單介紹一下Oracle11g的系列產(chǎn)品:企業(yè)版(EnterpriseEdition)此版本包含了數(shù)據(jù)庫(kù)的所有組件,并且能夠通過(guò)購(gòu)買選項(xiàng)和程序包來(lái)進(jìn)一步對(duì)其增強(qiáng)。
能支持例如大業(yè)務(wù)量的在線事務(wù)處理OLTP(On-LineTransactionProcessing聯(lián)機(jī)事務(wù)處理系統(tǒng))環(huán)境、查詢密集的數(shù)據(jù)倉(cāng)庫(kù)和要求苛刻的互聯(lián)網(wǎng)應(yīng)用程序。
標(biāo)準(zhǔn)版1(StandardEditionOne)此版本為工作組、部門級(jí)和互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)應(yīng)用程序提供了前所未有的易用性和性價(jià)比。
從針對(duì)小型商務(wù)的單服務(wù)器環(huán)境到大型的分布式部門環(huán)境,該版本包含了構(gòu)建重要商務(wù)應(yīng)用程序所必需的全部工具。
它僅許可在最高容量為2個(gè)處理器的服務(wù)器上使用,支持Windows/Linux/UNIX操作系統(tǒng),并支持64位平臺(tái)操作系統(tǒng)。
標(biāo)準(zhǔn)版(StandardEdition)此版本提供了StandardEditionOne所不具有的易用性、能力和性能,并且利用真正的應(yīng)用集群(RAC)提供了對(duì)更大型計(jì)算機(jī)和服務(wù)集群的支持。
它可以在最高容量為4個(gè)處理器的單臺(tái)服務(wù)器上、或者在一個(gè)支持最多4個(gè)處理器的集群上使用,可支持Windows、Linux和UNIX操作系統(tǒng),并支持64位平臺(tái)操作系統(tǒng)。
簡(jiǎn)化版此版本支持與標(biāo)準(zhǔn)版1、標(biāo)準(zhǔn)版和企業(yè)版完全兼容的單用戶開(kāi)發(fā)和部署。
通過(guò)將Oracle數(shù)據(jù)庫(kù)獲獎(jiǎng)的功能引入到個(gè)人工作站中,該版本提供了結(jié)合世界上最流行的數(shù)據(jù)庫(kù)功能的數(shù)據(jù)庫(kù),并且該數(shù)據(jù)庫(kù)具有桌面產(chǎn)品通常具有的易用性和簡(jiǎn)單性,可支持Linux和Windows操作系統(tǒng)。
從存儲(chǔ)結(jié)構(gòu)上來(lái)說(shuō),目前流行的數(shù)據(jù)庫(kù)主要包含以下兩種:RDBMS:關(guān)系型數(shù)據(jù)庫(kù),是指采用了關(guān)系模型來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù);NoSQL數(shù)據(jù)庫(kù),是指那些非關(guān)系型的、分布式的數(shù)據(jù)庫(kù)。
簡(jiǎn)單來(lái)說(shuō),關(guān)系模型指的就是二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫(kù)就是由二維表及其之間的聯(lián)系所組成的一個(gè)數(shù)據(jù)組織。
關(guān)系型數(shù)據(jù)庫(kù)優(yōu)點(diǎn):1、容易理解二維表結(jié)構(gòu)是非常貼近邏輯世界的一個(gè)概念,關(guān)系模型相對(duì)網(wǎng)狀、層次等其他模型來(lái)說(shuō)更容易理解。
2、使用方便通用的SQL語(yǔ)言使得操作關(guān)系型數(shù)據(jù)庫(kù)非常方便。
3、易于維護(hù)豐富的完整性大大減低了數(shù)據(jù)冗余和數(shù)據(jù)部移植的概率。
4、事務(wù)安全所有關(guān)系型數(shù)據(jù)庫(kù)都不同程度的遵守事物的四個(gè)基本屬性,因此對(duì)于銀行、電信、證券等交易型業(yè)務(wù)是不可或缺的。
關(guān)系型數(shù)據(jù)庫(kù)的瓶頸:1、高并發(fā)讀寫需求網(wǎng)站的用戶并發(fā)性非常高,往往達(dá)到每秒上萬(wàn)次讀寫請(qǐng)求,對(duì)于傳統(tǒng)型數(shù)據(jù)庫(kù)來(lái)說(shuō),硬盤I/O是一個(gè)很大的瓶頸。
2、海量數(shù)據(jù)的高效率讀寫互聯(lián)網(wǎng)上每天產(chǎn)生的數(shù)據(jù)量是巨大的,對(duì)于關(guān)系型數(shù)據(jù)庫(kù)來(lái)說(shuō),在一張包含海量數(shù)據(jù)的表中查詢,效率是非常低的。
3、高擴(kuò)展性和可用性在基于WEB的結(jié)構(gòu)中,數(shù)據(jù)庫(kù)是最難進(jìn)行橫向擴(kuò)展的,當(dāng)一個(gè)應(yīng)用系統(tǒng)的用戶量和訪問(wèn)量與日俱增的時(shí)候,數(shù)據(jù)庫(kù)卻沒(méi)有辦法像WEBServer和APPLICATIONServer那樣簡(jiǎn)單的通過(guò)添加更多的硬件和服務(wù)節(jié)點(diǎn)來(lái)擴(kuò)展性能和負(fù)載能力。
對(duì)于很多需要提供24小時(shí)不間斷服務(wù)的網(wǎng)站來(lái)說(shuō),對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行升級(jí)和擴(kuò)展是非常痛苦的事情,往往需要停機(jī)維護(hù)和數(shù)據(jù)遷移。
NoSQL數(shù)據(jù)庫(kù)NoSQL一詞首先是CarloStrozzi在1998年提出的。
2009年再次提出了NoSQL一詞,用于指那些非關(guān)系型的、分布式的,且一般不保證遵循ACID原則的數(shù)據(jù)存儲(chǔ)系統(tǒng)。
NoSQL具有以下特點(diǎn):1、可以彌補(bǔ)關(guān)系型數(shù)據(jù)庫(kù)的不足2、針對(duì)某些特定的需求而設(shè)計(jì),可以具有極高的性能3、大部分都是開(kāi)源的,由于成熟度不夠,存在潛在的穩(wěn)定性和維護(hù)性問(wèn)題。
關(guān)系型數(shù)據(jù)庫(kù)適用于結(jié)構(gòu)化數(shù)據(jù),而非關(guān)系型數(shù)據(jù)庫(kù)適用于非結(jié)構(gòu)化數(shù)據(jù),二者優(yōu)勢(shì)互補(bǔ),相得益彰。
Oracle數(shù)據(jù)庫(kù)未來(lái)的發(fā)展方向是提供結(jié)構(gòu)化、非結(jié)構(gòu)化、半結(jié)構(gòu)化的解決方案,實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)和NoSQL共存互補(bǔ)。
值得強(qiáng)調(diào)的是,目前關(guān)系型數(shù)據(jù)庫(kù)仍是主流數(shù)據(jù)庫(kù)。
雖然NoSQL數(shù)據(jù)庫(kù)打破了關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)的觀念,可以很好地滿足WEB2.0時(shí)代數(shù)據(jù)的存儲(chǔ)要求,但NoSQL數(shù)據(jù)庫(kù)也有自己的缺陷。
在現(xiàn)階段的情況下,可以將關(guān)系型數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)結(jié)合使用,相互彌補(bǔ)各自的不足。
關(guān)于數(shù)據(jù)庫(kù)及其代表產(chǎn)品Oracle今天就介紹這么多,有興趣的可以繼續(xù)深挖,希望我的介紹能讓你對(duì)數(shù)據(jù)庫(kù)有一個(gè)更深入的認(rèn)識(shí)。
如果有志于在這方面發(fā)展的話,就讓我們一起跟往事干杯從頭再來(lái)。
數(shù)據(jù)庫(kù)可以按照內(nèi)容類型分類:書目、全文、數(shù)字和圖像。在計(jì)算中,數(shù)據(jù)庫(kù)有時(shí)根據(jù)其組織方法進(jìn)行分類。有許多不同類型的數(shù)據(jù)庫(kù),從最流行的方法關(guān)系數(shù)據(jù)庫(kù)到分布式數(shù)據(jù)庫(kù)、云數(shù)據(jù)庫(kù)或NoSQL數(shù)據(jù)庫(kù)。
常用數(shù)據(jù)庫(kù):
1、關(guān)系型數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù)是由IBM的E.F. Codd于1970年發(fā)明的,它是一個(gè)表格數(shù)據(jù)庫(kù),其中定義了數(shù)據(jù),因此可以以多種不同的方式對(duì)其進(jìn)行重組和訪問(wèn)。
關(guān)系數(shù)據(jù)庫(kù)由一組表組成,其中的數(shù)據(jù)屬于預(yù)定義的類別。每個(gè)表在一個(gè)列中至少有一個(gè)數(shù)據(jù)類別,并且每一行對(duì)于列中定義的類別都有一個(gè)特定的數(shù)據(jù)實(shí)例。
結(jié)構(gòu)化查詢語(yǔ)言(SQL)是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)用戶和應(yīng)用程序接口。關(guān)系數(shù)據(jù)庫(kù)易于擴(kuò)展,并且可以在原始數(shù)據(jù)庫(kù)創(chuàng)建之后添加新的數(shù)據(jù)類別,而不需要修改所有現(xiàn)有應(yīng)用程序。
2、分布式數(shù)據(jù)庫(kù)
分布式數(shù)據(jù)庫(kù)是一種數(shù)據(jù)庫(kù),其中部分?jǐn)?shù)據(jù)庫(kù)存儲(chǔ)在多個(gè)物理位置,處理在網(wǎng)絡(luò)中的不同點(diǎn)之間分散或復(fù)制。
分布式數(shù)據(jù)庫(kù)可以是同構(gòu)的,也可以是異構(gòu)的。同構(gòu)分布式數(shù)據(jù)庫(kù)系統(tǒng)中的所有物理位置都具有相同的底層硬件,并運(yùn)行相同的操作系統(tǒng)和數(shù)據(jù)庫(kù)應(yīng)用程序。異構(gòu)分布式數(shù)據(jù)庫(kù)中的硬件、操作系統(tǒng)或數(shù)據(jù)庫(kù)應(yīng)用程序在每個(gè)位置上可能是不同的。
3、云數(shù)據(jù)庫(kù)
云數(shù)據(jù)庫(kù)是針對(duì)虛擬化環(huán)境(混合云、公共云或私有云)優(yōu)化或構(gòu)建的數(shù)據(jù)庫(kù)。云數(shù)據(jù)庫(kù)提供了一些好處,比如可以按每次使用支付存儲(chǔ)容量和帶寬的費(fèi)用,還可以根據(jù)需要提供可伸縮性和高可用性。
云數(shù)據(jù)庫(kù)還為企業(yè)提供了在軟件即服務(wù)部署中支持業(yè)務(wù)應(yīng)用程序的機(jī)會(huì)。
4、NoSQL數(shù)據(jù)庫(kù)
NoSQL數(shù)據(jù)庫(kù)對(duì)于大型分布式數(shù)據(jù)集非常有用。
NoSQL數(shù)據(jù)庫(kù)對(duì)于關(guān)系數(shù)據(jù)庫(kù)無(wú)法解決的大數(shù)據(jù)性能問(wèn)題非常有效。當(dāng)組織必須分析大量非結(jié)構(gòu)化數(shù)據(jù)或存儲(chǔ)在云中多個(gè)虛擬服務(wù)器上的數(shù)據(jù)時(shí),它們是最有效的。
5、面向?qū)ο蟮臄?shù)據(jù)庫(kù)
使用面向?qū)ο缶幊陶Z(yǔ)言創(chuàng)建的項(xiàng)通常存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,但是面向?qū)ο髷?shù)據(jù)庫(kù)非常適合于這些項(xiàng)。
面向?qū)ο蟮臄?shù)據(jù)庫(kù)是圍繞對(duì)象(而不是操作)和數(shù)據(jù)(而不是邏輯)組織的。例如,關(guān)系數(shù)據(jù)庫(kù)中的多媒體記錄可以是可定義的數(shù)據(jù)對(duì)象,而不是字母數(shù)字值。
6、圖形數(shù)據(jù)庫(kù)
面向圖形的數(shù)據(jù)庫(kù)是一種NoSQL數(shù)據(jù)庫(kù),它使用圖形理論存儲(chǔ)、映射和查詢關(guān)系。圖數(shù)據(jù)庫(kù)基本上是節(jié)點(diǎn)和邊的集合,其中每個(gè)節(jié)點(diǎn)表示一個(gè)實(shí)體,每個(gè)邊表示節(jié)點(diǎn)之間的連接。
圖形數(shù)據(jù)庫(kù)在分析互連方面越來(lái)越受歡迎。例如,公司可以使用圖形數(shù)據(jù)庫(kù)從社交媒體中挖掘關(guān)于客戶的數(shù)據(jù)。
樹苗中2包是需要混合浸泡嗎?一個(gè)大型、穩(wěn)健、成熟的分布式系統(tǒng)的背后,往往會(huì)涉及眾多的支撐系統(tǒng),我們將這些支撐系統(tǒng)稱為分布式系統(tǒng)的基礎(chǔ)設(shè)施。除了前面所介紹的分布式協(xié)作及配置管理系統(tǒng)ZooKeeper,我們進(jìn)行系統(tǒng)架構(gòu)設(shè)計(jì)所依賴的基礎(chǔ)設(shè)施,還包括分布式緩存系統(tǒng)、持久化存儲(chǔ)、分布式消息系統(tǒng)、搜索引擎,以及CDN系統(tǒng)、負(fù)載均衡系統(tǒng)、運(yùn)維自動(dòng)化系統(tǒng)等,還有后面章節(jié)所要介紹的實(shí)時(shí)計(jì)算系統(tǒng)、離線計(jì)算系統(tǒng)、分布式文件系統(tǒng)、日志收集系統(tǒng)、監(jiān)控系統(tǒng)、數(shù)據(jù)倉(cāng)庫(kù)等。
分布式緩存主要用于在高并發(fā)環(huán)境下,減輕數(shù)據(jù)庫(kù)的壓力,提高系統(tǒng)的響應(yīng)速度和并發(fā)吞吐。當(dāng)大量的讀、寫請(qǐng)求涌向數(shù)據(jù)庫(kù)時(shí),磁盤的處理速度與內(nèi)存顯然不在一個(gè)量級(jí),因此,在數(shù)據(jù)庫(kù)之前加一層緩存,能夠顯著提高系統(tǒng)的響應(yīng)速度,并降低數(shù)據(jù)庫(kù)的壓力。作為傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),MySQL提供完整的ACID操作,支持豐富的數(shù)據(jù)類型、強(qiáng)大的關(guān)聯(lián)查詢、where語(yǔ)句等,能夠非常客易地建立查詢索引,執(zhí)行復(fù)雜的內(nèi)連接、外連接、求和、排序、分組等操作,并且支持存儲(chǔ)過(guò)程、函數(shù)等功能,產(chǎn)品成熟度高,功能強(qiáng)大。但是,對(duì)于需要應(yīng)對(duì)高并發(fā)訪問(wèn)并且存儲(chǔ)海量數(shù)據(jù)的場(chǎng)景來(lái)說(shuō),出于對(duì)性能的考慮,不得不放棄很多傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)原本強(qiáng)大的功能,犧牲了系統(tǒng)的易用性,并且使得系統(tǒng)的設(shè)計(jì)和管理變得更為復(fù)雜。這也使得在過(guò)去幾年中,流行著另一種新的存儲(chǔ)解決方案——NoSQL,它與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)最大的差別在于,它不使用SQL作為查詢語(yǔ)言來(lái)查找數(shù)據(jù),而采用key-value形式進(jìn)行查找,提供了更高的查詢效率及吞吐,并且能夠更加方便地進(jìn)行擴(kuò)展,存儲(chǔ)海量數(shù)據(jù),在數(shù)千個(gè)節(jié)點(diǎn)上進(jìn)行分區(qū),自動(dòng)進(jìn)行數(shù)據(jù)的復(fù)制和備份。在分布式系統(tǒng)中,消息作為應(yīng)用間通信的一種方式,得到了十分廣泛的應(yīng)用。消息可以被保存在隊(duì)列中,直到被接收者取出,由于消息發(fā)送者不需要同步等待消息接收者的響應(yīng),消息的異步接收降低了系統(tǒng)集成的耦合度,提升了分布式系統(tǒng)協(xié)作的效率,使得系統(tǒng)能夠更快地響應(yīng)用戶,提供更高的吞吐。
當(dāng)系統(tǒng)處于峰值壓力時(shí),分布式消息隊(duì)列還能夠作為緩沖,削峰填谷,緩解集群的壓力,避免整個(gè)系統(tǒng)被壓垮。垂直化的搜索引擎在分布式系統(tǒng)中是一個(gè)非常重要的角色,它既能夠滿足用戶對(duì)于全文檢索、模糊匹配的需求,解決數(shù)據(jù)庫(kù)like查詢效率低下的問(wèn)題,又能夠解決分布式環(huán)境下,由于采用分庫(kù)分表,或者使用NoSQL數(shù)據(jù)庫(kù),導(dǎo)致無(wú)法進(jìn)行多表關(guān)聯(lián)或者進(jìn)行復(fù)雜查詢的問(wèn)題。
當(dāng)前標(biāo)題:最近流行nosql,最近流行的豬微信頭像
本文路徑:http://sd-ha.com/article0/dsespoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、企業(yè)建站、做網(wǎng)站、網(wǎng)站導(dǎo)航、虛擬主機(jī)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)