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