論述NoSQL數(shù)據(jù)庫應(yīng)用軟件中的作用
大?。?/span>0.6 MB 人氣: 2017-10-11 需要積分:1
標(biāo)簽:
數(shù)據(jù)模型驅(qū)動不僅可以建立有效的應(yīng)用程序,也可以有效地修改以合并新的特性。他們是“real-world”問題的解決和軟件世界模仿現(xiàn)實世界的行為之間的橋梁。(是的,軟件可以創(chuàng)造奇跡,但如果不是追求更簡單生活沒有人需要這些軟件?。┍疚恼撌隽薔oSQL數(shù)據(jù)庫在現(xiàn)代的應(yīng)用軟件發(fā)揮作用。驅(qū)動力
在過去的幾年中,有一個巨大的轉(zhuǎn)變則是在應(yīng)用程序開發(fā)平臺棧的選擇上。傳統(tǒng)的WAMP和LAMP被逐步淘汰,而MEAN、CEAN等逐漸發(fā)揮出優(yōu)勢。這種轉(zhuǎn)變是有很多原因的。最根本的原因是對現(xiàn)代Web的期望。最近的預(yù)期是Web應(yīng)用程序已經(jīng)不僅僅是局限于信息的傳遞。今天我們在Web應(yīng)用程序的交互中,信息處理和內(nèi)容分析已成為了非常關(guān)鍵的部分。這也常被稱為Web 2.0。未來持續(xù)增長的智能設(shè)備和傳感器連接到互聯(lián)網(wǎng),繼續(xù)利用越來越多的由應(yīng)用程序用戶生成的數(shù)據(jù)來提供智能化的增值作用(也稱為Web 3.0)。
這種Web應(yīng)用程序轉(zhuǎn)變的范例中需要豐富的數(shù)據(jù)。同時,使數(shù)據(jù)可供消費是同樣重要的,而且不可用數(shù)據(jù)怎樣阻礙了預(yù)期用戶體驗和應(yīng)用程序的開發(fā)成為了另一個主題!但是,值得一提的是,大多數(shù)面向用戶的應(yīng)用程序都需要從多個數(shù)據(jù)源(數(shù)據(jù)源)中消費和處理數(shù)據(jù)。作為一個極端的例子,一個旅游預(yù)訂網(wǎng)站可能需要依賴于多個航空公司的航班數(shù)據(jù)和票務(wù),而信用卡處理來自另一個第三方,行程公布又從另一個地方…更不要說,他們還可能會導(dǎo)致用戶在社交媒體上分享他們的預(yù)訂經(jīng)驗,從他們自己的Web應(yīng)用程序中就像一個用戶的端到端體驗的一部分。
很好,我依然沒有把NoSQL的作用完全呈現(xiàn)給你。你或許仍然想知道NoSQL所有的作用。因此,讓我們繼續(xù)。不管怎樣,了解如下的變化是非常重要的。今天引導(dǎo)我們開始利用新的解決方案,這些解決方案在大多數(shù)情況被創(chuàng)造或者被開發(fā),因為他們不僅非常依賴今天或者僅僅因為今天是可能的(對比指責(zé)以前的計算機革命)。
NoSQL允許復(fù)雜的結(jié)構(gòu)
SQL數(shù)據(jù)庫是結(jié)構(gòu)化的。但是,在處理應(yīng)用程序需求時,由于字段范圍、外鍵關(guān)系、規(guī)范化技術(shù)等,他們會導(dǎo)致某種程度的缺陷。例如,一個客戶訂單對象往往是分成表頭和詳細類型的標(biāo)準化表的結(jié)構(gòu)。NoSQL,另一方面不僅可以處理在一個單一結(jié)構(gòu)中的表頭和細節(jié)。所以,盡管數(shù)據(jù)模型的結(jié)構(gòu)可能是復(fù)雜的,它支持建立接近一個 “真實世界”的實體。當(dāng)然,,這種能力的成本是把數(shù)據(jù)完整性管理推到了程序應(yīng)用層。
NoSQL與基于REST架構(gòu)
如果您使用Web服務(wù)或API,碰巧你的API默認為JSON響應(yīng)(如果不是,你應(yīng)該嘗試)。NoSQL數(shù)據(jù)庫,如MongoDB和CouchDB是按JSON格式的存儲數(shù)據(jù)(稱為文檔)。這使編碼API響應(yīng)比接收數(shù)組容易得多。采用更高等級的API導(dǎo)致高度集成的應(yīng)用程序,NoSQL數(shù)據(jù)庫很適合在存儲方面,提供和消費信息。
NoSQL帶來可伸縮性
NoSQL數(shù)據(jù)庫設(shè)計的思想是拆分為多節(jié)點數(shù)據(jù)庫,從而提供了極大的可伸縮性特性。例如,MongoDB目前可以擴展到超過100個節(jié)點,這些節(jié)點可以分布在不同的數(shù)據(jù)中心或地方。許多NoSQL數(shù)據(jù)庫也已經(jīng)開始支持多個節(jié)點數(shù)據(jù)分區(qū),有助于選擇規(guī)模更大的數(shù)據(jù)集的計算資源,同時也減少了不必要的復(fù)制,從而減少數(shù)據(jù)重復(fù)可伸縮性的成本。
因此,SQL還是NoSQL?
這取決于應(yīng)用程序和特定場景。不,這是真實的,因為有許多因素,如:
開發(fā)工具和技術(shù)可能不支持NoSQL的;首選供應(yīng)商(首選戰(zhàn)略伙伴關(guān)系等許多原因)在您的公司中可能仍然是一個傳統(tǒng)的SQL數(shù)據(jù)庫;首選的數(shù)據(jù)庫供應(yīng)商可能會提供一些在傳統(tǒng)的數(shù)據(jù)庫中有NoSQL-like的特性,可以滿足當(dāng)前應(yīng)用程序的需求;數(shù)據(jù)模型可能是這樣的,選擇真的沒有什么區(qū)別;你支持開源代碼(從一個企業(yè)支持的觀點);你的同事(開發(fā)人員、測試人員等)可能還不熟練。
因此,為您的應(yīng)用程序選擇什么樣的數(shù)據(jù)庫是一個架構(gòu)層面的決定。因此,這篇文章絕不是來影響你選擇傾向的,但是它能提高了人們對NoSQL被廣泛接受的意識和突出NoSQL在現(xiàn)代應(yīng)用程序中所起的作用。
結(jié)論
重要的是要了解如今的網(wǎng)絡(luò)應(yīng)用程序,如何適應(yīng)現(xiàn)代技術(shù)的期望。用需求、路線圖和來自用戶的期望(特別是直接用戶交互)來平衡NoSQL的趨勢是非常重要的。最后,記住–需要驅(qū)動數(shù)據(jù)模型和數(shù)據(jù)模型驅(qū)動來自于SQL或NoSQL的選擇。關(guān)于這點,沒有錯誤的答案,每個人都可以嘗試去解答!
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%