傳統(tǒng)的系統(tǒng)開發(fā)過程周期較長。當應用要求發(fā)生變化時,開發(fā)過程的各個階段都要作相應的修改,因而代價較大。這是因為構成系統(tǒng)的各個功能單元的程序都是依據(jù)結(jié)構化程序思想設計而成的。雖然模塊化程度較高,但忽視了數(shù)據(jù)對程序產(chǎn)生的彬響。由于在結(jié)構化語言中,幾乎重要的數(shù)據(jù)都被定義為全局數(shù)據(jù),而全局數(shù)據(jù)可以被任何一個程序所訪問,所以當全局數(shù)據(jù)的結(jié)構或?qū)傩园l(fā)生變化時,相關聯(lián)的程序必將作相應的修改。
有限的建模能力和計算能力。傳統(tǒng)數(shù)據(jù)庫系統(tǒng)所支持的主要數(shù)據(jù)模型是層次、網(wǎng)狀和關系,并且關系數(shù)據(jù)庫要求一個關系的所有屬性都必須是原子型,面對復雜數(shù)據(jù)的抽象和建模,關系數(shù)據(jù)庫只能建立所謂嵌套關系數(shù)據(jù)模型,這就使得關系數(shù)據(jù)庫對于客觀世界中的實體很難對應,因而對現(xiàn)實世界中復雜數(shù)據(jù)的抽象和表達能力只能是極其有限的。同時,由于數(shù)據(jù)結(jié)構的單一性,導致計算時需要不斷在客觀實體與單一數(shù)據(jù)結(jié)構之間進行轉(zhuǎn)換。
從上面的分析可以看出,不論足在系統(tǒng)級的開發(fā)上還是在數(shù)據(jù)庫的設計與管理上,傳統(tǒng)的系統(tǒng)開發(fā)及數(shù)據(jù)庫管理都存在著缺陷,而面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的開發(fā)可以解決這些傳統(tǒng)開發(fā)系統(tǒng)面臨的問題。

1 面向?qū)ο髷?shù)據(jù)庫原理與實現(xiàn)
面向?qū)ο蠹夹g是一種按照人們對現(xiàn)實世界習慣的認識論思維方式來研究和棋擬客觀世界的方法學,它將現(xiàn)實世界中的任何事物均視為“對象”,客觀世界看成是由許多不同種類的對象構成。每個對象都有自己的內(nèi)部狀態(tài)和運動規(guī)律,不同對象之間的相互聯(lián)系和相互作用就構成了完整的客觀世界。它主要包括三方面內(nèi)容。即面向?qū)ο蟮南到y(tǒng)分析與設計方法、面向?qū)ο蟮臄?shù)據(jù)庫技術和面向?qū)ο蟮某绦蛟O計語言。在這其中,對象的構造與分析是關鍵。
面向?qū)ο蟮脑O計要求相應的數(shù)據(jù)庫支持,而傳統(tǒng)的數(shù)據(jù)庫設計方法具有一定的缺點,因此必須設計針對面向?qū)ο笤O計的數(shù)據(jù)庫系統(tǒng)來實現(xiàn)相應的功能。面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)(OODBMS)是一個既支持面向?qū)ο笙到y(tǒng)特性,又支持DBMS系統(tǒng)特點的系統(tǒng)。在設計和實現(xiàn)OODBMS中,一般有如下三種方案:
修改(擴充)現(xiàn)有的數(shù)據(jù)模型,使之與面向?qū)ο竽P拖嘁恢?,同時增加相應的數(shù)據(jù)庫特征。
獨立開發(fā)出全新的數(shù)據(jù)欖型,直接支持面向?qū)ο箫L格。
在面向?qū)ο蟪绦蛟O計語言中嵌入數(shù)據(jù)庫功能,形成OODBMS。
在本論文中采用第三種設計方法。根據(jù)上面的原理,在對數(shù)據(jù)庫進行設計和構造時,首先進行對象分析。對象分析的目的是針對具體的問題,分析在系統(tǒng)中可能用到哪些對象,對象之間的繼承與上下級關系。然后是確定采用什么樣的數(shù)據(jù)結(jié)構來實現(xiàn),最后是設計一個庫表,實現(xiàn)數(shù)據(jù)的存儲。面向?qū)ο笤O計的數(shù)據(jù)庫設計的流程圖如圖2,

