丁秀玲 孫巍
摘要:數(shù)據(jù)庫在運(yùn)載火箭飛行仿真系統(tǒng)中具有相當(dāng)重要的地位,整個(gè)仿真的過程都是圍繞仿真數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的。仿真結(jié)果數(shù)據(jù)是仿真數(shù)據(jù)庫中最重要的數(shù)據(jù),并且是海量數(shù)據(jù),要求有高效的方法對(duì)這些數(shù)據(jù)進(jìn)行訪問和處理。針對(duì)此問題,本文對(duì)仿真數(shù)據(jù)庫的設(shè)計(jì)以及優(yōu)化技術(shù)進(jìn)行了重點(diǎn)研究。
關(guān)鍵詞:仿真數(shù)據(jù)庫 優(yōu)化 數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)分析
近年來,仿真技術(shù)為越來越多的人所接受和使用,并成為一種認(rèn)識(shí)和改造客觀世界的重要手段。隨著仿真技術(shù)在航天領(lǐng)域應(yīng)用的不斷發(fā)展,與此同時(shí)仿真技術(shù)中涉及的數(shù)據(jù)也越來越多,數(shù)據(jù)類型也越來越豐富。如何合理、動(dòng)態(tài)地存放仿真中相互關(guān)聯(lián)的數(shù)據(jù),高效率的使用數(shù)據(jù),并提供高度安全性和完整性的數(shù)據(jù)庫,成為大型仿真系統(tǒng)中不可或缺的部分。所以,數(shù)據(jù)庫在設(shè)計(jì)過程中對(duì)性能的考慮很重要。本文從仿真系統(tǒng)工作流程以及數(shù)據(jù)庫需求出發(fā),著重討論如何使用數(shù)據(jù)庫管理程序(DBMS)完成數(shù)據(jù)庫的設(shè)計(jì),以及怎樣設(shè)計(jì)出較高性能的數(shù)據(jù)庫。
0飛行仿真數(shù)據(jù)庫概況
飛行仿真系統(tǒng)數(shù)據(jù)庫主要包括:
(1)仿真模型數(shù)據(jù)庫:包括不同粒度的系統(tǒng)模型、分系統(tǒng)模型和元部件仿真模型、仿真故障數(shù)據(jù)庫、環(huán)境仿真模型(如地球模型、大氣環(huán)境模型、空間環(huán)境模型、月球、太陽模型等)、仿真實(shí)體模型等;
(2)仿真知識(shí)數(shù)據(jù)庫:仿真應(yīng)用系統(tǒng)重要的組成部分,通過在積累現(xiàn)有經(jīng)驗(yàn)的基礎(chǔ)上不斷建立包含特定型號(hào)的建模仿真參數(shù),有利于運(yùn)載火箭設(shè)計(jì)和仿真知識(shí)的繼承和重用。仿真知識(shí)數(shù)據(jù)庫中還包括仿真算法庫,提供標(biāo)準(zhǔn)的數(shù)學(xué)計(jì)算、矩陣計(jì)算、積分、微分、傳遞函數(shù)、狀態(tài)方程、數(shù)據(jù)插值和坐標(biāo)轉(zhuǎn)換等基本算法,供模型開發(fā)過程統(tǒng)一調(diào)用;
(3)仿真試驗(yàn)數(shù)據(jù)庫:是存儲(chǔ)運(yùn)載火箭飛行仿真試驗(yàn)過程和仿真結(jié)果數(shù)據(jù)的數(shù)據(jù)庫,存儲(chǔ)的數(shù)據(jù)主要包括飛行仿真過程中試驗(yàn)對(duì)象的各種原始數(shù)據(jù)、仿真中間數(shù)據(jù)和仿真結(jié)果數(shù)據(jù),仿真人員使用仿真試驗(yàn)數(shù)據(jù)庫,可對(duì)運(yùn)載火箭的飛行試驗(yàn)數(shù)據(jù)進(jìn)行統(tǒng)一存儲(chǔ)、維護(hù)、分析和處理,以規(guī)范試驗(yàn)設(shè)計(jì)和數(shù)據(jù)分析評(píng)估過程。
數(shù)據(jù)庫管理系統(tǒng)可以通過數(shù)據(jù)庫外部交互接口,與其他設(shè)計(jì)軟件(如氣動(dòng)設(shè)計(jì)分析、結(jié)構(gòu)設(shè)計(jì)分析和控制系統(tǒng)設(shè)計(jì)分析等)進(jìn)行數(shù)據(jù)存取,可以有效利用專業(yè)設(shè)計(jì)仿真軟件提高飛行仿真平臺(tái)的特定領(lǐng)域運(yùn)算能力。
1飛行仿真數(shù)據(jù)庫總體架構(gòu)設(shè)計(jì)
在分析當(dāng)前數(shù)據(jù)庫技術(shù)的基礎(chǔ)上,針對(duì)運(yùn)載火箭飛行仿真系統(tǒng)這一應(yīng)用背景,從現(xiàn)代仿真系統(tǒng)的框架人手,設(shè)計(jì)飛行仿真數(shù)據(jù)庫的總體架構(gòu)。如圖1所示。
1.1仿真模型數(shù)據(jù)庫設(shè)計(jì)
基于組件開發(fā)的運(yùn)載火箭飛行仿真模型具有層次化的特點(diǎn)。模型在仿真模型庫管理系統(tǒng)中以樹形層次化的方式表達(dá),一個(gè)模型被表示成一個(gè)復(fù)合類,該復(fù)合類的一些屬性又被另外的復(fù)合類或基本類定義,最終構(gòu)成由復(fù)合類表示的面向?qū)ο蟮哪P徒Y(jié)構(gòu)樹。仿真模型可以被看作是一個(gè)復(fù)合類,為了使模型庫中的模型有統(tǒng)一的管理模式,采用存在繼承關(guān)系的對(duì)象
模型字典和模型結(jié)構(gòu),共同來定義標(biāo)準(zhǔn)的模型規(guī)范。改進(jìn)的面向?qū)ο蟮哪P捅硎救鐖D2所示。
模型的存儲(chǔ)有兩種典型方式:(1)元數(shù)據(jù)的存儲(chǔ);(2)面向?qū)ο髷?shù)據(jù)庫。鑒于面向?qū)ο髷?shù)據(jù)庫應(yīng)用的不廣泛及不成熟性,并且運(yùn)載火箭仿真建模得到的模型主要以文件形式存在,模型的存儲(chǔ)采用元數(shù)據(jù)的存儲(chǔ)方式,即在數(shù)據(jù)庫的表空間中存儲(chǔ)模型和相關(guān)文檔的標(biāo)識(shí)信息、版本信息、存儲(chǔ)位置、性能參數(shù),以及與模型間的關(guān)系等信息,具體的模型文件和相關(guān)說明文檔存儲(chǔ)在文件系統(tǒng)中。
在模型庫系統(tǒng)中,模型的屬性、接口和操作的存儲(chǔ)是指與這些內(nèi)容相關(guān)的數(shù)據(jù)的存儲(chǔ)。這些數(shù)據(jù)對(duì)屬性、接口和操作做了詳細(xì)的描述,當(dāng)用戶需要下載和使用模型的時(shí)候,首先得到模型的這方面數(shù)據(jù),才能正確地下載和使用模型。為了便于存儲(chǔ)和管理,模型的屬性、接口和操作數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫的表結(jié)構(gòu)中,根據(jù)前面提到的改進(jìn)的面向?qū)ο蟮哪P兔枋鲆?guī)范,這些表應(yīng)該包括模型表、屙眭表、接口表、操作表和結(jié)構(gòu)表等。模型表包括模型名、各個(gè)屬性標(biāo)識(shí)、接口標(biāo)識(shí)和模型結(jié)構(gòu)標(biāo)識(shí)、模型描述等;屬性表包括屬性標(biāo)識(shí)、屬性的名稱、屬性的值、屬性的單位等;接口表包括接口的標(biāo)識(shí)、接口的名稱、接口的參數(shù)等;操作表包括操作的標(biāo)識(shí)、操作的名稱、操作的參數(shù)和操作的結(jié)果等;結(jié)構(gòu)表包括結(jié)構(gòu)的標(biāo)識(shí)、結(jié)構(gòu)的名稱和結(jié)構(gòu)的內(nèi)容等。
1.2仿真知識(shí)數(shù)據(jù)庫設(shè)計(jì)
仿真知識(shí)數(shù)據(jù)庫是面向型號(hào)組織和查詢信息的系統(tǒng),因此其存儲(chǔ)的內(nèi)容將會(huì)是運(yùn)載火箭飛行仿真系統(tǒng)全系統(tǒng)和全生命周期中任一部分和任一時(shí)刻的信息資料,而其信息的表現(xiàn)形式則可能是文本、圖片或圖表甚至是三維模型等多種形式。因此仿真知識(shí)數(shù)據(jù)庫要具備存儲(chǔ)、組織、查詢和顯示多類仿真資源的能力,并要具有仿真控制功能。
在運(yùn)載火箭系統(tǒng)的研制過程中,一般劃分為可行性論證、方案論證、初樣、試樣和應(yīng)用發(fā)射等幾個(gè)階段。其中,方案、初樣和試樣又統(tǒng)稱工程研制階段。在各個(gè)研制階段,型號(hào)信息的覆蓋范圍廣,內(nèi)容龐雜,要完成對(duì)這諸多信息的存儲(chǔ)和查詢,又要盡可能避免不必要的數(shù)據(jù)冗余,還要考慮不同型號(hào)具體信息結(jié)構(gòu)的異同以及各類用戶訪問需求,只能將存儲(chǔ)信息抽象到文件級(jí),即以描述型號(hào)的各種文件為數(shù)據(jù)單元,以型號(hào)為數(shù)據(jù)之間關(guān)系的紐帶來組織和管理信息,這樣既能保證對(duì)型號(hào)信息的查詢,又能保證每個(gè)型號(hào)具體細(xì)節(jié)內(nèi)容之間可以有所不同的靈活性,比較可取。整個(gè)系統(tǒng)數(shù)據(jù)流程如圖3所示。
根據(jù)上述流程圖,可得到需要設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:
(1)型號(hào)信息,包括的數(shù)據(jù)項(xiàng)型號(hào)名稱、分系統(tǒng)名稱、子系統(tǒng)名稱、數(shù)據(jù)文名稱等;
(2)權(quán)限驗(yàn)證,包括的數(shù)據(jù)項(xiàng)有用戶名、密碼等。
仿真知識(shí)庫的設(shè)計(jì)思想主要包括:
(1)盡量采用普通的軟硬件環(huán)境,在考慮實(shí)驗(yàn)室仿真平臺(tái)信息需求的基礎(chǔ)上,爭(zhēng)取使該系統(tǒng)具備較強(qiáng)的通用性,從而達(dá)到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。
(2)系統(tǒng)應(yīng)達(dá)到操作過程中直觀、方便、實(shí)用、安全等要求。
(3)系統(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)。
(4)系統(tǒng)應(yīng)具備數(shù)據(jù)維護(hù)功能,及時(shí)根據(jù)數(shù)據(jù)變化進(jìn)行添加、刪除、修改、查詢等操作,并加入用戶權(quán)限功能,使系統(tǒng)更加安全。
1.3仿真實(shí)驗(yàn)數(shù)據(jù)庫設(shè)計(jì)
仿真實(shí)驗(yàn)的層次結(jié)構(gòu)如圖4所示,每個(gè)實(shí)驗(yàn)包含若干個(gè)試驗(yàn),試驗(yàn)是指在某個(gè)特定實(shí)驗(yàn)點(diǎn)下的實(shí)驗(yàn)。如果仿真系統(tǒng)中存在不確定因素,為了進(jìn)行統(tǒng)計(jì)分析,則需要在每個(gè)實(shí)驗(yàn)點(diǎn)下進(jìn)行多次仿真運(yùn)行,否則只需要運(yùn)行一次。
仿真實(shí)驗(yàn)數(shù)據(jù)庫用于存儲(chǔ)仿真實(shí)驗(yàn)數(shù)據(jù)。仿真實(shí)驗(yàn)數(shù)據(jù)又包含仿真實(shí)驗(yàn)輸入和輸出數(shù)據(jù)。實(shí)驗(yàn)輸入數(shù)據(jù)是指每個(gè)試驗(yàn)的初始數(shù)據(jù),實(shí)驗(yàn)輸出是指每次仿真運(yùn)行產(chǎn)生的仿真數(shù)據(jù)。由此可以看出,對(duì)于每個(gè)試驗(yàn)下的多次仿真運(yùn)行而言,它們具有相同的輸入,但輸出不同。依據(jù)仿真實(shí)驗(yàn)結(jié)構(gòu)以及仿真實(shí)驗(yàn)數(shù)據(jù)的特點(diǎn),設(shè)計(jì)仿真實(shí)驗(yàn)數(shù)據(jù)庫結(jié)構(gòu)如圖5所示。
2數(shù)據(jù)庫優(yōu)化
該飛行仿真數(shù)據(jù)庫中存有海量數(shù)據(jù),對(duì)該數(shù)據(jù)庫的訪問往往需要數(shù)十分鐘,甚至數(shù)小時(shí)。如果不采用任何的優(yōu)化策略,將造成極其低的效率,會(huì)嚴(yán)重影響仿真系統(tǒng)的性能。通常,為了提高數(shù)據(jù)庫系統(tǒng)的性能,可以采用較好的優(yōu)化策略對(duì)系統(tǒng)進(jìn)行環(huán)境優(yōu)化,例如,內(nèi)存優(yōu)化、磁盤I/O優(yōu)化、CPU優(yōu)化、網(wǎng)絡(luò)系統(tǒng)優(yōu)化、應(yīng)用程序優(yōu)化等,還有一個(gè)重要的優(yōu)化手段就是進(jìn)行SQL語句的優(yōu)化,可以通過SQL語句的調(diào)整、創(chuàng)建適當(dāng)?shù)乃匾?。在此著重介紹本系統(tǒng)中用到比較多的索引和SQL語句優(yōu)化。
2.1合理索引策略
合理的是使用索引有助于加快數(shù)據(jù)的檢索的時(shí)間,但索引并不是越多越好。對(duì)于OLTP系統(tǒng),若有大量的插入或刪除操作,要盡量少使用索引(只在必要的列上使用索引如主鍵上創(chuàng)建索引),因?yàn)樗饕诖罅緿ML操作時(shí)會(huì)觸發(fā)自身的更新維護(hù),并且需要存儲(chǔ)空間。如果確定查詢一個(gè)表的結(jié)果不會(huì)高于總行數(shù)的124%,則可以使用索引加快查詢速度。
2.2 SOL語句優(yōu)化
在SQL語句優(yōu)化階段,基于成本的優(yōu)化即CBO(Cost-Based Optimizer),CBO需要使用優(yōu)化SQL句的各種數(shù)據(jù)資源,如表自身的數(shù)據(jù),索引統(tǒng)計(jì)數(shù)據(jù),系統(tǒng)的I/O速率,以及SQL語句的CPU執(zhí)行周期等。CBO將在幾個(gè)可選的執(zhí)行計(jì)劃中選擇時(shí)間成本最低的一個(gè)作為該SQL語句的最佳執(zhí)行計(jì)劃。
具體是將CBO使用表和索引的統(tǒng)計(jì)數(shù)據(jù),SOL語句中表和列的連接順序,可用的索引,以及統(tǒng)計(jì)的操作系統(tǒng)數(shù)據(jù)作為依據(jù)來選擇訪問數(shù)據(jù)的最佳方法,整個(gè)處理過程如圖6所示。
3結(jié)語
本文從運(yùn)載火箭飛行仿真系統(tǒng)的具體應(yīng)用需求出發(fā),按照數(shù)據(jù)庫設(shè)計(jì)的規(guī)范化步驟,對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行了相應(yīng)的規(guī)劃設(shè)計(jì)以及優(yōu)化處理,使本仿真系統(tǒng)的實(shí)時(shí)性及可靠性得到了很好的保障。隨著原仿真系統(tǒng)功能的進(jìn)一步的改進(jìn)和發(fā)展,本數(shù)據(jù)庫系統(tǒng)還需作相應(yīng)的完善和擴(kuò)充,有待更進(jìn)一步的研究。