嵌入式關係資料庫的市場需求
隨著科技的發展和社會的進步,全過程自動化產品製造、大範圍電子商務活動、高度協同科學實驗以及現代化家庭起居,為嵌入式產品造就了嶄新而巨大的商機。在辦公自動化領域,消費領域,通信領域,工業控制領域和軍事領域等等領域中,都可以見到嵌入式系統的影子。尤其是在辦公自動化、消費電子和通信領域中,可以說嵌入式系統套用得非常普遍。
在這許許多多的嵌入式套用中,很多套用都存在著對設備中的數據的管理問題。移動資料庫技術的許多特性都與資訊時代的需求特點相吻合,因此在許多領域獲得了成功的套用。下面我們僅列舉幾個已經或是將要出現的典型移動資料庫套用,以說明研究移動資料庫技術的必要性及其套用前景。
公共信息發布
在移動計算環境中,大量的移動用戶將通過筆記本電腦、掌上電腦、PDA、車載平台等移動設備的無線通訊接口獲取各種各樣的公共信息,如股票行情、天氣狀況和交通信息等。以交通信息發布為例,一個大城市的移動信息系統將同時為超過10多萬個移動用戶提供服務。
實時數據採集
以保險業務員為例,目前許多保險業務員都使用筆記本電腦或掌上電腦管理有關客戶和保單數據。在外出聯繫業務的途中,業務員需要隨時從總部調出最新的數據資料,並隨時查詢某個客戶的信息;完成交易後,他又需要將最新輸入的保單信息即時反饋給總部。這種模式擺脫了時間、地點和場合的限制,克服了傳統數據處理方式造成的延誤和混亂,提高了數據管理的效率。
位置相關查詢
位置相關查詢是移動資料庫套用中最具特色也是最吸引人之處。構想一個旅遊者抵達一個陌生的城市,他可以通過隨身攜帶的移動設備查詢許多信息,如最近的餐廳在哪裡,怎樣去最近的醫院等等。與傳統的資料庫查詢不同的是,上述查詢的結果是與位置相關的,同樣一個問題在不同的地理位置得到的回答可能是不同的。
此外,移動資料庫技術配合GPS技術,可以用於智慧型交通管理、大宗貨物運輸管理和消防現場作業等。移動資料庫技術還在零售業、製造業、金融業、醫療衛生等領域展現了廣闊的套用前景。
隨著套用向著分散化、小型化的方向延伸,智慧型的網路設備交換機、路由器、PDA、 smartPhone、信息家電等設備越來越多地走進了我們的生活,我們也已經越來越離不開它們了。類似這些對信息量要求不大,可以方便存取數據的環境中都需要一個小的資料庫管理系統來管理本地的信息,這就有了嵌入式資料庫的需求。毫無疑問,伴隨著嵌入式市場的蓬勃發展,會有越來越多的嵌入式設備希望得到嵌入式資料庫管理系統的支持,進行數據的統一管理。在強大的市場需求下,如果能開發出一個優秀的嵌入式資料庫管理系統軟體,無疑具有巨大的社會效益和經濟效益。
主要的嵌入式關係資料庫產品
幾種主要的嵌入式資料庫產品的比較,如表1.1所示。
產品 | 體系結構 | 數據模型 | 索引技術 | 記憶體需求 | 訪問 | 平台接口 |
Pervasive.SQL | C/S | 關係 | B+樹 | 50-400kb | ODBC、 Btrieve | WinCE、 Palm OS |
Polyhedra | C/S | 關係 | 哈希 | 1.5-2Mb | C/C++、 ODBC | VxWorks、 pSOS、 LynxOS、 Linux |
TimesTen | C/S | 關係 | B+樹、哈希、T樹 | 5Mb | JDBC | VxWorks、 LynxOS |
1.Pervasive.SQL:由Pervasive公司提供,該資料庫有三種版本,我們選取適合智慧型手機、PDA等消費類電子的版本進行分析。
2.Polyhedra:由PolyhedraPlc公司提供,它是一個實時資料庫,且是主存系統。
3.TimesTen:由TimesTen Performance Software公司提供,它是一個主存資料庫系統。
4.BerkeleyDB:由Sleepycat Software Inc.提供,嚴格意義上它不是一個資料庫管理系統而是一個數據管理軟體,因為它不遵循關係模型。
至於BerkeleyDB它是原始碼開發的軟體,它採用嵌入式庫的形式。用戶通過它提供的<key, data>對運算元據,其數據(其中的data)不具有格式含義,只是二進制數據流,其內容由用戶解釋。此外,它提供本地的C/C++接口,不遵循標準的SQL接口。自身代碼占用記憶體175kb,支持平台包括VxWorks和幾乎所有的Unix及Linux。
簡介
嵌入式關係資料庫
嵌入式關係系統是以套用為中心,以計算機技術為基礎,並且軟硬體可裁剪,適用於套用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。它一般由嵌入式微處理器、外圍硬體設備、嵌入式作業系統以及用戶的應用程式等四個部分組成,用於實現對其他設備的控制、監視或管理等功能。
嵌入式系統一般指非Pc系統,它包括硬體和軟體兩部分。硬體包括處理器/微處理器、存儲器及外設器件和lio連線埠、圖形控制器等。軟體部分包括作業系統軟體(os)(要求實時和多任務操作)和應用程式編程。有時設計人員把這兩種軟體組合在一起。應用程式控制著系統的運作和行為;而作業系統控制著應用程式編程與硬體的互動作用。
嵌入式關係資料庫的體系結構
嵌入式資料庫將資料庫系統與作業系統和具體套用集成在一起,運行在各種智慧型嵌入式設備上。與傳統的資料庫系統相比,它體積小,有較強的便攜性和易用性,以及較為完備的功能來實現用戶對數據的管理操作。在實際套用中,嵌入式資料庫存儲容量較小、穩定性和可靠性比較低,我們可以在PC機上配置嵌入式資料庫來實現大容量數據的存儲和管理。
從結構上可以將嵌入式資料庫管理系統分為外殼和核心兩大部分。
外殼
嵌入式資料庫提供可直接調用的內部接口函式,開發人員可以通過接口函式對資料庫直接進行管理和訪問。資料庫應用程式是數據管理體系與終端的中間層,資料庫套用開發人員在本層進行編碼工作,完成對嵌入式資料庫的訪問連結。
開發人員在使用資料庫系統向上提供的接口函式時,只需要調用標準的接口,不需要考慮下層的實現細節。其主要工作是對接口函式的輸入項進行處理,然後將需要處理的輸入項轉化為資料庫內部可處理的數據結構。
核心
這部分是嵌入式資料庫的核心,包含了嵌入式資料庫的核心功能。主要有:系統管理、事務管理器等。
嵌入式關係資料庫系統的特點
從上述嵌入式系統的特點可以看出,作為嵌入式系統中一個軟體中間件的嵌入式資料庫管理系統,也必然受到嵌入式系統速度、資源以及套用等各方面因素的制約。當然,嵌入式資料庫管理系統本質上是由通用資料庫管理系統發展而來,它也可以是層次、網狀或是關係型的資料庫,甚至也可以是面向對象式的,但我們應該清楚,嵌入式資料庫管理系統和通用型資料庫管理系統在運行環境、套用領域等許多方面都是不一樣的,所以,不能簡單地把嵌入式資料庫管理系統看成是通用資料庫管理系統在嵌入式設備上的縮微版。
概括地說,嵌入式關係資料庫管理系統具有以下特點:
1.專用性:由於嵌入式系統一般是專為某個套用和一組任務而設計的,這類系統的運行環境是比較明確的,所有的軟硬體的配置與選擇是在充分己知套用需求的前提下做出的。
2.微型化:由於嵌入式資料庫的專用性,人們通常希望它是較小且簡單的系統。此外,其運行的硬體平台的特點(諸如計算能力較弱、存儲資源較小、電源以電池供電等)要求,它必須是一個小的系統尺寸並提供較短的代碼執行路徑及與套用緊密藕合的編程接口。
3.健壯性:嵌入式系統是與嵌入式硬體設備集成在一起的,如直接燒注在ROM中或者套用配置完成後幾乎不再變化,所以系統一旦生成,就必須保證它可靠運行,具有很強的。
4.可伸縮性:由於不同嵌入式套用環境的軟硬體平台、套用需求之間的差異相當的大,嵌入式資料庫要求能夠針對不同的套用環境進行相應的調整,或者說可以由具體的嵌入式套用來定製它所需的功能,因此要求嵌入式資料庫在設計上有很高可伸縮性、系統的可配置性。
5.零管理:嵌入式關係資料庫對最終用戶應該是透明的,因為我們不可能要求智慧型手機或用戶都具有資料庫管理員的專業知識,也不可能要求套用的用戶對套用底層的資料庫系統進行管理,所以這類資料庫系統的管理應該是自動完成的,稱為“無干擾運行”。
6.互操作性:嵌入式資料庫往往需要能與其它的嵌入式資料庫或大型資料庫進行通信,因此它必須提供一定的機制實現和其它系統的互操作性,比如網路通信、數據同步和傳遞、複製和快取等。
7.可移植性:由於嵌入式系統的套用領域非常廣泛,所採用的作業系統也多種多樣,為了適應這種差異,嵌入式資料庫必須考慮它的可移植性和不同平台之間的兼容。
除了上面較普遍的幾點之外,針對特定的套用,還可能要求嵌入式資料庫具有安全性和實時性。
關鍵技術
移動資料庫涉及的理論和技術涵蓋了當今通信和計算機發展的最新成果,其中,在移動環境下如何進行數據管理是實現移動資料庫的關鍵,根據目前國際上有關機構的研究表明,這些關鍵技術主要集中在如下幾個方面:
備份恢復
嵌入式資料庫的備份和恢復與大型DBMS管理資料庫不同,不能簡單以獨立的服務或類似形式進行,而要按照某種簡化方式完成。
複製與同步
嵌入式資料庫一般採用某種數據複製模式(上載、下載或混合方式)與伺服器資料庫進行映射,滿足人們在任意地點、任意時刻訪問任意數據的需求。由於存在數據複製,則在系統中各個套用前端和後端伺服器之間可能需要各種必要的同步控制過程,甚至某些或全部套用前端、中間也要進行數據同步。
事務處理
嵌入式資料庫系統中的事務處理在前端可以簡單化,但在整個套用系統中可能需要結合移動計算環境的特徵進行事務處理控制。
安全性
許多套用領域的嵌入式設備是系統中數據管理或處理的關鍵設備,因此嵌入式設備上的資料庫系統對存取許可權的控制較嚴格。同時,許多嵌入式設備具有較高的移動性、便攜性和非固定的工作環境,也帶來潛在的不安全因素。同時,某些數據的個人隱私性又很高,因此在防止碰撞、磁場干擾、遺失、盜竊等對個人數據安全的威脅上需要提供充分的安全性保證。
系統快速啟動
嵌入/移動設備的系統可靠性和可用性相對於固定主機而言一般相對偏低,因此發生系統故障的機率可能大大提高。因此,在這樣的計算環境或計算平台上必須保證系統在發生不可軟體糾錯的情況下能夠通過硬體進行系統的快速啟動。
系統涉及的主要問題
嵌入式關係資料庫有不同於傳統資料庫的獨特之處。絕大多數傳統資料庫的設計是事務吞吐量最大化而平均回響時間最小化,然而嵌入式資料庫的主要目標是記憶體消耗和CPU資源的使用情況,換言之,獲得和回響時間相關的可預測性。也就是說,如果一個資料庫其最糟糕的回響時間或最大的記憶體消耗能夠得到保證,那么系統是可預測的。另外,傳統資料庫的出發點是支持多種套用,因此它開發者能想到的所有功能集成為一個強大的通用的系統軟體;而嵌入式資料庫則一般提供一個輕量級的資料庫引擎,其外圍由特定的套用來定製所需的服務,可見嵌入式資料庫相對於傳統資料庫的又一個明顯特色是它的專用性,也就是說,和套用緊密相關。還有一個值得注意的問題是,一般來說嵌入式資料庫的用戶是資料庫開發人員而非普通的用戶,資料庫開發人員利用嵌入式資料庫提供的訪問接口開發資料庫應用程式,普通用戶不會直接接觸嵌入式資料庫,他所接觸到的是基於嵌入式資料庫的應用程式。
嵌入式資料庫管理系統涉及的主要問題有:
最小化記憶體消耗((Small Footprint)
出於商業上的考慮通常嵌入式系統中不會配置很大的記憶體數量,典型的配置一般在幾Kbytes到幾Mbytes。這必然要求嵌入式資料庫管理系統不能占有過多的記憶體空間,記憶體消耗越少越好。
減少資源分配
在嵌入式系統中,資料庫管理系統和應用程式通常運行在同一個處理器上,資料庫系統占用CPU資源越多就意味著應用程式獲得的資源空間越少。
支持多個作業系統
對於企業級的資料庫伺服器,它通常運行在專用的計算機和普通的作業系統上,訪問它的客戶可以是桌面計算機、其它的伺服器甚至嵌入式系統,它們之間通過網路進行連線。而在嵌入式系統中,資料庫和應用程式使用相同的硬體資源,而且嵌入式系統一般使用專門的作業系統,所以嵌入式資料庫系統必須能支持多種作業系統。
高可靠性
和傳統資料庫相比,大多數的嵌入式資料庫運行時不需要系統管理員,因而嵌入式資料庫必須以自己的方式可靠的運行。
儘管嵌入式資料庫面臨以上的主要問題,但是,嵌入式資料庫和套用緊密聯繫,和它依賴的嵌入式硬體系統密不可分,所以上面幾點中,不同的套用會有不同的側重點。事實上,一些嵌入式資料庫廠商一般會提供多種產品,針對不同的需求和套用進行裁剪和定製。