秦志翔,牟 蘭,閆 祎
(大連測控技術(shù)研究所,遼寧大連116013)
數(shù)據(jù)處理有2種不同的方式:操作型處理和分析型處理,也稱作OLTP(聯(lián)機事務(wù)處理)和OLAP(聯(lián)機分析處理)。操作型處理也叫事務(wù)處理,是指對數(shù)據(jù)庫聯(lián)機的日常操作,在潛艇噪聲數(shù)據(jù)庫中通常是對一條噪聲數(shù)據(jù)的錄入。這種應(yīng)用要求快速響應(yīng)錄入人員的請求,對數(shù)據(jù)的安全性、完整性以及并發(fā)性的要求都很高。分析型處理是指對海量數(shù)據(jù)的查詢和分析操作,在潛艇噪聲分析中一般可以對應(yīng)噪聲源的分析與噪聲預(yù)報,這樣的操作要訪問的數(shù)據(jù)量非常大,查詢分析過程也十分復(fù)雜。二者的差異使得傳統(tǒng)的數(shù)據(jù)庫技術(shù)不能同時滿足這2種數(shù)據(jù)處理的要求,數(shù)據(jù)倉庫技術(shù)應(yīng)運而生。
基于OLTP的數(shù)據(jù)模型如圖1所示,從圖中可以清楚地了解到基于數(shù)據(jù)操作的各個數(shù)據(jù)庫是獨立的,用戶關(guān)心的是試驗數(shù)據(jù)能否完整地存儲到數(shù)據(jù)庫中,存取的效率如何。對于元器件試驗數(shù)據(jù)庫不用關(guān)心存儲到其他設(shè)備和目標數(shù)據(jù)庫中的資料是否與元器件數(shù)據(jù)庫中的數(shù)據(jù)相對應(yīng)。其他2個數(shù)據(jù)庫同樣不關(guān)心其他數(shù)據(jù)是如何存儲,如此組成的數(shù)據(jù)庫如果需要日后集成分析做噪聲控制就會出現(xiàn)由于各個數(shù)據(jù)庫中的數(shù)據(jù)沒有統(tǒng)一規(guī)劃,集成難度大或者根本就無法集成。另外一個方面即使集成到一起了,由于在設(shè)計過程中是基于數(shù)據(jù)事務(wù)處理的,數(shù)據(jù)庫本身只關(guān)心錄入數(shù)據(jù)的高效性與完整性,對于在被測目標中發(fā)現(xiàn)問題的科研人員如果想獲得相應(yīng)的元器件數(shù)據(jù)或設(shè)備數(shù)據(jù)不得不先通過元器件數(shù)據(jù)庫或設(shè)備數(shù)據(jù)庫,查詢到元器件或設(shè)備的信息,然后再通過對應(yīng)的試驗類型才能獲得相應(yīng)的數(shù)據(jù)。在做統(tǒng)計分析時面臨著同樣的問題,其查詢跨度如此大,其分析效率可想而知。
圖1 基于數(shù)據(jù)事務(wù)處理的船舶噪聲數(shù)據(jù)庫模型Fig.1 The data model of ship noise based on OLAP
數(shù)據(jù)倉庫和數(shù)據(jù)庫只有一字之差,似乎是一樣的概念,但實際則不同。數(shù)據(jù)倉庫是為了構(gòu)建新的分析處理環(huán)境而出現(xiàn)的一種數(shù)據(jù)存儲和組織技術(shù),也就是本文構(gòu)建船舶噪聲控制分析模型要采用的一種技術(shù)。數(shù)據(jù)倉庫和數(shù)據(jù)庫主要的區(qū)別是數(shù)據(jù)倉庫中的數(shù)據(jù)具有以下4個基本特征:
1)數(shù)據(jù)倉庫的數(shù)據(jù)是面向主題的
數(shù)據(jù)倉庫需要按照分析的要求確定主題。本文的主題是噪聲控制,這與按照數(shù)據(jù)錄入要求來組織數(shù)據(jù)的差別主要在于關(guān)心的數(shù)據(jù)內(nèi)容不同。如同樣在被測目標數(shù)據(jù)庫中,科研人員關(guān)心的是如何將數(shù)據(jù)方便快捷的存儲,而在噪聲控制分析中科研人員關(guān)心的是同一被測目標在不同的試驗下不同的數(shù)據(jù)表現(xiàn)形式。
2)數(shù)據(jù)倉庫的數(shù)據(jù)是集成的
噪聲控制分析數(shù)據(jù)倉庫的數(shù)據(jù)是從原有分散的數(shù)據(jù)庫數(shù)據(jù)中抽取來的。其抽取的過程相當復(fù)雜,主要表現(xiàn)在以下幾個方面:
噪聲控制分析數(shù)據(jù)來源于各個分散的元器件數(shù)據(jù)庫、設(shè)備試驗數(shù)據(jù)庫和被測目標試驗數(shù)據(jù)庫。而且噪聲控制分析數(shù)據(jù)不能從原有的3個數(shù)據(jù)庫系統(tǒng)中直接得到,這主要是因為各個分散數(shù)據(jù)庫中會出現(xiàn)同名異義、異名同義、單位不統(tǒng)一,字長不一致等情況。分散的數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)進入數(shù)據(jù)倉庫之前,必然要經(jīng)過轉(zhuǎn)換、統(tǒng)一與綜合。這一步是數(shù)據(jù)倉庫建設(shè)中最關(guān)鍵、最復(fù)雜的一步,數(shù)據(jù)倉庫中的數(shù)據(jù)綜合工作可以在從原有數(shù)據(jù)庫中抽取數(shù)據(jù)時生成,也可以在數(shù)據(jù)倉庫內(nèi)部通過綜合計算生成。
3)數(shù)據(jù)倉庫的數(shù)據(jù)是不可更新的
噪聲控制分析數(shù)據(jù)倉庫的數(shù)據(jù)主要供科研人員分析之用,所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢,一般情況下不進行聯(lián)機實時的修改操作。相反由于噪聲控制數(shù)據(jù)倉庫的查詢量往往很大,所以就對查詢提出了更高的要求。它要求采用更多的索引技術(shù),因此設(shè)計的數(shù)據(jù)庫的表結(jié)構(gòu)也會存在巨大區(qū)別。
4)數(shù)據(jù)倉庫的數(shù)據(jù)是隨時間不斷變化的
數(shù)據(jù)倉庫的數(shù)據(jù)不可更新是針對已經(jīng)載入噪聲控制數(shù)據(jù)倉庫的數(shù)據(jù),其內(nèi)容不能再修改,即在噪聲分析處理數(shù)據(jù)時不進行數(shù)據(jù)更新操作。但是噪聲控制數(shù)據(jù)倉庫并不是一成不變的,它還需要隨時間變化不斷增加新的數(shù)據(jù)內(nèi)容,需要不斷分析3個分散數(shù)據(jù)庫中的數(shù)據(jù),最終綜合計算追加到數(shù)據(jù)倉庫之中。當然也有些數(shù)據(jù)倉庫需要不斷刪除舊的數(shù)據(jù)內(nèi)容,由于船舶生產(chǎn)的周期較長,所以噪聲控制數(shù)據(jù)倉庫中的數(shù)據(jù)一般可以保存20~30年,甚至更長,具體問題具體分析。
在船舶的噪聲控制分析中,科研人員希望從多個不同的角度觀察某一指標或多個指標的值,并找出這些指標的關(guān)系。科研人員可能想知道某一船舶(被測目標)在不同振動試驗產(chǎn)生的噪聲值,并從多個角度對設(shè)備振動產(chǎn)生的噪聲值進行對比分析,如某一被測目標在相同的試驗類型不同試驗壞境下產(chǎn)生的噪聲振動情況;某一船舶在不同試驗類型下的噪聲振動情況;某一船舶在同一次試驗當中起動不同設(shè)備時的噪聲振動情況等。可以看到,分析的數(shù)據(jù)總是與觀察的角度有關(guān)。通常將這些觀察數(shù)據(jù)的角度稱之為維,所以數(shù)據(jù)倉庫數(shù)據(jù)是多維數(shù)據(jù)。對于多維數(shù)據(jù)模型可以用一個多維立方體來表示,但對于三維以上的多維立方體很難用可視化的方式直觀表達出來。為此,通常用較為形象的“星型模式” (Star Schema)和“雪片模式” (Snow Flake Schema)來描述多維數(shù)據(jù)模型。
星型模式通常由1個中心表 (事實表)和1組維表組成。如圖2所示,星型模式的中心表是船舶噪聲數(shù)據(jù)表,其周圍的維表有測試環(huán)境維表、使用年限維表、啟動設(shè)備維表、生產(chǎn)廠家維表、測試類型維表、試驗類型維表、船舶類型維表、測試系統(tǒng)維表等。
圖2 星型模式Fig.2 Star schema
星型模式的事實表與所有的維表相連,而每個維表只與事實表相連。維表與事實表的連接是通過碼來體現(xiàn)的,如圖3所示。也就是說,在船舶噪聲數(shù)據(jù)表中一般存儲各個維表的主碼;如測試環(huán)境主碼、啟動設(shè)備主碼、生產(chǎn)廠家主碼、測試類型主碼、試驗類型主碼、船舶類型主碼、測試系統(tǒng)主碼等。使用年限維一般可以省略,因為在銷售事實表中包含測試時間數(shù)據(jù)項就可以了。
圖3 星型模式示例Fig.3 Star schema sample
由于圖3中描述的數(shù)據(jù)粒度通常較粗,無法滿足船舶噪聲控制分析的需要,通常人們將星型模式進一步細化,因此就形成了雪片模式。通常雪片模式就是對維的層次進一步細化后形成的。圖2所示的星型模式測試環(huán)境可以按測試地點和海洋環(huán)境分類,啟動設(shè)備可以按類型和狀態(tài)分類,生產(chǎn)廠家維可以按工廠及工廠所在的地區(qū)分層,等。通過這樣的變形后,雪片模式就形成了。
圖4 雪片模式Fig.4 Snow flake schema
多維數(shù)據(jù)模型數(shù)據(jù)分析時使用的數(shù)據(jù)視圖屬于邏輯模型。OLAP服務(wù)器應(yīng)該透明地為上層分析軟件和用戶提供多維數(shù)據(jù)視圖。上層分析軟件和用戶不用關(guān)心數(shù)據(jù)是如何存儲的。本文主要介紹按照ROLAP結(jié)構(gòu)來實現(xiàn)多維數(shù)據(jù)的管理,ROLAP將多維立方體劃分為2類表,一類是事實表,一類是維表。事實表用來描述和存儲多維立方體的度量值和各個維的碼值。維表用來描述維的信息,包括維的層次和成員類別等。ROLAP用關(guān)系數(shù)據(jù)庫的二維表來表示事實表和維表,即用星型模式和雪片模式來表示多維數(shù)據(jù)模型。最終可以用1張事實表和8張維表來表示圖4中的雪片模型:
1)船舶噪聲數(shù)據(jù)表 (日期,測試環(huán)境主碼,啟動設(shè)備主碼,元器件主碼,測試系統(tǒng)主碼,船舶類型主碼,生產(chǎn)廠家主碼,試驗類型主碼,測試類型主碼,噪聲數(shù)據(jù));
2)測試環(huán)境 (測試環(huán)境主碼,測試地點,海洋環(huán)境,……);
3)啟動設(shè)備 (啟動設(shè)備主碼,設(shè)備名稱,設(shè)備類型,設(shè)備狀態(tài),……);
4)元器件 (元器件主碼,元器件名稱,元器件類型,……);
5)測試系統(tǒng) (測試系統(tǒng)主碼,測試系統(tǒng)名稱,測試依據(jù),測試儀表,……);
6)船舶類型 (船舶類型主碼,船舶編號,船舶名稱,……);
7)生產(chǎn)廠家 (生產(chǎn)廠家主碼,生產(chǎn)廠家名稱,電話,地址,……);
8)試驗類型 (試驗環(huán)境主碼,試驗類型名稱,試驗主辦方,經(jīng)費,……);
9)測試類型 (測試類型主碼,測試類型名稱,測試方法,測試人員,……);
ROLAP結(jié)構(gòu)用RDBMS或擴展的RDBMS來管理多維數(shù)據(jù),用關(guān)系表組織和存儲多維數(shù)據(jù)。同時它將多維立方體上的操作映射為標準的關(guān)系操作,因此可以將以上二維表組織完成后直接映射數(shù)據(jù)庫管理系統(tǒng)之中為上層軟件和用戶提供OLAP服務(wù)。
通過本文分析可以得出以下結(jié)論:使用傳統(tǒng)數(shù)據(jù)庫技術(shù)針對事務(wù)處理設(shè)計的船舶噪聲數(shù)據(jù)模型很難滿足需要大數(shù)據(jù)量查詢的噪聲控制分析的應(yīng)用。該結(jié)論能夠為日后構(gòu)建面向分析處理的船舶噪聲數(shù)據(jù)庫指引方向。同時本文通過利用數(shù)據(jù)倉庫技術(shù)構(gòu)建了一個基于OLAP的船舶噪聲數(shù)據(jù)星型模型和雪片模型,并通過ROLAP結(jié)構(gòu)將模型轉(zhuǎn)化為1個事實表和多個維表。本文建立的模型主要針對船舶噪聲控制設(shè)計,稍作細化和改進即可用于建立船舶噪聲控制數(shù)據(jù)庫。并且上述建立數(shù)據(jù)模型方法的通用性強,適用于面向分析其他主題的數(shù)據(jù)庫設(shè)計。
[1]王程之,于沨,劉文帥.船舶噪聲測量與分析[M].北京:國防工業(yè)出版社,2004.
[2]楊國強,等.Erwin數(shù)據(jù)建模[M].北京:電子工業(yè)出版社,2004.
[3]余珍.艦艇噪聲數(shù)據(jù)庫的建設(shè)[A].第十屆船舶水下噪聲學(xué)術(shù)討論文集[C].北京:中國造船工程學(xué)會,2005.
[4]王珊,李盛恩.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用[M].北京:人民郵電出版社,2002.
[5]苗金林,等.船舶噪聲數(shù)據(jù)庫的設(shè)計與實現(xiàn)[J].艦船科學(xué)技術(shù),2007,29(4):69-71.MIAO Jin-lin,et al.The design and realization of the ship noise database[J].Ship Science and Technology,2007,29(4):69-71.