圖2 數(shù)控仿真類關系圖
2 數(shù)控車削仿真數(shù)據(jù)庫設計
數(shù)控車削仿真中的對象分析
如前所述,虛擬數(shù)控車削仿真的目的是以“用戶”為中心的,相應的數(shù)據(jù)庫的設計也必須是以“用戶”為中心的,這就要求數(shù)據(jù)庫具有開放性。即針對用戶的要求,系統(tǒng)可以實現(xiàn)數(shù)據(jù)庫內(nèi)容的重新定義,以完成相應的功能。數(shù)控車削仿真數(shù)據(jù)庫的實現(xiàn)是以軟件中的對象分析為基礎的,因此在進行數(shù)據(jù)庫設計之前。必須首先進行系統(tǒng)的對象分析。
數(shù)控車削仿真對象包括環(huán)境對象、光源、機床對象、刀具對象、工件對象、切屑對象、數(shù)控系統(tǒng)對象、刀架、溜板、工作臺等部件對象。不論是物理仿真還是幾何仿真都是針對的這些對象來反映他們的狀態(tài)與特征。在面向?qū)ο蠓治鲋?,每個對象以類的抽象形式定義。
在數(shù)控車削仿真系統(tǒng)中,將各個對象的“共性”加以抽象,形成類。類的形成原則是所有類對象必需具有某種共性。類中分為虛類和實類。虛類通常為類對象中的最高的類,具有最通用的一些特性。但同時其參數(shù)也相對比較少,如果按照其構造對象,通常無法在視圖中加以顯示。因此常采用實類實現(xiàn)對象的構造,但虛類往往是實類的父類,一些參數(shù)而要從中定義。虛類和實類都可以有子類,不同的是,實類和其子類都可直接構造對象。父實類和了實類可以具有不同的下級類。類關系圖見圖2。
數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)
面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)是實現(xiàn)面向?qū)ο笤O計的關鍵。開放式的數(shù)據(jù)庫管理系統(tǒng)可以通過視圖由用戶實現(xiàn)記錄的增加、刪除、查詢和修改:同時在數(shù)控仿真的各個階段,數(shù)據(jù)庫系統(tǒng)作為仿真的基礎一直運行著。在數(shù)控車削智能仿真系統(tǒng)中,數(shù)據(jù)庫的視圖位于視圖類中,它是用戶與系統(tǒng)交互的窗口,消息通過視圖類傳遞到數(shù)據(jù)庫管理系統(tǒng)中。而數(shù)據(jù)庫管理系統(tǒng)位于系統(tǒng)的文檔類中,負責對數(shù)據(jù)也就是對象的管理。因此下面針對仿真進程中的各個階段,說明數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)。
仿真進程中
在仿真的進程中,尤其是在仿真初始化的時候,采用向下泊歷算法來實現(xiàn)。算法的描述如下:
首先在文檔類中生成一個仿真對象,從面向?qū)ο髷?shù)據(jù)庫中得到相應的信息包括環(huán)境對象、車床對急、車削系統(tǒng)對象。然后根據(jù)車床對象的數(shù)據(jù)庫中的信息可以得到相應的刀具、刀架、底座、導軌等部件的信息,從而形成一個完整的仿真對象,初始化完畢后,在視圖類中顯示。
等待用戶響應,根據(jù)不同的操作形成不同的動態(tài)模型。
在仿真的某一時刻,只需遍歷數(shù)據(jù)庫中帶有當前紀錄標識的對象,就可以得到當前時刻的物理仿真所要的數(shù)據(jù)。
仿真完畢后
在仿真完畢后,可能用戶根據(jù)仿真的結(jié)果需要對對象的屬性甚至是對象的類型進行修改,這就需要對數(shù)據(jù)庫中的內(nèi)容進行更新,假定用戶在視圖中進行了對象更新,則數(shù)據(jù)庫更新的算法可以描述為:
根據(jù)用戶要求確定所要更新的對象;
判斷是整個對每需要更新(轉(zhuǎn)iii),還是對象的屬性需要更新(轉(zhuǎn)vi):
如果整個對象需要更新,要得到對象的標識和ID;
初始化得到對象的各項屬性,并根據(jù)向下遍歷的原則建立下級各節(jié)點的屬性:
如果無其他對象需要更新,則End.否則(轉(zhuǎn)ii):
根據(jù)對象的ID更新對象屬性,并存儲到數(shù)據(jù)庫中,改變當前記錄標識:轉(zhuǎn)v。
3 結(jié)論
本文針對數(shù)控車削過程中數(shù)控仿真的需要,采用面向?qū)ο蟮臄?shù)據(jù)庫技術建立了開放式的數(shù)控仿真數(shù)據(jù)庫,并對其中的數(shù)據(jù)庫的管理和仿真對象的分析進行了詳細的研究。實際應用結(jié)果表明,采用面向?qū)ο蟮臄?shù)據(jù)庫技術可以極大的實現(xiàn)系統(tǒng)功能的擴展。從而使得系統(tǒng)的開放性和擴展性大大的提高。










