【摘要】組態(tài)軟件廣泛的應(yīng)用于工業(yè)過程控制中,決策者如何能夠隨時查看生產(chǎn)過程數(shù)據(jù),以便快速地做出更為正確的商業(yè)決策,是企業(yè)信息化建設(shè)的重點。生產(chǎn)過程數(shù)據(jù)是很重要的資源,如果不能解決生產(chǎn)過程數(shù)據(jù)實時有效傳遞的問題,將無法充分保障決策管理者的投資,以便使企業(yè)獲得最大的利潤??刂葡到y(tǒng)要求能夠迅速反應(yīng)當(dāng)前的生產(chǎn)狀態(tài),具有嚴(yán)格的實時性,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫不能實時反映當(dāng)前有效期內(nèi)數(shù)據(jù)的情況,不適合時間關(guān)鍵型的應(yīng)用領(lǐng)域,需要設(shè)計專門的實時數(shù)據(jù)庫來解決這類問題。
【關(guān)鍵詞】組態(tài)軟件實時數(shù)據(jù)庫事務(wù)處理歷史數(shù)據(jù)庫
1組態(tài)軟件的研究
組態(tài)軟件是工業(yè)現(xiàn)場廣泛應(yīng)用的專業(yè)軟件,具有數(shù)據(jù)采集、顯示、控制、通信等功能,是工業(yè)系統(tǒng)的最終實現(xiàn)工具。
組態(tài)軟件的主要功能模塊有提供多種通信協(xié)議的FO模塊,可生成可被調(diào)用工程數(shù)據(jù)文件的組態(tài)配置模塊,供后臺運行使用的實時數(shù)據(jù)采集模塊,數(shù)據(jù)分析和處理模塊,實時監(jiān)測運行情況的監(jiān)測控制模塊,歷史數(shù)據(jù)處理模塊。
隨著工業(yè)的發(fā)展,組態(tài)軟件的功能也日益增多、增強,數(shù)據(jù)量也不斷擴(kuò)大,數(shù)據(jù)之間的關(guān)系也越來越復(fù)雜。而數(shù)據(jù)庫技術(shù)在商業(yè)領(lǐng)域中取得巨大成功,帶來巨大的效益。用數(shù)據(jù)庫技術(shù)來管理、處理組態(tài)軟件中的數(shù)據(jù)成為人們普遍開發(fā)應(yīng)用的課題。但這些數(shù)據(jù)的顯著特點是具有時間特性,且有效時間是短暫的,過時則失效。而以關(guān)系數(shù)據(jù)庫為代表的傳統(tǒng)數(shù)據(jù)庫的設(shè)計目標(biāo)則是維護(hù)數(shù)據(jù)的正確性、保證系統(tǒng)的低代價和提供友好的用戶接口。這種數(shù)據(jù)庫系統(tǒng)對傳統(tǒng)的商務(wù)和事務(wù)型應(yīng)用是非常有效的、成功的,但對于滿足新要求的實時數(shù)據(jù)和實時事務(wù)的應(yīng)用要求卻難以勝任。所以,需要對數(shù)據(jù)庫技術(shù)和實時技術(shù)的結(jié)合進(jìn)行研究,設(shè)計具有顯式定時限制的實時數(shù)據(jù)庫系統(tǒng)。
2實時數(shù)據(jù)庫的基本概念
實時數(shù)據(jù)庫系統(tǒng)RTDBS(Real-Time Database System)是數(shù)據(jù)和事務(wù)都有定時特性或確定的定時限制的數(shù)據(jù)庫系統(tǒng)。系統(tǒng)的正確性不僅依賴于邏輯結(jié)果,還依賴于邏輯結(jié)果產(chǎn)生的時間。實時數(shù)據(jù)庫是用于處理數(shù)據(jù)不斷變化的系統(tǒng),這與傳統(tǒng)的數(shù)據(jù)庫管理不受時間影響的持久性數(shù)據(jù)具有很大的差別,這包含了對短暫有效數(shù)據(jù)的定時存取。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)目的在于處理永久性效據(jù),其設(shè)計與開發(fā)強調(diào)維護(hù)數(shù)據(jù)的完整性、一致性,提高系統(tǒng)的吞吐量和降低系統(tǒng)成本代價,不考慮與數(shù)據(jù)及其處理相關(guān)聯(lián)的定時限制,因而傳統(tǒng)的商務(wù)型和管理事務(wù)型DBMS不能滿足這種實時應(yīng)用的需求。因此,只有將數(shù)據(jù)庫與實時系統(tǒng)兩者的概念、技術(shù)、方法與機制集成在一起的實時數(shù)據(jù)庫系統(tǒng)才能同時支持定時性和一致性要求,以適用新型領(lǐng)域的應(yīng)用。
從數(shù)據(jù)庫的角度看,一個過程控制系統(tǒng)由三個子系統(tǒng)組成:被控系統(tǒng)、執(zhí)行控制系統(tǒng)、數(shù)據(jù)系統(tǒng)。在實時數(shù)據(jù)庫中,數(shù)據(jù)的值隨時依外部環(huán)境狀態(tài)的變化而頻繁地改變,一個數(shù)據(jù)值只在一定的時間內(nèi)是有效的,許多事務(wù)又只能使用有效數(shù)據(jù)。設(shè)計事務(wù)調(diào)度策略時,事務(wù)的時間約束是一個重要的因素,時間要求苛刻的事務(wù),在不影響實時數(shù)據(jù)庫一致性的前提下,應(yīng)該盡早的調(diào)度運行。對于實時數(shù)據(jù)庫中的每一個數(shù)據(jù)對象,有內(nèi)部一致性、外部一致性和相互一致性三個特征。為了使事務(wù)滿足它們的時效性,應(yīng)當(dāng)將事務(wù)的時間信息加入到調(diào)度中來,事務(wù)越緊急應(yīng)越早的投入運行。一個實時數(shù)據(jù)對象和非實時對象之間的主要差別就在實時數(shù)據(jù)對象存在一個數(shù)據(jù)有效的時間范圍,超出這個時間范圍,數(shù)據(jù)的效用將降低。
3組態(tài)軟件實時數(shù)據(jù)庫的實現(xiàn)
實時數(shù)據(jù)庫技術(shù)是實時系統(tǒng)和數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物,我們希望利用數(shù)據(jù)庫技術(shù)來解決實時系統(tǒng)中的數(shù)據(jù)管理問題。提高數(shù)據(jù)庫系統(tǒng)的實時性有很多行之有效的好辦法,改善系統(tǒng)的硬件配置,使用經(jīng)過專門設(shè)計的計算機系統(tǒng)來提升計算機整體性能,提高數(shù)據(jù)檢索和數(shù)據(jù)處理的速度,使數(shù)據(jù)庫運行在內(nèi)存中,然后針對內(nèi)存中的數(shù)據(jù)庫設(shè)計專門的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理算法可以極大的改善數(shù)據(jù)庫的處理效率,提高系統(tǒng)的實時性。
數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計是指從數(shù)據(jù)庫的概念模型出發(fā),設(shè)計表示為邏輯模式的數(shù)據(jù)庫邏輯結(jié)構(gòu)。邏輯結(jié)構(gòu)設(shè)計與DBMS采用的數(shù)據(jù)模型(如關(guān)系模型、層次模型、網(wǎng)狀模型)密切相關(guān)。MysQL數(shù)據(jù)庫管理系統(tǒng)是從于關(guān)系數(shù)據(jù)模型的,關(guān)系數(shù)據(jù)庫是按照二維表組織和存儲的相互關(guān)聯(lián)的關(guān)系(表)的集合,關(guān)系數(shù)據(jù)庫模式是關(guān)系模式的集合。
數(shù)據(jù)庫邏輯設(shè)計只是規(guī)定了數(shù)據(jù)庫中存放的應(yīng)用數(shù)據(jù)的邏輯結(jié)構(gòu),這種邏輯結(jié)構(gòu)與數(shù)據(jù)庫的具體物理實現(xiàn)無關(guān)。因此,在數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計階段,需要進(jìn)一步考慮數(shù)據(jù)在實際數(shù)據(jù)庫管理系統(tǒng)、硬件環(huán)境和操作系統(tǒng)平臺下的具體存儲結(jié)構(gòu)和數(shù)據(jù)存取方式,即數(shù)據(jù)庫的物理結(jié)構(gòu)。
將與平臺無關(guān)的描述數(shù)據(jù)庫邏輯結(jié)構(gòu)的關(guān)系模式轉(zhuǎn)換為所選定的具體數(shù)據(jù)庫管理系統(tǒng)(DBMS)可支持的基本關(guān)系表以完成數(shù)據(jù)庫邏輯模式的實現(xiàn)。選擇或配置基本關(guān)系表的文件組織形式。MySQL5中有三種主要的表類型:MyISAM、InnoDB和HEAP,這三種類型各有特點,使用場合不同。MyISAM數(shù)據(jù)表類型的特點是成熟、穩(wěn)定和易于管理,存取率非常高、占用空間比較少,數(shù)據(jù)記錄的提取和恢復(fù)工作比其他的數(shù)據(jù)表容易;InnoDB表功能比較完善,但是占用空間量相對大很多;HEAP數(shù)據(jù)表只存在于內(nèi)存中,所以數(shù)據(jù)的存取速度非常快。根據(jù)數(shù)據(jù)庫的特點,歷史數(shù)據(jù)庫選擇MyISAM表類型,實時數(shù)據(jù)庫選擇HEAP表類型。
在實時數(shù)據(jù)庫系統(tǒng)中,事務(wù)分類方法有很多種,從事務(wù)處理數(shù)據(jù)的方式上來劃分,可以分為:只讀、只寫和更新事務(wù)。這種分類方法對于分析數(shù)據(jù)庫的并發(fā)控制比較方便。
組態(tài)軟件實時數(shù)據(jù)庫是一個軟實時系統(tǒng),對于事務(wù)截止期(deadiine)的限制并不是非常嚴(yán)格。事務(wù)調(diào)度的目標(biāo)是當(dāng)并發(fā)度高、負(fù)載大的時候,讓最重要的一類事務(wù)先滿足截止期的要求,并盡量滿足多數(shù)事務(wù)的時間限制。事務(wù)根據(jù)緊迫性要求分為兩類,一類是實時事務(wù),另一類為非實時事務(wù),由兩個事務(wù)隊列來管理。當(dāng)事務(wù)請求到來的時候,先根據(jù)事務(wù)的性質(zhì)將事務(wù)分配到這兩個隊列中,形成兩個調(diào)度序列。在事務(wù)執(zhí)行時候,通過設(shè)定優(yōu)先級管理模塊優(yōu),把實時事務(wù)隊列中的事務(wù)投入運行。
結(jié)束語
實時數(shù)據(jù)庫的基礎(chǔ)理論和具體實現(xiàn)在國內(nèi)外都還處在不成熟階段,沒有統(tǒng)一的工業(yè)標(biāo)準(zhǔn)。設(shè)計一個完整的實時數(shù)據(jù)庫還有許多方面需要進(jìn)一步學(xué)習(xí)與研究。
組態(tài)軟件實時數(shù)據(jù)庫具有重要的基礎(chǔ)性作用,在充分學(xué)習(xí)和研究實時數(shù)據(jù)庫領(lǐng)域的現(xiàn)有的基礎(chǔ)理論前提下,從實時數(shù)據(jù)庫的普遍性概念和設(shè)計思路入手,分析了實時數(shù)據(jù)庫的功能需求。針對過程控制領(lǐng)域?qū)M態(tài)軟件提出的實時性要求,通過采用自主開發(fā)的實時數(shù)據(jù)庫和成熟的傳統(tǒng)關(guān)系數(shù)據(jù)庫相結(jié)合的方式來存儲和管理數(shù)據(jù),從而發(fā)揮兩個數(shù)據(jù)庫的各自優(yōu)點。
實時數(shù)據(jù)庫的設(shè)計能顯著提高系統(tǒng)的響應(yīng)速度,比基于磁盤的數(shù)據(jù)庫有更高的存取效率,滿足組態(tài)軟件實時性的要求。