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