黃偉建,徐學(xué)鋼,王子軒
(1.河北工程大學(xué)信息與電氣工程學(xué)院,河北 邯鄲056038;2.北京師范大學(xué)藝術(shù)與傳媒學(xué)院,北京100875)
二十一世紀(jì)以來,我國在水利信息化建設(shè)的過程中,完成了大量的水利信息管理系統(tǒng),這對于我國水利工程的投資建設(shè)和運(yùn)行管理都起到了良好的促進(jìn)作用。隨著水利信息化的發(fā)展,水利信息系統(tǒng)規(guī)模越來越大,對系統(tǒng)運(yùn)行質(zhì)量要求越來越高,任務(wù)越來越重,管理越來越復(fù)雜[1]?,F(xiàn)有的水利信息管理系統(tǒng)所提供的功能大多是業(yè)務(wù)型的,只能處理直接的水利數(shù)據(jù),難以獲取這些數(shù)據(jù)信息背后的隱含信息,如文獻(xiàn)[2]開發(fā)的東海縣水利工程管理系統(tǒng),僅僅按照業(yè)務(wù)需要,把系統(tǒng)劃分為農(nóng)田水利、工程管理、防汛抗旱、自然環(huán)境、水利史和大事記等業(yè)務(wù)模塊;而文獻(xiàn)[3]開發(fā)的水利工程科技檔案管理信息系統(tǒng),僅能提供用戶管理、單位管理、檔案管理和管理員管理等管理信息。而這些直接數(shù)據(jù)信息背后的隱含信息,如各項(xiàng)水利工程的建設(shè)趨勢、各個(gè)承擔(dān)任務(wù)科室的進(jìn)展趨勢、各類項(xiàng)目資金的完成趨勢等均無法體現(xiàn)。
本文基于數(shù)據(jù)倉庫技術(shù)和聯(lián)機(jī)分析處理(On-Line Analytical Processing,OLAP)技術(shù),設(shè)計(jì)水利工程信息管理系統(tǒng)。系統(tǒng)按照渠道、科室和資金3個(gè)主題設(shè)計(jì)建立數(shù)據(jù)倉庫,以克服傳統(tǒng)的水利信息管理系統(tǒng)難以獲取這些隱含信息的缺陷,為水利工程決策人員提供高效的信息服務(wù)。
數(shù)據(jù)倉庫技術(shù)是二十世紀(jì)末在計(jì)算機(jī)領(lǐng)域中迅速發(fā)展起來的一種新技術(shù)。數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的、隨時(shí)間變化的數(shù)據(jù)集合,用以支持經(jīng)營管理中的決策制定過程。從數(shù)據(jù)庫基礎(chǔ)上發(fā)展起來的數(shù)據(jù)倉庫技術(shù),從本質(zhì)上講是一種新的信息集成技術(shù)。數(shù)據(jù)倉庫中存儲(chǔ)著海量的當(dāng)前數(shù)據(jù)、歷史數(shù)據(jù)和綜合數(shù)據(jù)。這些數(shù)據(jù)往往是多個(gè)數(shù)據(jù)源的數(shù)據(jù)集成,并依照主題進(jìn)行重組。數(shù)據(jù)倉庫中的數(shù)據(jù)一般不再修改。這些數(shù)據(jù)雖然也是隨時(shí)間變化而變化的,但時(shí)限比操作型數(shù)據(jù)的時(shí)限要長得多。數(shù)據(jù)倉庫在功能上與操作型的數(shù)據(jù)庫最主要的區(qū)別是建立決策支持系統(tǒng),它可有效地實(shí)現(xiàn)對水利工程信息資源的管理和利用,為水利工程管理者的決策分析提供準(zhǔn)確一致的量化信息[4-5]。
OLAP技術(shù)是基于數(shù)據(jù)倉庫的、針對主題的、能快速進(jìn)行聯(lián)機(jī)數(shù)據(jù)訪問和分析的軟件技術(shù)。它對數(shù)據(jù)信息進(jìn)行多種不同形式地觀察,使用戶可以從不同的維度、不同的側(cè)面和不同的數(shù)據(jù)綜合程度來觀察數(shù)據(jù),從而獲得數(shù)據(jù)背后隱含的新的有價(jià)值的信息。OLAP分析工具是多維數(shù)據(jù)分析工具的集合[6],而水利工程的數(shù)據(jù)信息一般是多維的,因此多維數(shù)據(jù)就是水利工程決策的主要內(nèi)容。OLAP技術(shù)側(cè)重于對水利局領(lǐng)導(dǎo)的決策支持,以便他們能準(zhǔn)確掌握水利工程的狀況,制定出正確的方案和措施。OLAP先將數(shù)據(jù)倉庫當(dāng)中的數(shù)據(jù)組織成多維數(shù)據(jù)立方體后,再通過“數(shù)據(jù)切片”、“數(shù)據(jù)切塊”和“數(shù)據(jù)鉆取”等操作方法對立方體進(jìn)行分析操作。
(1)“數(shù)據(jù)切片”是從多維數(shù)據(jù)立方體上的某一維度上選定一個(gè)值后,把多維數(shù)據(jù)從n維降為n-1維。例如,在“橋梁工程”的多維數(shù)據(jù)立方體中,時(shí)間維度取“2009年”,則得到關(guān)于2009年所建設(shè)的所有橋梁工程數(shù)據(jù)信息的一個(gè)數(shù)據(jù)切片。
(2)“數(shù)據(jù)切塊”是從一個(gè)完整的數(shù)據(jù)立方體中切取一部分?jǐn)?shù)據(jù),從而得到一個(gè)新的體積較小的數(shù)據(jù)立方體。例如,在“橋梁工程”的多維數(shù)據(jù)立方體中,時(shí)間維度取“2007~2009年”,項(xiàng)目維度取“以工代賑”,投資額維度取“100萬元以下”,則會(huì)得到關(guān)于2007~2009年間的建設(shè)的投資額在100萬元以下所有以工代賑項(xiàng)目的橋梁工程數(shù)據(jù)信息的一個(gè)數(shù)據(jù)切塊。
(3)“數(shù)據(jù)鉆取”是通過改變數(shù)據(jù)立方體維度的層次,來達(dá)到變換分析粒度的目的。數(shù)據(jù)鉆取的方向分為下鉆和上鉆。下鉆是指用戶從某一個(gè)較高的層次出發(fā),去觀察較低層次的細(xì)節(jié)數(shù)據(jù)信息。上鉆跟下鉆正好相反,是指用戶從某一個(gè)較低的層次出發(fā),去觀察較高層次的宏觀數(shù)據(jù)信息。例如在時(shí)間維度中,從“年”的層次出發(fā),去觀察“月”的數(shù)據(jù)就是下鉆;而“月”的層次出發(fā),去觀察“年”的數(shù)據(jù)就是上鉆。
C/S(客戶端/服務(wù)器)和 B/S(瀏覽器/服務(wù)器)是兩種常用的架構(gòu)模式[7]。傳統(tǒng)的C/S(客戶端/服務(wù)器)架構(gòu)模式是兩層結(jié)構(gòu),分為客戶端和服務(wù)器兩部分,通過局域網(wǎng)直接連接。而B/S(瀏覽器/服務(wù)器)架構(gòu)模式則是三層結(jié)構(gòu),為瀏覽器(相當(dāng)于C/S架構(gòu)模式中的客戶端)、Web服務(wù)器和數(shù)據(jù)庫服務(wù)器(相當(dāng)于C/S架構(gòu)模式中的服務(wù)器)3部分。瀏覽器與數(shù)據(jù)庫服務(wù)器不直接連接,而是通過中間層Web服務(wù)器進(jìn)行間接連接,見圖1。其中瀏覽器與Web服務(wù)器可以通過局域網(wǎng)或廣域網(wǎng)進(jìn)行連接,能充分利用Internet,延長連接距離。B/S架構(gòu)模式將系統(tǒng)功能實(shí)現(xiàn)的所有應(yīng)用軟件都安裝在Web服務(wù)器和數(shù)據(jù)庫服務(wù)器上,系統(tǒng)的維護(hù)工作也集中在這兩處,與客戶端的瀏覽器無關(guān),客戶端零維護(hù)。系統(tǒng)的改進(jìn)和升級(jí)也可以只在服務(wù)器端進(jìn)行,所以系統(tǒng)的可靠性和穩(wěn)定性比C/S架構(gòu)模式更高。瀏覽器、Web服務(wù)器、數(shù)據(jù)庫服務(wù)器三者為邏輯上的劃分[8],這三者也可以只布置在一臺(tái)計(jì)算機(jī)上。
水利工程信息管理系統(tǒng)主要包括信息錄入管理、信息修改管理、信息查詢管理和系統(tǒng)維護(hù)管理4個(gè)模塊(系統(tǒng)結(jié)構(gòu)見圖2)。根據(jù)具體需求,每個(gè)模塊都具有各自的功能[9]。
負(fù)責(zé)錄入水利工程數(shù)據(jù)信息的工作。由于信息錄入人員不一定都精通計(jì)算機(jī)技術(shù),所以本模塊的編制盡量智能化,錄入操作盡量簡單化。每一次錄入時(shí),系統(tǒng)都會(huì)通過多次詢問來引導(dǎo)錄入者輸入格式正確、內(nèi)容全面的數(shù)據(jù)信息。如果某一項(xiàng)工程不是首次錄入,系統(tǒng)還會(huì)自動(dòng)顯示前一次錄入本工程的數(shù)據(jù)信息,提示錄入者檢查本次錄入的數(shù)據(jù)信息是否存在缺項(xiàng)或錯(cuò)誤。
負(fù)責(zé)修改系統(tǒng)數(shù)據(jù)庫內(nèi)的錯(cuò)誤數(shù)據(jù)信息的工作。由于水利工程管理工作的特殊性,系統(tǒng)內(nèi)已經(jīng)存在的各種水利工程信息,都不能被刪除。即使某項(xiàng)工程已經(jīng)報(bào)廢拆除,也不能刪除相關(guān)信息,因?yàn)檫@會(huì)影響到對過去水利工程建設(shè)情況的查詢。不過,由于操作人員的失誤所造成的信息錄入錯(cuò)誤,系統(tǒng)是允許修改的。信息修改工作必須謹(jǐn)慎,只能由系統(tǒng)管理員進(jìn)行操作,其他級(jí)別的用戶不能進(jìn)行操作。并且修改工作還不能通過遠(yuǎn)程網(wǎng)絡(luò)方式操作。這樣才能盡可能保證系統(tǒng)內(nèi)數(shù)據(jù)信息的前后一致性。
負(fù)責(zé)查詢水利工程數(shù)據(jù)信息的工作。這是管理系統(tǒng)的核心模塊。業(yè)務(wù)數(shù)據(jù)庫中數(shù)據(jù)信息經(jīng)過抽取、清洗等處理后,集成在數(shù)據(jù)倉庫內(nèi)。系統(tǒng)利用OLAP技術(shù),將數(shù)據(jù)組織成多維數(shù)據(jù)立方體的形式,通過切片、切塊、鉆取等各種分析操作,使用戶能從多角度、多側(cè)面、多層次地查詢數(shù)據(jù)庫中的水利工程數(shù)據(jù)信息。管理系統(tǒng)把一些關(guān)鍵的查詢過程和查詢結(jié)果經(jīng)過處理后存儲(chǔ)下來,并且當(dāng)系統(tǒng)數(shù)據(jù)信息有更新時(shí)還能自動(dòng)更新。這樣,當(dāng)以后再進(jìn)行類似的查詢時(shí)就不用每次都去搜索整個(gè)數(shù)據(jù)庫,而能快速地得到正確的查詢結(jié)果。系統(tǒng)能夠根據(jù)需要,把每次查詢的結(jié)果信息自動(dòng)生成合適的數(shù)據(jù)報(bào)表,并能實(shí)現(xiàn)同上級(jí)機(jī)關(guān)相關(guān)軟件的接口對接。
負(fù)責(zé)對用戶和數(shù)據(jù)庫的維護(hù)進(jìn)行管理工作。包括對用戶進(jìn)行用戶申請、登錄申請和用戶級(jí)別設(shè)置等的工作,和對數(shù)據(jù)庫進(jìn)行增加數(shù)據(jù)庫和數(shù)據(jù)備份等的工作。
本系統(tǒng)的數(shù)據(jù)庫采用SQL Server 2005系統(tǒng),使用Java作為開發(fā)語言,基于Eclipse開發(fā)。SQL Server是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高和可多種平臺(tái)使用等優(yōu)點(diǎn)[10-11]。在SQL Server 2005 系統(tǒng)中提供了大量的數(shù)據(jù)倉庫設(shè)計(jì)、建立和操作等方面的工具。Java是一種跨平臺(tái)的、適合于分布式計(jì)算機(jī)環(huán)境的面向?qū)ο蟮木幊陶Z言,具有可移植、穩(wěn)定、簡單、高性能和可動(dòng)態(tài)執(zhí)行等特征。Java應(yīng)用程序(Java Applet)存放在Web服務(wù)器中,應(yīng)客戶端瀏覽器的請求,傳送至客戶端,由瀏覽器去執(zhí)行。它可以有效地實(shí)現(xiàn)B/S架構(gòu)模式的功能。
數(shù)據(jù)倉庫的構(gòu)建是一個(gè)不斷循環(huán)、反饋而使系統(tǒng)不斷增長與完善的過程[12],它的設(shè)計(jì)主要包括概念模型設(shè)計(jì)、邏輯模型設(shè)計(jì)和物理模型設(shè)計(jì)3個(gè)階段。
概念模型設(shè)計(jì)主要界定系統(tǒng)邊界和確定主要的主題域及其內(nèi)容,它包括需求分析、主題確定和概念模型確定等內(nèi)容。
3.1.1 需求分析
水利工程的高級(jí)管理者,不光需要知道水利工程的具體數(shù)據(jù)信息,更重要的是需要了解:各個(gè)渠道配套工程的建設(shè)趨勢;各個(gè)職能科室承擔(dān)的工程建設(shè)任務(wù)的進(jìn)展趨勢;各類項(xiàng)目資金的完成趨勢。
3.1.2 主題確定
根據(jù)需求分析,確定系統(tǒng)數(shù)據(jù)倉庫的主題為:渠道、科室和資金。
3.1.3 概念模型確定
數(shù)據(jù)倉庫的概念模型常見的有3種:星型模型、雪花模型和事實(shí)星座模型。星型模型可以采用關(guān)系型數(shù)據(jù)庫結(jié)構(gòu),模型的核心是事實(shí)表,圍繞事實(shí)表的是維度表,通過事實(shí)表將各種不同的維度表連接起來,各個(gè)維度表都連接到中央事實(shí)表[13],見圖3。在該模型中,因?yàn)榇蟛糠謹(jǐn)?shù)據(jù)都在事實(shí)表中,只需搜尋事實(shí)表就可進(jìn)行查詢。并且維度表都比較小,能放在高速緩存中,可以快速地與事實(shí)表進(jìn)行連接。星型模型實(shí)際上是以“空間”換“時(shí)間”,通過適當(dāng)增加冗余存儲(chǔ)空間來顯著地提高系統(tǒng)查詢速度,所以本系統(tǒng)數(shù)據(jù)倉庫的邏輯模型采用星型模型。
邏輯模型是數(shù)據(jù)倉庫從概念模型向物理模型過渡的中間層次模型。邏輯模型設(shè)計(jì)是把概念模型當(dāng)中各種概念和實(shí)體間的相互關(guān)系,進(jìn)行分解細(xì)化,使之能適應(yīng)計(jì)算機(jī)系統(tǒng)存儲(chǔ)模式。邏輯模型設(shè)計(jì)主要包括事實(shí)表的設(shè)計(jì)和維度表的設(shè)計(jì)。
3.2.1 事實(shí)表設(shè)計(jì)
數(shù)據(jù)倉庫中的每個(gè)主題都需要通過一個(gè)或多個(gè)相關(guān)的事實(shí)表進(jìn)行具體設(shè)計(jì)實(shí)現(xiàn)。事實(shí)表不僅是數(shù)據(jù)倉庫的核心,也是構(gòu)成數(shù)據(jù)倉庫的所有類型表中體積最大的[14],它包含和決策目標(biāo)緊密相關(guān)的數(shù)據(jù)信息。事實(shí)表的內(nèi)容一般由兩部分組成:鍵和指標(biāo)。事實(shí)表使用鍵把各個(gè)維度表聯(lián)系起來,指標(biāo)用于記錄事實(shí)表的詳細(xì)信息。
不同的主題設(shè)計(jì)的事實(shí)表各有不同,以渠道主題為例設(shè)計(jì)事實(shí)表,它包括渠道工程信息表、配套工程信息表和工程歷次建設(shè)信息表。
3.2.1 維度表設(shè)計(jì)
事實(shí)表中的內(nèi)容進(jìn)一步分解,就得到維度表。維度表是事實(shí)表的關(guān)聯(lián)表[15],含有事實(shí)表中的特征數(shù)據(jù),使用關(guān)鍵字同事實(shí)表進(jìn)行關(guān)聯(lián)。維度表中還包含有多個(gè)詳細(xì)屬性,用于說明對象的邏輯關(guān)系。在設(shè)計(jì)維度表時(shí),盡可能簡化維度表與事實(shí)表之間的聯(lián)系,盡量減少表之間連接數(shù)量,以減輕計(jì)算機(jī)系統(tǒng)的運(yùn)算負(fù)擔(dān)。
下面列出渠道主題的的配套工程信息事實(shí)表的維度表:
建設(shè)時(shí)間維度表:年、月、日;
主要工程量維度表:土方、石方、混凝土方、鋼筋用量;
建設(shè)投資組成維度表:上級(jí)資金、地方配套、群眾自籌。
物理模型設(shè)計(jì)即為邏輯模型中的數(shù)據(jù)確定一個(gè)符合要求的物理結(jié)構(gòu)[16],也就是將邏輯模型當(dāng)中的相關(guān)內(nèi)容轉(zhuǎn)變?yōu)樵谟?jì)算機(jī)系統(tǒng)可以存儲(chǔ)的模式[17]。在認(rèn)真分析系統(tǒng)數(shù)據(jù)倉庫的基礎(chǔ)上,研究它的存儲(chǔ)結(jié)構(gòu)及方法、數(shù)據(jù)使用環(huán)境及使用方式和數(shù)據(jù)信息規(guī)模等主要參數(shù),完成水利工程信息管理系統(tǒng)數(shù)據(jù)倉庫的物理模型設(shè)計(jì)。
系統(tǒng)使用SQL Server 2005中的數(shù)據(jù)倉庫工具建立數(shù)據(jù)倉庫,使用JSP實(shí)現(xiàn)數(shù)據(jù)倉庫的接口設(shè)計(jì),使用Analysis Services工具采集和分析數(shù)據(jù)信息。數(shù)據(jù)的采集工作就是進(jìn)行數(shù)據(jù)的抽取、轉(zhuǎn)換、清洗和裝載的過程,將業(yè)務(wù)數(shù)據(jù)庫當(dāng)中的水利工程數(shù)據(jù)信息加載到數(shù)據(jù)倉庫中,從而完成數(shù)據(jù)信息從數(shù)據(jù)源向數(shù)據(jù)倉庫的轉(zhuǎn)化。它主要進(jìn)行:識(shí)別數(shù)據(jù)源信息,管理元數(shù)據(jù),集成不同數(shù)據(jù)源的數(shù)據(jù)格式,清理數(shù)據(jù)集,數(shù)據(jù)分割,定期更新和維護(hù)數(shù)據(jù)。
本文設(shè)計(jì)開發(fā)的水利工程信息管理系統(tǒng),利用數(shù)據(jù)倉庫技術(shù)確定渠道、科室和資金3個(gè)主題,利用OLAP技術(shù)從不同的維度、側(cè)面和數(shù)據(jù)綜合程度對數(shù)據(jù)信息進(jìn)行多種不同形式地觀察,從而達(dá)到獲取這些直接數(shù)據(jù)信息背后關(guān)于3個(gè)主題的隱含信息的目的。如果用戶對隱含信息的獲取有新的或不同的需求,可以增加或更改主題,并按照新主題設(shè)計(jì)數(shù)據(jù)倉庫。
[1]蔡陽,詹全忠,周維續(xù),等.水利信息系統(tǒng)運(yùn)行保障平臺(tái)關(guān)鍵技術(shù)研究[J].水利水電技術(shù),2010,41(2):91-93.
[2]朱俊昌,高亞楠,鄭源,等.中小型水利工程管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].水電能源科學(xué),2010,28(8):140-142.
[3]吳杰,王冬梅.水利工程科技檔案管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].人民長江,2007,38(11):194-195.
[4]郭峻峰,倪志偉,高雅卓,等.一種提高數(shù)據(jù)倉庫查詢效率的有效方法[J].計(jì)算機(jī)集成制造系統(tǒng),2009,15(12):2451-2457.
[5]陳步英,馬驊,張小志.高校財(cái)務(wù)數(shù)據(jù)倉庫研究[J].財(cái)會(huì)通訊,2010(11):119-120.
[6]楊 云,羅艷霞.基于Web數(shù)據(jù)倉庫構(gòu)建GSM網(wǎng)絡(luò)優(yōu)化系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(12):2894-2900.
[7]王春波,楊大兵.基于ArcSDE技術(shù)的地籍管理系統(tǒng)研究[J].河北工程大學(xué)學(xué)報(bào):自然科學(xué)版,2010,27(3):77-80.
[8]蔣 薇,賴青貴,陳 楠.基于B/S架構(gòu)的"神龍一號(hào)"數(shù)據(jù)庫系統(tǒng)的實(shí)現(xiàn)[J].強(qiáng)激光與粒子束,2010,22(3):642-646.
[9]張穎,劉惠德,侯旭輝,等.礦井水文地質(zhì)信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].河北工程大學(xué)學(xué)報(bào):自然科學(xué)版,2008,25(4):82-85.
[10]胡逢愷,趙 剛,程旭.基于SQL Server數(shù)據(jù)庫的三維模型存取研究與實(shí)現(xiàn)[J].四川理工學(xué)院學(xué)報(bào):自然科學(xué)版,2010,23(2):212-215.
[11]胡開明,陳建華.用.NET實(shí)現(xiàn)對SQL SERVER數(shù)據(jù)庫安全的動(dòng)態(tài)監(jiān)控[J].四川理工學(xué)院學(xué)報(bào):自然科學(xué)版,2010,23(3):299-302.
[12]黃曉穎,李亞芬,王 普.基于數(shù)據(jù)倉庫的學(xué)科建設(shè)決策支持系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(23):4995-4998.
[13]秦永平,王麗萍.基于數(shù)據(jù)倉庫的突發(fā)公共衛(wèi)生事件預(yù)警預(yù)報(bào)系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(13):3119- 3122.
[14]趙寶華,阮文惠.高校財(cái)務(wù)數(shù)據(jù)倉庫的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2008,34(17):266-268.
[15]王志宏,顧新建.基于數(shù)據(jù)倉庫的產(chǎn)品族供應(yīng)鏈管理系統(tǒng)[J].浙江大學(xué)學(xué)報(bào):工學(xué)版,2009,43(7):1197-1202.
[16]李志剛,馬剛.數(shù)據(jù)倉庫與數(shù)據(jù)挖掘的原理及應(yīng)用[M].北京:高等教育出版社,2008.
[17]劉永立,王海濤,孫維民,等.基于基礎(chǔ)數(shù)據(jù)庫的煤礦應(yīng)急救援指揮信息系統(tǒng)[J].黑龍江科技學(xué)院學(xué)報(bào),2010,20(1):44-47.