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