嵌入式數據庫的基本特點
導讀:按照馬克思的哲學理論,事物發展的進程可以用螺旋式上升來描述。嵌入式數據庫和我們現在常見的企業級數據庫的基本關系也是一個螺旋上升式的關系。雖然,從名字上看,二者有著太多的相似性,但卻有著本質的根本性的區別。外在的形式的相似性,并不能代表二者的實現方式和運用方式的相似。恰恰相反,嵌入式數據庫的實現和運用方式和企業級的數據庫有著很大的區別。嵌入式數據庫實際上是輕量級的,在運行時,它們需要較少的內存。它們是使用精簡代碼編寫的,對于嵌入式設備,其速度更快,效果更理想。
在國外,嵌入式數據庫已經發展了30多年,典型的代表是Empress嵌入式數據庫。它的特點也基本代表了現階段嵌入式實時數據庫的基本特點。下面就介紹一下Empress嵌入式數據庫所具有的區別于企業級數據庫的幾個主要特點。
嵌入性是嵌入式數據庫的基本特性。
嵌入式數據庫不僅可以嵌入到其他的軟件當中,也可以嵌入到硬件設備當中。Empress的方法之一就是使數據庫以組件的形式存在,并發布給客戶,客戶只需要像調用自己定義的函數那樣調用相應的函數就可以創建表、插入刪除數據等常規的數據庫操作??蛻粼谧约旱漠a品發布時,可以將Empress數據庫編譯到自己的產品內,變成自己產品的一部分,最終用戶是感受不到數據庫的存在的,也不用特意去維護數據庫。
實時性和嵌入性是分不開的。
只有具有了嵌入性的數據庫才能夠***時間得到系統的資源,對系統的請求在***時間內做出響應。但是,并不是具有嵌入性就一定具有實時性。要想嵌入式數據庫具有很好的實時性,必須做很多額外的工作。比如:Empress實時數據庫將嵌入性和高速的數據引擎、定時功能以及防斷片處理等措施整合在一起來保證最基本的實時性。當然,不同的場合實時性要求比較高時,除了軟件的實時性外,硬件的實時性也是必須的,具體情況需要有具體和切實的解決方案,不能一概而論。
移動性
移動性是目前在國內提的比較多的一個說法,這和目前國內移動設備的大規模應用有關??梢赃@么說,具有嵌入性的數據庫一定具有比較好的移動性,但是具有比較好的移動性的數據庫,不一定具有嵌入性。比如,一個小型的C/S結構的數據庫也可以運用在移動設備上,而具有移動性。但這個數據庫本身是一個獨立存在的實體,需要額外的運行資源,本質上講和企業級數據庫區別不大。所以不具有嵌入性,也基本上不具備實時性。Empress是優秀的嵌入式實時數據庫,毫無疑問也是非常優秀的移動數據庫。
伸縮性在嵌入式場合顯得尤為重要。
首先嵌入式場合硬件和軟件的平臺都是千差萬別,基本都是客戶根據需要自己選擇的結果。
所以嵌入式場合的數據庫必須能夠支持非常多的平臺,如Empress目前支持6000多種平臺。同時,數據存儲要支持常見的存儲設備,如CF/Flash/HD等。多進程和多線程是必備的,現在的嵌入式系統已經遠遠不是當初的簡單的編程,代碼量增大,功能日益復雜,所以必然要支持多線程和多進程。C/C++和SQL接口的支持也是必備的,作為數據庫當然要有大家熟悉的SQL,但同時不要忘記嵌入式場合用的最多的標準的C/C++接口。某種程度上說,嵌入式場合的數據比企業級應用的數據還要復雜,所以要支持各種類型的數據,如多媒體數據和空間數據等,要支持各種數據結構,除了傳統的關系型,還要能處理樹狀結構和網狀結構。
當然,肯定要具備企業級數據庫所具有的一些共性。比如,一致性是數據庫所必需的特性。通過事務、鎖功能和數據同步等多種技術保證數據庫內的各個表內的數據的一致性,同時也保證數據庫和其他同步或鏡像數據庫內數據的一致性。安全性也是必不可少的。在保證物理信息本身的安全的同時,也要保證用戶私有信息的安全。
嵌入式數據庫的基本特點就介紹到這,這篇文章對一些初學者來說是非常有用的,從這篇文章開始就能對嵌入式數據庫有個大體的了解,知道了它的特點,然后才能更深層的去學習嵌入式數據庫。
【編輯推薦】