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