《NoSQL數(shù)據(jù)庫(kù)在現(xiàn)代應(yīng)用程序中的作用》要點(diǎn):
本文介紹了NoSQL數(shù)據(jù)庫(kù)在現(xiàn)代應(yīng)用程序中的作用,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
數(shù)據(jù)模型驅(qū)動(dòng)不僅可以建立有效的應(yīng)用程序,也可以有效修改他們的特性.他們是“real-world”問(wèn)題的辦理和軟件世界模仿現(xiàn)實(shí)世界的行為之間的橋梁.(是的,軟件可以創(chuàng)造奇跡,但如果不是追求更簡(jiǎn)單生活沒(méi)有人需要這些軟件!)本文論述了NoSQL數(shù)據(jù)庫(kù)在現(xiàn)代的應(yīng)用軟件發(fā)揮作用.
驅(qū)動(dòng)力
在過(guò)去的幾年中,有一個(gè)巨大的轉(zhuǎn)變則是在棧的應(yīng)用程序開(kāi)發(fā)平臺(tái)的選擇上.傳統(tǒng)的WAMP和LAMP堆棧被逐步被淘汰,像MEAN、CEAN等.這種轉(zhuǎn)變是有很多原因的.最根本的原因是對(duì)現(xiàn)代Web的期望.最近的預(yù)期是從Web應(yīng)用程序已經(jīng)不僅僅是局限于信息的傳遞.本日我們?cè)赪eb應(yīng)用程序的交互中,信息處理和內(nèi)容分析已成為了非常關(guān)鍵的部分.這也常被稱為Web 2.0.未來(lái)預(yù)期增長(zhǎng)的智能設(shè)備和傳感器連接到互聯(lián)網(wǎng),繼續(xù)利用越來(lái)越多的數(shù)據(jù)生成的應(yīng)用程序用戶提供智能化的增值作用(也稱為Web 3.0).
這種轉(zhuǎn)變?cè)赪eb應(yīng)用程序范例中需要豐富的數(shù)據(jù).同時(shí),使數(shù)據(jù)可供消費(fèi)是同樣重要的,是怎樣不可用數(shù)據(jù)阻礙了預(yù)期的用戶體驗(yàn)和應(yīng)用程序的開(kāi)發(fā)成為了另一個(gè)主題!但是,值得一提的是,大多數(shù)面向用戶的應(yīng)用程序都需要從多個(gè)數(shù)據(jù)源(數(shù)據(jù)源)中消耗和處理數(shù)據(jù).作為一個(gè)極端的例子,一個(gè)旅游預(yù)訂網(wǎng)站可能需要依賴于多個(gè)航空公司的航班數(shù)據(jù)和票務(wù),而信用卡處理來(lái)自另一個(gè)第三方,行程出版又從另一個(gè)地方…更不要說(shuō),他們還可能會(huì)導(dǎo)致用戶在社交媒體上分享他們的預(yù)訂經(jīng)驗(yàn),從他們本身的Web應(yīng)用程序就像一個(gè)用戶的端到端的體驗(yàn)的一部分.
NoSQL允許復(fù)雜的結(jié)構(gòu)
SQL數(shù)據(jù)庫(kù)的結(jié)構(gòu).在處理應(yīng)用程序需求時(shí),由于關(guān)鍵字段、外鍵關(guān)系、規(guī)范化技術(shù)等,他們會(huì)導(dǎo)致某種程度的剛性.例如,一個(gè)客戶訂單對(duì)象往往是分成頭和細(xì)節(jié)類型的標(biāo)準(zhǔn)化表的結(jié)構(gòu).NoSQL,另一方面可以處理在一個(gè)單一的結(jié)構(gòu)中的兩頭和細(xì)節(jié).所以,盡管數(shù)據(jù)模型的結(jié)構(gòu)可能是復(fù)雜的,它允許建立他們接近會(huì)像一個(gè)“真實(shí)世界”的實(shí)體.當(dāng)然,這種能力的本錢是數(shù)據(jù)完整性管理推到了程序應(yīng)用層.
NoSQL與基于rest架構(gòu)
如果您使用Web服務(wù)或API,那么你API的默認(rèn)為JSON響應(yīng).NoSQL數(shù)據(jù)庫(kù),如MongoDB和CouchDB的JSON格式的存儲(chǔ)數(shù)據(jù)(稱為文檔).這使編碼API響應(yīng)接收他們的陣列比擬容易得多.與更高的API主要采用高度集成的應(yīng)用程序,NoSQL數(shù)據(jù)庫(kù)很適合在存儲(chǔ)方面,提供和消費(fèi)信息.
NoSQL帶來(lái)的可伸縮性
NoSQL數(shù)據(jù)庫(kù)進(jìn)行多節(jié)點(diǎn)數(shù)據(jù)庫(kù)設(shè)計(jì),從而提供了極大的可伸縮性功能.例如,MongoDB目前可以擴(kuò)展到超過(guò)100個(gè)節(jié)點(diǎn)分布在不同的數(shù)據(jù)中心或位置.許多NoSQL數(shù)據(jù)庫(kù)也已經(jīng)開(kāi)始支持多個(gè)節(jié)點(diǎn)數(shù)據(jù)分區(qū),有助于選擇規(guī)模更大的數(shù)據(jù)集的計(jì)算資源,同時(shí)也減少了不需要的復(fù)制,從而減少數(shù)據(jù)重復(fù)的可伸縮性.
因此,SQL還是NoSQL?
這取決于應(yīng)用程序和用例.不,這是真實(shí)的,因?yàn)橛性S多因素,如:
因此,它是一個(gè)為您的應(yīng)用程序架構(gòu)決策選擇什么樣的數(shù)據(jù)庫(kù)所使用的.這篇文章絕不是來(lái)影響你選擇的意圖,但是它能提高了人們對(duì)NoSQL被廣泛接受和突出NoSQL在現(xiàn)代應(yīng)用程序中所起的作用.
結(jié)論
重要的是要了解如今的網(wǎng)絡(luò)應(yīng)用程序,如何適應(yīng)現(xiàn)代技術(shù)的期望.平衡NoSQL的潮流需求、路線圖和來(lái)自用戶的期望這些方面都是非常重要的.最后,記住–需求驅(qū)動(dòng)數(shù)據(jù)模型和數(shù)據(jù)模型驅(qū)動(dòng)來(lái)自于SQL或NoSQL的選擇.這是沒(méi)有錯(cuò)誤的答案每個(gè)人都可以嘗試去實(shí)現(xiàn)!
編纂/孫思,關(guān)注數(shù)據(jù)庫(kù),歡迎加入CSDN 數(shù)據(jù)庫(kù)討論QQ群:123038767.尋求報(bào)道或投稿,請(qǐng)聯(lián)系sunsi@csdn.net.
歡迎參與《NoSQL數(shù)據(jù)庫(kù)在現(xiàn)代應(yīng)用程序中的作用》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9572.html