1. 程式人生 > >常用記憶體資料庫介紹(一)

常用記憶體資料庫介紹(一)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

1.  記憶體資料庫簡介

1.1           概念

一、什麼是記憶體資料庫



傳統的資料庫管理系統把所有資料都放在磁碟上進行管理,所以稱做磁碟資料庫(DRDB:Disk-Resident Database)。磁碟資料庫需要頻繁地訪問磁碟來進行資料的操作,由於對磁碟讀寫資料的操作一方面要進行磁頭的機械移動,另一方面受到系統呼叫(通常通過CPU中斷完成,受到CPU時鐘週期的制約)時間的影響,當資料量很大,操作頻繁且複雜時,就會暴露出很多問題。


   
近年來,記憶體容量不斷提高,價格不斷下跌,作業系統已經可以支援更大的地址空間(計算機進入了64位時代),同時對資料庫系統實時響應能力要求日益提高,充分利用記憶體技術提升資料庫效能成為一個熱點。


   
在資料庫技術中,目前主要有兩種方法來使用大量的記憶體。一種是在傳統的資料庫中,增大緩衝池,將一個事務所涉及的資料都放在緩衝池中,組織成相應的資料結構來進行查詢和更新處理,也就是常說的共享記憶體技術,這種方法優化的主要目標是最小化磁碟訪問。另一種就是記憶體資料庫(MMDB:Main Memory Database,也叫主存資料庫)技術,就是乾脆重新設計一種資料庫管理系統,對查詢處理、併發控制與恢復的演算法和資料結構進行重新設計,以更有效地使用CPU週期和記憶體,這種技術近乎把整個資料庫放進記憶體中,因而會產生一些根本性的變化。兩種技術的區別如下表

 



  記憶體資料庫系統帶來的優越效能不僅僅在於對記憶體讀寫比對磁碟讀寫快上,更重要的是,從根本上拋棄了磁碟資料管理的許多傳統方式,基於全部資料都在記憶體中管理進行了新的體系結構的設計,並且在資料快取、快速演算法、並行操作方面也進行了相應的改進,從而使資料處理速度一般比傳統資料庫的資料處理速度快很多,一般都在10倍以上,理想情況甚至可以達到1000倍。

  而使用共享記憶體技術的實時系統和使用記憶體資料庫相比有很多不足,由於優化的目標仍然集中在最小化磁碟訪問上,很難滿足完整的資料庫管理的要求,設計的非標準化和軟體的專用性造成可伸縮性、可用性和系統的效率都非常低,對於快速部署和簡化維護都是不利的。

 

2.  記憶體資料庫歷史和發展

