嵌入式數(shù)據(jù)庫的應(yīng)用
嵌入式系統(tǒng)中一直很少使用,因此對(duì)大部分人來說,很難想象嵌入式數(shù)據(jù)庫在哪些場合才能發(fā)揮出優(yōu)勢。事實(shí)上,嵌入式數(shù)據(jù)庫大致可在以下兩大領(lǐng)域使用:
①會(huì)計(jì)、證券交易等業(yè)務(wù)的應(yīng)用軟件。在這類軟件中應(yīng)用,不是把數(shù)據(jù)庫作為服務(wù)器端組成C/S結(jié)構(gòu),而是將數(shù)據(jù)庫嵌入到應(yīng)用程序(使之成為程序的一部分)進(jìn)行使用。通常也稱為“軟件嵌入”。
②車載導(dǎo)航、路由器、信息家電、DVD記錄裝置、iPOD、機(jī)器人等嵌入式系統(tǒng)。在這類嵌入式系統(tǒng)當(dāng)中,除了硬件部分外,還需用軟件對(duì)其進(jìn)行控制。這時(shí)將嵌入式數(shù)據(jù)庫嵌入到這些硬件當(dāng)中,可使系統(tǒng)的性能和效率大大提高。通常也稱作“硬件嵌入”。
1 嵌入式數(shù)據(jù)庫和企業(yè)級(jí)數(shù)據(jù)庫的比較
現(xiàn)在常用嵌入式數(shù)據(jù)庫的領(lǐng)域是汽車電子和信息家電等領(lǐng)域。嵌入式數(shù)據(jù)庫軟件同企業(yè)級(jí)數(shù)據(jù)庫軟件(如IBM公司的DB2、Microsoft公司的SQL Server、Oracle公司的Oracle Database)等相比,有以下不同點(diǎn):
①內(nèi)核足夠小,可嵌入于應(yīng)用程序和處理能力受限的硬件環(huán)境;
②性能高,比企業(yè)級(jí)數(shù)據(jù)庫速度要快,實(shí)時(shí)性要求高;
③成本低,可嵌入手機(jī)、車載導(dǎo)航等批量生產(chǎn)的系統(tǒng)里;
④可裁減,能夠根據(jù)實(shí)際需要增加或者減少必要功能模塊;
⑤嵌入性,能夠嵌入到軟件系統(tǒng)或者硬件系統(tǒng)。對(duì)終端用戶來說是透明的,他們?cè)谑褂脮r(shí)意識(shí)不到嵌入式數(shù)據(jù)庫的存在,能夠免維護(hù)。
2 嵌入式數(shù)據(jù)庫應(yīng)用實(shí)例
2.1 FA領(lǐng)域的實(shí)例
下面舉例介紹嵌入式數(shù)據(jù)庫產(chǎn)品在控制儀器、數(shù)據(jù)收集裝置中的使用。
FA(Faetory Automation)是采用計(jì)算機(jī)控制技術(shù)使工廠自動(dòng)化,既可提高生產(chǎn)效益又可實(shí)現(xiàn)必要的功能。嵌入式數(shù)據(jù)庫在FA領(lǐng)域已經(jīng)廣泛使用。
2.1.1 汽車碰撞測試裝置
嵌入式數(shù)據(jù)庫經(jīng)常在汽車碰撞測試裝置中使用,如圖1所示。所謂汽車碰撞測試,是檢驗(yàn)汽車安全性能的一種有效手段。在測試中,讓汽車高速碰撞某個(gè)物體,然后收集嵌入在車體中各個(gè)部位的各種感應(yīng)器所發(fā)出的數(shù)據(jù),再對(duì)這些數(shù)據(jù)進(jìn)行分析,這需要在碰撞的瞬間大量地收集和保存數(shù)據(jù)。這時(shí),如何能盡快地保存數(shù)據(jù)是一個(gè)問題。為了解決這個(gè)問題,在汽車碰撞測試裝置中使用嵌入式數(shù)據(jù)庫,取得非常好的實(shí)際效果。
2. 1.2發(fā)電機(jī)監(jiān)視裝置
在美國夫型發(fā)電廠的發(fā)電機(jī)監(jiān)視裝置里,使用了嵌入式數(shù)據(jù)庫。發(fā)電廠的發(fā)電機(jī)是非常重要的生產(chǎn)設(shè)備,所以要嚴(yán)格管理以防發(fā)電機(jī)停機(jī)。發(fā)電機(jī)的監(jiān)控裝置通過收集發(fā)電機(jī)的各種數(shù)據(jù)進(jìn)行監(jiān)視,如圖2所示。
這種需要實(shí)時(shí)監(jiān)控的場合,在數(shù)據(jù)庫里預(yù)先錄入了監(jiān)視數(shù)據(jù)用的程序模塊,當(dāng)萊數(shù)據(jù)進(jìn)入“異常值”、“異常范圍”,“警戒范圍”的時(shí)候.這些程序模塊會(huì)檢測出這些數(shù)據(jù),然后自動(dòng)報(bào)警.同時(shí)通知監(jiān)視中心有異常情況。這種數(shù)據(jù)收集也可用于發(fā)電機(jī)系統(tǒng)的模擬試驗(yàn)。
2.1.3監(jiān)視引擎
在美國的大型飛機(jī)制造廠,為了收集引擎的測試數(shù)據(jù)和飛機(jī)內(nèi)部機(jī)械的數(shù)據(jù),在飛機(jī)上也裝載了嵌入式數(shù)據(jù)庫。在芙國的大型汽車制造廠的引擎廢氣排放測試裝置里,也嵌入了數(shù)據(jù)庫,廢氣排放測試的結(jié)果全部保存于數(shù)據(jù)庫,以后的其他測試、分析以及模擬試驗(yàn)等環(huán)節(jié)就能有效利用這些數(shù)據(jù)。2008年奧運(yùn)會(huì)所使用的環(huán)保巴士內(nèi)也使用了嵌入式數(shù)據(jù)庫。
2.1.4在FA領(lǐng)域中使用數(shù)據(jù)庫的注意事項(xiàng)
在這個(gè)領(lǐng)域利用嵌入式數(shù)據(jù)庫時(shí),會(huì)有一些常見的典型問題,如往數(shù)據(jù)庫寫入數(shù)據(jù)的速度和性能等問題。一方面要求內(nèi)存消耗量足夠少,一方面又需要對(duì)大量數(shù)據(jù)的進(jìn)行運(yùn)算,所以必須同時(shí)滿足兩個(gè)相反的要求。再者,像發(fā)電機(jī)裝置監(jiān)視的例子那樣,數(shù)據(jù)監(jiān)視模塊必須要嵌入到數(shù)據(jù)庫中(在實(shí)際的嵌入式數(shù)據(jù)庫中,這些監(jiān)視模塊主要是通過用戶自定義的函數(shù)來實(shí)現(xiàn)數(shù)據(jù)的收集、監(jiān)視和報(bào)警等)。
另外,在出現(xiàn)故障時(shí)能否通過事務(wù)處理和恢復(fù)注冊(cè)等功能進(jìn)行數(shù)據(jù)的恢復(fù)也很重要。
2.2車載導(dǎo)航的實(shí)例
2.2.1 車載導(dǎo)航的GPS與自動(dòng)導(dǎo)航裝置組合
車載導(dǎo)航系統(tǒng)在日本等發(fā)達(dá)國家已經(jīng)普及,在中國實(shí)際使用者應(yīng)該也有很多。不過對(duì)日常使用的車載導(dǎo)航,了解它的內(nèi)部構(gòu)造的人并不多。這里就有關(guān)車載導(dǎo)航的系統(tǒng)構(gòu)造進(jìn)行簡單說明。
車載導(dǎo)航GPS(Global Position System,全球定位系統(tǒng))是利用裝有車速脈沖、羅盤傳感器等的“自動(dòng)導(dǎo)航法”裝置,為正在駕車的駕駛員進(jìn)行現(xiàn)在的位置及駛向目的地行駛路線導(dǎo)航的一種電子儀器。
車載導(dǎo)航剛開始開發(fā)時(shí),只使用“自動(dòng)導(dǎo)航法”裝置。由手靠裝置自身來推算出車輛的位置,因此行駛開始后有必要對(duì)行駛到一定地點(diǎn)的行駛方向和行駛角度進(jìn)行小調(diào)鏊。現(xiàn)在GPS方法非常盛行。該方法通過GPS推算出車輛的僮嬖。不過只靠GPS,不管怎樣設(shè)計(jì)總會(huì)有某種程度的誤差。因此,現(xiàn)在的車載導(dǎo)航通過對(duì)GPS和“自動(dòng)導(dǎo)航法”裝置組合的方法來彌補(bǔ)雙方的缺點(diǎn),以推算出車輛的位置。
2.2.2車載導(dǎo)航與地圖信息的融合
車載導(dǎo)航正在朝以下各方向進(jìn)化,即它不局限于檢測出車輛自身的位置,還可以根據(jù)需要調(diào)出道路信息和地圖信息等,并把這些信息和車輛的行駛狀況相對(duì)照進(jìn)行計(jì)算后提示給用戶,如圖3所示。為了得到這些信息,應(yīng)在車載導(dǎo)航上裝載DVD—ROM之類的存儲(chǔ)設(shè)備。由于地圖信息不是需要頻繁更新的相對(duì)靜止信息,DVD—ROM之類的ROM存儲(chǔ)設(shè)備完全可以滿足這些信息的處理要求。
2.2.3用車載導(dǎo)航處理交通信息
隨著技術(shù)的發(fā)展,現(xiàn)在的車載導(dǎo)航系統(tǒng)把交通信息、堵車信息等也都反映在車載導(dǎo)航中了。因?yàn)檫@些信息要不斷地被更新,所以ROM存儲(chǔ)設(shè)備已很難滿足需求了。
為此,許多最新的設(shè)計(jì)方案中用硬盤存儲(chǔ)介質(zhì)(HDD,Hard Disk Drive)代替ROM存儲(chǔ)介質(zhì)。這樣,能夠?qū)Χ喾N信息進(jìn)行更新的新一代車載導(dǎo)航產(chǎn)品問世了。另外,由于裝載了HDD使得車載導(dǎo)航的運(yùn)行速度變得更快。
2.2.4車載導(dǎo)航上追加媒體終端功能
現(xiàn)在可以播放音樂、能與因特網(wǎng)聯(lián)網(wǎng)的具備個(gè)人電腦功能的車載導(dǎo)航系統(tǒng)已經(jīng)出現(xiàn)了。另外,還可將電視功能作為標(biāo)準(zhǔn)配置裝在車載導(dǎo)航系統(tǒng)上。電視機(jī)除了具有原先的模擬播放形式外,還具有點(diǎn)播方式的數(shù)字電視功能。
2.2.5現(xiàn)在的車載導(dǎo)航存在的問題
現(xiàn)在的車載導(dǎo)航還有許多功能不能滿足客戶的要求。例如:不能進(jìn)行復(fù)合檢索和模糊檢索。所謂“復(fù)合檢索”就是類似這樣的檢索要求:“要在距離人民廣場10 km范圍內(nèi)并距離火車站3 km的范圍內(nèi)的地方尋找三星級(jí)以上賓館”。所謂“模糊檢索”是,只知道要檢索的公司名或地點(diǎn)名的一部分,通過“中間一致”和“后方一致”的方式檢索出所有匹配的類似目標(biāo)。
大部分車載導(dǎo)航是通過使用ROM存儲(chǔ)方式提供地圖信息、店鋪信息以及設(shè)施的數(shù)據(jù)來進(jìn)行計(jì)算的,不能夠隨時(shí)對(duì)有變化的一部分?jǐn)?shù)據(jù)進(jìn)行更新,只能重新再制作一張DVD—ROM,對(duì)所有的信息進(jìn)行一次性的完全更新。
除此以外,不同的使用者應(yīng)該可以設(shè)定自己的個(gè)性化數(shù)據(jù),即在使用車載導(dǎo)航時(shí),根據(jù)個(gè)人的身份數(shù)據(jù)的不同,應(yīng)能產(chǎn)生不同的檢索結(jié)果(這被稱為“個(gè)性化功能”)。在目前的車載導(dǎo)航上還不能夠?qū)崿F(xiàn)這種功能。
要實(shí)現(xiàn)這些功能,必須使用嵌入式數(shù)據(jù)庫。
2.2.6 數(shù)據(jù)庫用在車載導(dǎo)航場合能實(shí)現(xiàn)的功能
下面再詳細(xì)說明一下嵌入式數(shù)據(jù)庫在裝入車載導(dǎo)航裝置后能實(shí)現(xiàn)的新功能。
在檢索功能方面,不但能實(shí)現(xiàn)上面的復(fù)合檢索和模糊檢索等,還能實(shí)現(xiàn)空間檢索。所謂的“空間檢索”,就是能在二維地圖上進(jìn)行檢索。具體地說,就是手機(jī)帶有的道路向?qū)Ш蛙囕d導(dǎo)航的路由檢索功能中預(yù)先把坐標(biāo)數(shù)據(jù)和屬性數(shù)據(jù)保存于數(shù)據(jù)庫中,在檢索條件里設(shè)定一個(gè)空間范圍(比如:離某地幾km內(nèi),同時(shí)在另外一個(gè)范圍內(nèi)。類似二個(gè)圓的交集)。
個(gè)人住所地址或店鋪名稱等發(fā)生更改時(shí),使用嵌入式數(shù)據(jù)庫的優(yōu)勢就體現(xiàn)出來了。例如“A百貨店”改為“B百貨店”時(shí),要是不更換新的DVD—ROM就一直是“A百貨店”,如果換上新的DVD—ROM就會(huì)變成“B百貨店”,“A百貨店”就不能被檢索了,二者都是不能被接受的。這時(shí)如果使用嵌入式數(shù)據(jù)庫,則在一定的時(shí)期內(nèi)對(duì)輸入的“A百貨店”或“B百貨店”都能進(jìn)行檢索;過了一定時(shí)期后,還可以刪掉“A百貨店”,只讓“B百貨店”成為檢索對(duì)象。
以個(gè)人履歷信息為基礎(chǔ)的詳細(xì)個(gè)性化功能的形式如:在“張三”的車載導(dǎo)航的履歷中,他經(jīng)常去壘球場。以后,只要“張三”檢索體育場,首先就會(huì)顯示壘球場的信息。
現(xiàn)在的車載導(dǎo)航有個(gè)很麻煩的問題,那就是由于不能隨時(shí)隨地按要求部分地更新導(dǎo)航設(shè)備中需要更新的相關(guān)信息,而使整個(gè)導(dǎo)航儀器的信息不準(zhǔn)確。下一代的車載導(dǎo)航通過使用數(shù)據(jù)庫來解決這個(gè)問題,使數(shù)據(jù)能夠得到及時(shí)更新;并且在數(shù)據(jù)更新的同時(shí),還可以進(jìn)行數(shù)據(jù)檢索。還有一個(gè)重要的優(yōu)點(diǎn)就是,車載導(dǎo)航的數(shù)據(jù)庫不會(huì)因?yàn)橐嫱V?、電源切斷等原因而被損壞。當(dāng)然,用在車載導(dǎo)航中的嵌入式數(shù)據(jù)庫資源消耗量(CPU和儲(chǔ)存容量)必須很低,而且對(duì)有關(guān)歷史信息、路徑信息也須有某種程度的安全保護(hù)功能。
加載數(shù)據(jù)庫后的車載導(dǎo)航系統(tǒng)功能如圖4所示。
2.3信息家電的實(shí)例
2.3.1 與網(wǎng)絡(luò)連接的家電是將來的主流
信息家電正在改變?nèi)藗兊纳?。以電視機(jī)、大容量刻錄機(jī)、DVD、HD、AV機(jī)等為代表的家電數(shù)字化進(jìn)程正在穩(wěn)步推進(jìn)。另外,電視節(jié)目也將以數(shù)字化的形式傳輸和播放。這些節(jié)目可以預(yù)先存儲(chǔ)在服務(wù)器上再播放,即所謂的“服務(wù)器蓄積型”播放形式。
所謂信息家電就是具有信息處理能力的家電產(chǎn)品。例如:數(shù)碼相機(jī)、手機(jī)等產(chǎn)品,以及今后以和計(jì)算機(jī)網(wǎng)絡(luò)連接為前提的產(chǎn)品(例如DVD、刻錄機(jī)、機(jī)頂盒等)。這些產(chǎn)品一定會(huì)越來越多。
2.3.2 信息家電中使用嵌入式數(shù)據(jù)庫的例子
信息家電領(lǐng)域使用數(shù)據(jù)庫的實(shí)例如圖5所示。
比如一個(gè)用于衛(wèi)星播放或有線播放的機(jī)頂盒。機(jī)頂盒里保存有大量的數(shù)據(jù),如節(jié)目表、節(jié)目內(nèi)容、某時(shí)間段播放的電影內(nèi)容介紹、主演演員的介紹等信息。這些信息的管理和下載、錄入和檢索等都要通過數(shù)據(jù)庫來實(shí)現(xiàn)。用了數(shù)據(jù)庫技術(shù)以后,對(duì)節(jié)目信息可以同時(shí)進(jìn)行下載和檢索。這是利用多進(jìn)程的數(shù)據(jù)庫來實(shí)現(xiàn)的,一個(gè)數(shù)據(jù)庫可以支持多個(gè)用戶同時(shí)訪問。另外,使用節(jié)目名字、種類等進(jìn)行更復(fù)雜的復(fù)合檢索都變得簡單易行。
和互聯(lián)網(wǎng)電視從遠(yuǎn)程下載節(jié)目信息的接收裝置一樣,許多信息家電需要進(jìn)行遠(yuǎn)距離的電視節(jié)目信息的管理、下載、檢索,并根據(jù)演員的名字或節(jié)目種類進(jìn)行復(fù)合檢索。今后的DVD刻錄機(jī)、帶HDD的DVD刻錄機(jī)等產(chǎn)品也需要這些功能。
另外,通過在卡拉OK遙控裝置中裝載嵌入式數(shù)據(jù)庫,就可以提供根據(jù)曲名、種類進(jìn)行復(fù)雜的復(fù)合檢索。通過設(shè)定廣告播放控制盒等設(shè)備的各種參數(shù),可以實(shí)現(xiàn)廣告內(nèi)容的定時(shí)管理等功能。
2.3.3信息家電中使用數(shù)據(jù)庫的注意事項(xiàng)
要在信息家電領(lǐng)域使用數(shù)據(jù)庫,數(shù)據(jù)庫的內(nèi)核必須足夠的小。電源斷電后的恢復(fù)功能(即電源斷電后自動(dòng)恢復(fù)到原先狀態(tài)的功能)也是必要的。在實(shí)際應(yīng)用中,電源發(fā)生瞬間或者長時(shí)間斷電的時(shí)候,對(duì)數(shù)據(jù)進(jìn)行保護(hù)是毋庸置疑的。數(shù)據(jù)庫通常是通過事務(wù)處理來對(duì)數(shù)據(jù)進(jìn)行保護(hù)的。具體地說,這種事務(wù)處理就是把日志寫入文件系統(tǒng)。因此,一旦文件系統(tǒng)被破壞,就不能進(jìn)行事務(wù)處理了。也就是說,僅靠文件系統(tǒng)層面來實(shí)現(xiàn)電源斷電恢復(fù)功能或數(shù)據(jù)保護(hù)功能是很難的。嵌入式數(shù)據(jù)庫里可以帶有其他的硬件所提供的獨(dú)立的高性能、高穩(wěn)定性的文件系統(tǒng)來完善電源斷電恢復(fù)功能和數(shù)據(jù)保護(hù)功能。這時(shí),可以根據(jù)需要選擇文件系統(tǒng)層面的斷電保護(hù)和數(shù)據(jù)庫層面的斷電保護(hù)。
在信息家電的制造中,常常受生產(chǎn)成本或價(jià)格的制約,僅靠硬件達(dá)不到預(yù)期的高性能。因此需要嵌入式數(shù)據(jù)庫,以支持內(nèi)存存取和磁盤存取。把最重要的數(shù)據(jù)表放到內(nèi)存,可以大大提高性能,降低成本。
2.4 宇宙航空和機(jī)器人的實(shí)例
現(xiàn)在,嵌入式數(shù)據(jù)庫在宇宙航空和機(jī)器人等方面有很多實(shí)際應(yīng)用。例如木星探查伽利略計(jì)劃,衛(wèi)星觀測系統(tǒng),地上測定、命令處理系統(tǒng),衛(wèi)星控制系統(tǒng),天氣預(yù)報(bào)的發(fā)布系統(tǒng),戰(zhàn)爭模擬游戲等。除此以外,還有許多其他的宇宙航空項(xiàng)目和機(jī)器人項(xiàng)目中使用了嵌入式數(shù)據(jù)庫,如圖6所示。
嵌入式數(shù)據(jù)庫在宇宙航空以及機(jī)器人的應(yīng)用程序中起著核心的作用。在數(shù)據(jù)庫中保存著全部的程序、指令、可執(zhí)行的模塊,并將這些制作成基于知識(shí)(knowledgebased)或者基于規(guī)則(rule based)的系統(tǒng)??蓤?zhí)行模塊將根據(jù)傳感器的信息執(zhí)行各種動(dòng)作或命令。
將來,保存于數(shù)據(jù)庫中的執(zhí)行模塊很可能實(shí)現(xiàn)自動(dòng)執(zhí)行的功能。