>進(jìn)入 一說起數(shù)據(jù)庫,大多數(shù)情況下就等于在說關(guān)系型數(shù)據(jù)庫(RDBMS),關(guān)系型數(shù)據(jù)庫都使用SQL查詢語言作為訪問數(shù)據(jù)庫,有些簡單的產(chǎn)品直接運(yùn)行在桌面機(jī)上,但如果你在服務(wù)器上部署用于重要的業(yè)務(wù)計算的數(shù)據(jù)庫" />
歡迎進(jìn)入Oracle社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進(jìn)入 一說起數(shù)據(jù)庫,大多數(shù)情況下就等于在說關(guān)系型數(shù)據(jù)庫(RDBMS),關(guān)系型數(shù)據(jù)庫都使用SQL查詢語言作為訪問數(shù)據(jù)庫,有些簡單的產(chǎn)品直接運(yùn)行在桌面機(jī)上,但如果你在服務(wù)器上部署用于重要的業(yè)務(wù)計算的數(shù)據(jù)庫
歡迎進(jìn)入Oracle社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進(jìn)入
一說起數(shù)據(jù)庫,大多數(shù)情況下就等于在說關(guān)系型數(shù)據(jù)庫(RDBMS),關(guān)系型數(shù)據(jù)庫都使用SQL查詢語言作為訪問數(shù)據(jù)庫,有些簡單的產(chǎn)品直接運(yùn)行在桌面機(jī)上,但如果你在服務(wù)器上部署用于重要的業(yè)務(wù)計算的數(shù)據(jù)庫,就必須要大型關(guān)系數(shù)據(jù)庫,如果有錢的話可以購買成熟的Oracle,SQL Server,DB2等商業(yè)產(chǎn)品,如果沒有預(yù)算或資金不足,可以使用開源的數(shù)據(jù)庫,如MySQL和PostgreSQL。
關(guān)系數(shù)據(jù)庫在多個表中存儲數(shù)據(jù),表與表之間使用外鍵進(jìn)行關(guān)聯(lián)。關(guān)系數(shù)據(jù)庫一詞源于在IBM工作的Edgar Codd在1970發(fā)表的一篇論文?;谶@個數(shù)據(jù)庫模型的產(chǎn)品很快就代替了許多層次型和其它技術(shù)種類的數(shù)據(jù)庫。雖然它的性能還比不上替代品,但在數(shù)據(jù)布局,添加和訪問方面卻更加靈活。
得益于計算機(jī)處理速度越來越快(RDBMS也在許多方面得到了增強(qiáng)),后臺進(jìn)程的性能得到了顯著提升,但關(guān)系數(shù)據(jù)庫的缺點(diǎn)暴露得越來越多,對象數(shù)據(jù)庫正欲取代關(guān)系數(shù)據(jù)庫,但在相當(dāng)長的一段內(nèi)它們將會并存。隨著真正大規(guī)模分布式計算基礎(chǔ)設(shè)施的完善,即使RDBMS不會被新興技術(shù)取代,但很多新興技術(shù)都會作為其一個補(bǔ)充。
RDBMS最根本的問題是它的處理架構(gòu)和存儲,所有事務(wù)都是絕對可靠的(ACID,原子性,一致性,隔離和耐用性,它是一套用來描述性能要求的術(shù)語),這對于金融系統(tǒng)是絕好的解決方案,提款時要立即返回銀行存款余額,系統(tǒng)要防止同一時間偶然發(fā)生從同一余額提款多次。假設(shè)數(shù)據(jù)要保存很長一段時間,RDBMS及其關(guān)聯(lián)的基礎(chǔ)架構(gòu)也要支持才行,在傳統(tǒng)數(shù)據(jù)庫角色背景下它的意義非凡,不僅是商務(wù)上想保存幾年甚至更長時間,按照法律要求也要保存多年。
但我們在大型分布式系統(tǒng)中看到的是越來越多地使用替代方法,這些方法不要求嚴(yán)格的一致性或產(chǎn)生大量的不需要永久保存的中間結(jié)果,它們也可以使用復(fù)制提高性能和可用性。
http://www.allthingsdistributed.com/2008/12/eventually_consistent.html。
亞馬遜的SimpleDB就實(shí)現(xiàn)了這種模式,它保持每個域的多個副本,當(dāng)數(shù)據(jù)寫入或更新(使用PutAttributes,DeleteAttributes,CreateDomain或DeleteDomain)時如果返回成功,則所有數(shù)據(jù)的副本都會被更新,但要將更新傳播到所有存儲位置是需要時間的,數(shù)據(jù)最終將會一致,但立即的讀取操作可能看不到最新的修改。
我們看到許多產(chǎn)品本質(zhì)上是通過增加RDBMS的數(shù)量來減少它們需要存儲的數(shù)據(jù)的容量,Terracotta是一款商業(yè)產(chǎn)品,它可以為Java應(yīng)用提供分布式緩存,Terracotta說它們一般可以卸下40-60%的事務(wù),性能自然提高了很多。
Memcached是一款類似的開源分布式內(nèi)存緩存系統(tǒng),它將數(shù)據(jù)(連同相關(guān)的結(jié)構(gòu))分布到多個系統(tǒng),以減少訪問數(shù)據(jù)存儲,它廣泛用于大型網(wǎng)站,如Twitter,YouTube和Wikimedia。
但這些技術(shù)不能象RDBMS取代傳統(tǒng)層次數(shù)據(jù)庫那樣取代RDBMS,相反,它們會權(quán)衡那些在數(shù)據(jù)庫中不是非必需的特性,如完全一致性。
目前許多應(yīng)用比傳統(tǒng)業(yè)務(wù)應(yīng)用程序更多地使用異步和讀密集技術(shù),面需要跨多個系統(tǒng)實(shí)現(xiàn)高性能。要為組織實(shí)施這種應(yīng)用,配對的RDBMS和各種各樣的分布式數(shù)據(jù)存儲,只有可伸縮的方法才是唯一出路,同時需要考慮一個價格平衡點(diǎn)才使業(yè)務(wù)發(fā)展具有重要意義。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com