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