一、雛形期
從上個世紀60年代末到80年代初。在這個時期中,出現了主存資料庫的雛形。1969IBM公司研製了世界上最早的資料庫管理系統------基於層次模型的資料庫管理系統IMS,並作為商品化軟體投入市場。在設計IMS時,IBM考慮到基於記憶體的資料管理方法,相應推出了IMS/VS Fast PathFast Path是一個支援記憶體駐留資料的商業化資料庫,但它同時也可以很好地支援磁碟駐留資料。在這個產品中體現了主存資料庫的主要設計思想,也就是將需要頻繁訪問,要求高響應速度的資料直接存放在實體記憶體中訪問和管理。在這個階段中,包括網狀資料庫、關係資料庫等其他各種資料庫技術也都逐漸成型。
二、技術理論成熟期
1984
年,D J DeWitt等人發表了《主存資料庫系統的實現技術》一文。第一次提出了Main Memory Database(主存資料庫)的概念。預言當時異常昂貴的計算機主存價格一定會下降,使用者有可能將大容量的資料庫全部儲存在主存中,提出了AVL樹、雜湊演算法、主存資料庫恢復機制等主存資料庫技術的關鍵理論,為主存資料庫的發展指出了明確的方向
1984
年,D J DeWitt等人提出使用非易逝記憶體或預提交和成組提交技術作為主存資料庫的提交處理方案,使用指標實現主存資料庫的存取訪問。
1985
年,IBM推出了IBM 370上執行的OBE主存資料庫
1986
年,RB Hagman提出了使用檢查點技術實現主存資料庫的恢復機制。威斯康星大學提出了按區雙向鎖定模式解決主存資料庫中的併發控制問題。並設計出MM-DBMS主存資料庫。貝爾實驗室推出了DALI主存資料庫模型。
1987
年,ACM SIGMOD會議中提出了以堆檔案(HEAP FILE)作為主存資料庫的資料儲存結構。Southern Methodist大學設計出MARS主存資料庫模型。
1988
年普林斯頓大學設計出TPK主存資料庫。
1990
年普林斯頓大學又設計出System M主存資料庫。
三、產品發展期和市場成長期
隨著網際網路的發展,越來越多的網路應用系統需要能夠支援大使用者量併發訪問、高響應速度的的資料庫系統,主存資料庫市場成熟
半導體技術快速發展,半導體記憶體大規模生產,動態隨機存取儲存器(DRAM)的容量越來越大,而價格越來越低,這無疑為計算機記憶體的不斷擴大提供了硬體基礎,使得主存資料庫的技術可行性逐步成熟
1994
年美國OSE公司推出了第一個商業化的,開始實際應用的主存資料庫產品Polyhedra
1998
年德國SoftwareAG推出了Tamino Database
1999
年日本UBIT會社開發出XDB主存資料庫產品。韓國Altibase推出Altibase
2000
年奧地利的QuiLogic公司推出了SQL-IMDB
2001
年美國McObject推出eXtremeDB。加拿大Empress公司推出EmpressDB
四、幾種主存技術應用的比較
第一代:使用者定製的主存資料庫。通過應用程式來管理記憶體和資料;不支援SQL語句, 不提供本地儲存, 沒有資料庫恢復技術;效能好但很難維護和在別的應用中不能使用;應用在實時領域比如工廠自動化生產。
第二代:簡單功能的記憶體資料庫。能夠快速處理簡單的查詢;支援部分的 SQL語句和簡單的恢復技術;主要目的是能夠快速處理大量事務;針對簡單事務處理領域,尤其是交換機, 行動通訊等。
第三代:通用的主存資料庫。針對傳統的商業關係型資料庫領域,能夠提供更高的效能、通用性以及穩定性;提供不同的介面來處理複雜的SQL語句和滿足不同的應用領域;可以應用在計費、電子商務、線上安全領域,幾乎包括磁碟資料庫的所有應用領域。
五、目前幾種常見的通用記憶體資料庫
eXtremeDB
eXtremeDB實時資料庫是McObject公司的一款特別為實時與嵌入式系統資料管理而設計的資料庫,只有50K130K的開銷,速度達到微秒級。eXtremeDB完全駐留在主記憶體中,不使用檔案系統(包括記憶體盤)。eXtremeDB採用了新的磁碟融合技術,將記憶體拓展到磁碟,將磁碟當做虛擬記憶體來用,實時效能保持微秒級的同時,資料管理量在32BIT下能達到20G
Oracle TimesTen
Oracle TimesTenOracleTimesTen公司收購的一個記憶體優化的關係資料庫,它為應用程式提供了實時企業和行業(例如電信、資本市場和國防)所需的即時響應性和非常高的吞吐量。Oracle TimesTen可作為快取記憶體或嵌入式資料庫被部署在應用程式層中,它利用標準的 SQL 介面對完全位於實體記憶體中的資料儲存區進行操作。
SolidDB
Solid Information Technology 成立於 1992 年,全球總部位於加州Cupertino
Solid
資料管理平臺將基於記憶體和磁碟的全事務處理資料庫引擎、載體級高可用性及強大的資料複製功能緊密地融為一體。
Altibase
ALTIBASE公司從1999年就一直致力於記憶體資料庫軟體和其應用的開發,提供高效能和高可用性的軟體解決方案。特別適合通訊、網上銀行、證券交易、實時應用和嵌入式系統領域。目前佔據80%以上記憶體資料庫市場,可以說是當今資料庫軟體技術的領導者。目前Altibase在國內成功案例也比較多,尤其是在電信行業,已經得到了廣泛認可。

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述