針對構建物技藝的勘驗分析儀器的系統建設
一、采用面向對象的數據庫的必要性
在該系統的開發過程中,研究的對象一般是指測量實體對象模型,比如測站、測量點、測量結果等實體及各自的具體內容,另外還有環境模型如操作者、天氣、氣壓、測量等級以及各種限差。由于這些模型組成的系統涉及的對象繁多,相互關系又比較復雜,需要統一信息數據庫進行管理。但若采用常用的關系型數據庫,很難對實體結構進行描述,也無法體現實體之間的層次關系和組成關系,因而我們考慮應采用面向對象的數據庫形成結構。
對象是一個客觀世界中存在的現實事物及其相互作用關系的抽象的描述,這些事物具有相同的特征,并服從和遵守相同的原則。在測量系統中一個點是一個對象,一次測量結果同樣是一個對象。一個狀態或者一種現象只要與系統研究有關,又不使問題研究變得過于復雜,都可以確定為一個對象。
對象可看作為問題空間的實體,在全局范圍是開放的,而在局部內是封閉自主的。對象有獨立封裝的數據和操作,它的數據描述了對象的狀態,而操作能改變對象的狀態或者實現某一特定的功能。
從存儲角度看,對象是一片私有存儲區,它按內部安排保存自己的專有信息,只有私有操作才能增減改變。這些私有數據表示了對象的狀態,其他對象要改變這些狀態的方式只能是發送消息。從對象的實現機制看,它是一臺自動機,它的狀態只能自行操作改變,其他對象發送的消息被該對象響應后,根據消息機制找到匹配方法,并執行相應的操作。發送消息只能觸發自動機,這種觸發方式在同樣的輸入參數時可因自動機的狀態不同而結果不同,這樣多個對象能從另一對象中獲取信息。而過程調用時若輸入相同,結果一定相同。
正因為對象的狀態變量對外開放性能可控可觀,它的對內封閉性能自控可觀,而可控是通過事件觸發的形式實現,自控是通過過程控制的方式實現,所以這樣就為實現復雜系統的控制提供了理論基礎,因而可采用面向對象的數據庫。
二、數據庫的設計
1.總體分析
根據用戶的要求,結合實際的測量過程和數據要求,在對該系統軟件模型經過多次反復模擬、修正的基礎上,對系統進行認真的功能分析() ,并使用Rational Rose進行模型和核心代碼的同步生成。從圖中可以看出數據庫在該系統中的核心作用,系統的主要功能都與數據庫相關。
2.詳細設計
在對總體分析的基由可知在該系統中各個功能都與數據庫有密切的聯系,而每部分功能都包含不同類型對象及大量對應的數據,這些數據若用普通關系型數據庫管理,因缺乏對實體的結構進行描述的方法而不能反映實體之間的層次關系和組成關系。面向對象的數據模型是一種語義關聯模型,其基本組成單元是數據對象,對象是現實問題中的一個實體,并用屬性描述對象的特征,同時又可指定某個屬性(或多個屬性組合)作為對象的標識符。如實體類中的點,有抽象點、技術點、測站點等,而一次測量結果不僅包括實際觀測結果還包括環境、測量等級等。所以建立數據庫時應考慮對象之間的如下關系:1.抽象關系。表現為可存儲性,它強調設計前的系統分析,并全面、系統、詳盡地描述數據信息,引入了更加豐富的數據結構和類型,并設立一片私有存儲區,存放能表征實體對象的數據與操作,形成一種數據驅動的程序設計方法。如在一個測站上的一次完整測量模型數據是一個實體,則可確定為一個對象。它有獨立的結構數據,如操作者、天氣、風向、氣壓等;又有關聯數據,如存儲的測站信息、目標點以及每次的觀測值等;更有控制數據,如各種限差、測量等級、測量模式等。這些數據只能由與測量模型有關的事件享用。
2.繼承關系。它反映一個對象類與若干個互不相容的子類之間的分類關系。高層類描述一般屬性,低層類說明特殊屬性,低層類對象繼承高層類對象的屬性。這種繼承性按繼承關系帶入一些預定功能,并可做修改。從而減少代碼的冗余和協調簡化對象類之間的接口。如測站和目標點都是點對象的子對象。
3.聚集關系。聚集關系反映了嵌套對象的概念,嵌套對象是由一些其他對象組成的,它用來描述更高層次的對象的一種形式。也就是對象間的組裝、合并、分離、拼接等關系。如一測站測量結果由測站對象、技術點對象、儀器對象等組成。
面向對象的數據庫不同于關系數據庫,關系數據庫使用查尋語句面向終端用戶,把邏輯數據與物理實現分開。而面向對象的數據庫是一種語義關聯模型,主要描述實體之間的層次關系和組成關系。
該系統通過把各種復雜的對象組織在統一的數據庫內,從而可以有效地使用高級語言中預先定義的數據結構及控制結構進行描述,實現其相應功能。
是根據上述思想給出的一個具體例子。從中可以看出采用面向對象的思想設計數據庫組織數據時具有脈絡清楚、易于管理等多個優點。
三、數據的存入與讀取
根據上述思想設計好面向對象的數據庫模型后,就進入到數據庫的物理設計階段,即數據庫的存儲實現和檢索實現。由于兩者有極大的相似性,下面以數據檢索為例作說明。
比如說要查詢某個測站上的測量數據。首先打開包含該測站的數據庫(即某個文件) ,然后建立與該測站相關的測站對象、測站容器對象、測站過濾器對象等實現對該測站的搜索,這樣就可以得到測站的相關信息。接下來采用類似的方法在已知的測站上根據技術點搜索到與此相關的所有測量結果,從而可以獲得每次測量的每一項測量值,如所示。
四、結論
我們在系統的設計實現過程中,采用的就是這種面向對象的數據庫。在這種數據庫的組織下,各開發人員可以獨立有效地對數據庫實行或讀或寫的操作。同時,當數據庫設計得不盡完善時,可以很方便地實現增加刪除對象或者對對象的內部數據增刪改。在儀器上的使用也都證明了以上的思想。
面向對象的數據庫作為一種新的建庫思想,有著廣闊的前景,它相對于其他模型的數據庫有以下幾個優點:
1.面向對象的數據庫為測量數據的管理定義了一個一致的數據庫模型,能更加真實地表達現實世界,從而提供一個功能完備的平臺,使系統集成更為便利。
2.采用面向對象的數據庫能夠定義對象間的復雜關系,有利于管理和分析;能減少數據的冗余,這對于存儲容量小的儀器是很有用的。
3.數據獨立存儲可實現數據集中管理,同時由于數據被系統完全封裝,可以實現靈活的調用,增加數據的重用性。中國糧油儀器網 http://m.51wenwangwen.com/
