彭學(xué)軍
【摘要】針對(duì)當(dāng)前高校的后勤倉(cāng)庫(kù)管理系統(tǒng)難以獲取隱含信息的問(wèn)題,提出基于數(shù)據(jù)倉(cāng)庫(kù)技術(shù)和OLAP技術(shù)設(shè)計(jì)開(kāi)發(fā)高校后勤倉(cāng)庫(kù)信息管理系統(tǒng)的解決方案。系統(tǒng)使用c#作為開(kāi)發(fā)語(yǔ)言,數(shù)據(jù)庫(kù)采用SQL Server 2005,使用SQL Server中的數(shù)據(jù)倉(cāng)庫(kù)工具建立數(shù)據(jù)倉(cāng)庫(kù)。根據(jù)需求分析,系統(tǒng)確定獲取進(jìn)貨渠道、部門(mén)和資金3個(gè)主題的隱含信息,并采用查詢(xún)效率較高的星型模型作為概念模型,通過(guò)事實(shí)表設(shè)計(jì)和維度表設(shè)計(jì)來(lái)完成主題設(shè)計(jì)的具體實(shí)現(xiàn)。
【關(guān)鍵詞】數(shù)據(jù)倉(cāng)庫(kù);OLAP;倉(cāng)庫(kù)管理;管理信息系統(tǒng)
引言
隨著網(wǎng)絡(luò)技術(shù)、計(jì)算機(jī)軟硬件技術(shù)日新月異、突飛猛進(jìn)的發(fā)展,計(jì)算機(jī)已成為現(xiàn)代社會(huì)人們工作、生活、學(xué)習(xí)甚至娛樂(lè)不可缺少的應(yīng)用工具。計(jì)算機(jī)的應(yīng)用已經(jīng)滲透到社會(huì)的各個(gè)領(lǐng)域,不論是企業(yè)還是政府機(jī)關(guān)、事業(yè)單位,都正在積極利用各種計(jì)算機(jī)應(yīng)用系統(tǒng)以全面提高工作效率。后勤倉(cāng)庫(kù)管理作為高校日常辦公事務(wù)的核心環(huán)節(jié)之一,隨著信息化的不斷發(fā)展,它在整個(gè)高校管理當(dāng)中占有越來(lái)越重要的地位。然而,不少高校后勤倉(cāng)庫(kù)管理沒(méi)有引入信息化手段,仍然采用人工方式進(jìn)行統(tǒng)計(jì),造成管理效率低下;有的高校雖然使用了管理軟件,但有些軟件卻是以傳統(tǒng)的數(shù)據(jù)記錄和單據(jù)打印為設(shè)計(jì)目標(biāo),這與現(xiàn)代倉(cāng)儲(chǔ)的發(fā)展要求不相適應(yīng)。隨著計(jì)算機(jī)科學(xué)技術(shù)的快速發(fā)展,運(yùn)用計(jì)算機(jī)技術(shù)對(duì)高校后勤進(jìn)行管理不僅成為可能,高校后勤管理工作的規(guī)范化、現(xiàn)代化已成為必然。
一、系統(tǒng)采用的關(guān)鍵技術(shù)
(一)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)
數(shù)據(jù)倉(cāng)庫(kù),由數(shù)據(jù)倉(cāng)庫(kù)之父W.H.Inmon于1990年提出,面向主題的、集成的、相對(duì)穩(wěn)定的、隨時(shí)間不斷變化(不同時(shí)間)的數(shù)據(jù)集合,用以支持經(jīng)營(yíng)管理中的決策制定過(guò)程、數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)面向主題,與傳統(tǒng)數(shù)據(jù)庫(kù)面向應(yīng)用相對(duì)應(yīng)。主要功能是將組織透過(guò)資訊系統(tǒng)之聯(lián)機(jī)交易處理(OLTP)經(jīng)年累月所累積的大量資料,透過(guò)數(shù)據(jù)倉(cāng)庫(kù)理論所特有的資料儲(chǔ)存架構(gòu),作一有系統(tǒng)的分析整理,以利各種分析方法如線上分析處理(OLAP)、數(shù)據(jù)挖掘(Data Mining)之進(jìn)行,并進(jìn)而支持如決策支持系統(tǒng)(DSS)、主管資訊系統(tǒng)(EIS)之創(chuàng)建,幫助決策者能快速有效的從大量資料中,分析出有價(jià)值的信息,以利決策擬定和快速回應(yīng)外部環(huán)境變動(dòng),幫助建構(gòu)商業(yè)智能(BI)。
(二)OLAP技術(shù)
線上分析處理(On-Line Analytical Processing,簡(jiǎn)稱(chēng)OLAP),是一套以多維度方式分析資料,而能彈性地提供積存(Roll-up)、下鉆(Drill-down)、和樞紐分析(Pivot)等操作,呈現(xiàn)整合性決策資訊的方法,多用于決策支持系統(tǒng)、商務(wù)智能或數(shù)據(jù)倉(cāng)庫(kù)。其主要的功能,在于方便大規(guī)模數(shù)據(jù)分析和統(tǒng)計(jì)計(jì)算,為決策提供參考和支持。與之相對(duì)的是線上交易處理(OLTP)。
OLAP需以大量歷史資料為基礎(chǔ)配合上時(shí)間點(diǎn)的差異并對(duì)多維度及匯整型的資訊進(jìn)行復(fù)雜的分析。OLAP需要使用者有主觀的資訊需求定義,因此系統(tǒng)效率較佳。OLAP的概念,在實(shí)際應(yīng)用中用廣義和狹義兩種不同的理解。廣義上的理解與字面意思相同,即針對(duì)于OLTP而言,泛指一切不對(duì)數(shù)據(jù)進(jìn)行輸入等事務(wù)性處理,而基于已有數(shù)據(jù)進(jìn)行分析的方法。但更多的情況下OLAP是被理解為其狹義上的含義,即與多維分析相關(guān),基于立方體(CUBE)計(jì)算而進(jìn)行的分析。
(二)B/S架構(gòu)技術(shù)
B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),就是只安裝維護(hù)一個(gè)服務(wù)器(Server),而客戶端采用瀏覽器(Browse)運(yùn)行軟件。它是隨著Imem~技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化和改進(jìn)。B/S三層體系結(jié)構(gòu)采用三層客戶/服務(wù)器結(jié)構(gòu),在數(shù)據(jù)管理層(Serve)和用戶界面層(Chent)之間增加了一層結(jié)構(gòu),稱(chēng)為中間件(Middleware),使整個(gè)體系結(jié)構(gòu)成為三層。三層結(jié)構(gòu)是伴隨著中間件技術(shù)的成熟而興起的,核心概念是利用中間件將應(yīng)用分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲(chǔ)層三個(gè)不同的處理層次,如圖2.2所示。三個(gè)層次的劃分是從邏輯上分的,具體的物理分法可以有多種組合。中間件作為構(gòu)造三層結(jié)構(gòu)應(yīng)用系統(tǒng)的基礎(chǔ)平臺(tái),提供了以下主要功能:負(fù)責(zé)客戶機(jī)與服務(wù)器、服務(wù)器與服務(wù)器間的連接和通信;實(shí)現(xiàn)應(yīng)用與數(shù)據(jù)庫(kù)的高效連接;提供一個(gè)三層結(jié)構(gòu)應(yīng)用的開(kāi)發(fā)、運(yùn)行、部署和管理的平臺(tái)。這種三層結(jié)構(gòu)在層與層之間相互獨(dú)立,任何一層的改變不會(huì)影響其它層的功能。
二、系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)
高校后勤倉(cāng)庫(kù)信息管理系統(tǒng)主要包括倉(cāng)庫(kù)出入庫(kù)管理、倉(cāng)庫(kù)物品修改管理、信息查詢(xún)管理和系統(tǒng)配置維護(hù)管理4個(gè)模塊(系統(tǒng)結(jié)構(gòu)見(jiàn)圖2)。根據(jù)具體需求,每個(gè)模塊都具有各自的功能。
(一)倉(cāng)庫(kù)出入庫(kù)管理模塊
本模塊負(fù)責(zé)錄入高校后勤倉(cāng)庫(kù)管理數(shù)據(jù)信息的工作。由于倉(cāng)庫(kù)錄入人員都不十分精通計(jì)算機(jī)技術(shù),所以本模塊的人機(jī)交互盡量智能化,錄入操作盡量簡(jiǎn)單。每一次進(jìn)行數(shù)據(jù)錄入時(shí),系統(tǒng)都會(huì)通過(guò)自動(dòng)檢查輸入的數(shù)據(jù)的格式是否正確、內(nèi)容是否全面。如果某一項(xiàng)物品不是第一次錄入,系統(tǒng)會(huì)自動(dòng)顯示上一次錄入物品的相關(guān)信息,提示數(shù)據(jù)錄入者檢查本次錄入的數(shù)據(jù)是否有誤。
(二)倉(cāng)庫(kù)物品修改管理模塊
本模塊負(fù)責(zé)修改系統(tǒng)數(shù)據(jù)庫(kù)內(nèi)的物品數(shù)據(jù)信息的工作。由于倉(cāng)庫(kù)管理工作的特殊性,根據(jù)數(shù)據(jù)庫(kù)內(nèi)各表之間存在相互關(guān)聯(lián)的管理,對(duì)系統(tǒng)內(nèi)已經(jīng)存在的物品信息,不能被刪除。如某項(xiàng)物品不再購(gòu)買(mǎi),也不能刪除相關(guān)信息,因?yàn)檫@會(huì)影響到對(duì)該物品出入庫(kù)等歷史情況的查詢(xún)。由于操作人員的失誤所造成的錄入信息錯(cuò)誤,系統(tǒng)允許修改。數(shù)據(jù)的修改工作必須小心謹(jǐn)慎,只能由系統(tǒng)管理員或者具有修改權(quán)限的人員進(jìn)行操作,其他未授權(quán)用戶不能進(jìn)行操作。
(三)信息查詢(xún)統(tǒng)計(jì)管理模塊
本模塊負(fù)責(zé)查詢(xún)后勤倉(cāng)庫(kù)數(shù)據(jù)信息的工作,這是管理信息系統(tǒng)的核心模塊。業(yè)務(wù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息經(jīng)過(guò)抽取、清洗等相關(guān)處理后,集成在數(shù)據(jù)倉(cāng)庫(kù)內(nèi)。系統(tǒng)利用OLAP技術(shù),將數(shù)據(jù)組織成多維數(shù)據(jù)立方體的形式,通過(guò)切片、切塊、鉆取等各種分析操作,使用戶能從多角度、多側(cè)面、多層次地查詢(xún)數(shù)據(jù)庫(kù)中的后勤倉(cāng)庫(kù)數(shù)據(jù)信息。管理信息系統(tǒng)把一些關(guān)鍵的查詢(xún)過(guò)程和查詢(xún)結(jié)果經(jīng)過(guò)處理后存儲(chǔ)下來(lái),并且當(dāng)系統(tǒng)數(shù)據(jù)信息有更新時(shí)還能自動(dòng)更新。這樣,當(dāng)以后再進(jìn)行類(lèi)似的查詢(xún)時(shí)就不必每次都去搜索整個(gè)數(shù)據(jù)庫(kù),而能快速地得到正確的查詢(xún)結(jié)果。系統(tǒng)能夠根據(jù)需要,把每次查詢(xún)的結(jié)果信息自動(dòng)生成合適的數(shù)據(jù)報(bào)表。
(四)系統(tǒng)配置維護(hù)管理模塊
本模塊負(fù)責(zé)對(duì)用戶和數(shù)據(jù)庫(kù)的維護(hù)進(jìn)行管理工作。包括對(duì)用戶申請(qǐng)、登錄申請(qǐng)和用戶權(quán)限設(shè)置等的工作,和對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)備份、恢復(fù)等的工作。
(五)系統(tǒng)的開(kāi)發(fā)平臺(tái)
本系統(tǒng)的數(shù)據(jù)庫(kù)采用SQL Server 2005系統(tǒng),使用基于Microsoft Visual Studio 2008 C#作為開(kāi)發(fā)語(yǔ)言進(jìn)行開(kāi)發(fā)。SQLServer 2005是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高和可多種平臺(tái)使用等優(yōu)點(diǎn)。在SQL Server 2000系統(tǒng)中提供了大量的數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)、建立和操作等方面的工具。c#是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于,NET Framework之上的高級(jí)程序設(shè)計(jì)語(yǔ)言。
三、數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)
數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建是一個(gè)不斷循環(huán)、反饋而使系統(tǒng)不斷增長(zhǎng)與完善的過(guò)程,它的設(shè)計(jì)主要包括概念模型設(shè)計(jì)、邏輯模型設(shè)計(jì)和物理模型設(shè)計(jì)3個(gè)階段。
(一)概念模型設(shè)計(jì)
概念模型設(shè)計(jì)是建立數(shù)據(jù)倉(cāng)庫(kù)的第一步,主要描述與業(yè)務(wù)有關(guān)的重要實(shí)體及相互之間的關(guān)系。它包括需求分析、主題確定和概念模型確定等內(nèi)容。
(1)需求分析
后勤倉(cāng)庫(kù)的高級(jí)管理者,不光需要知道倉(cāng)庫(kù)內(nèi)物品的具體數(shù)據(jù)信息,更重要的是需要了解:每種物品的進(jìn)貨渠道、進(jìn)價(jià);每個(gè)部門(mén)每個(gè)學(xué)期從倉(cāng)庫(kù)領(lǐng)取的物品的數(shù)量和金額。
(2)主題確定
根據(jù)需求分析,確定系統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的主題為:物品的進(jìn)貨渠道、部門(mén)和資金。
(3)概念模型確定
數(shù)據(jù)倉(cāng)庫(kù)的概念模型常見(jiàn)的有3種:星型模型、雪花模型和事實(shí)星座模型。星型模型可以采用關(guān)系型數(shù)據(jù)庫(kù)結(jié)構(gòu),模型的核心是事實(shí)表,圍繞事實(shí)表的是維度表,通過(guò)事實(shí)表將各種不同的維度表連接起來(lái),各個(gè)維度表都連接到中央事實(shí)表。在該模型中,因?yàn)榇蟛糠謹(jǐn)?shù)據(jù)都在事實(shí)表中,只需搜尋事實(shí)表就可進(jìn)行查詢(xún)。并且維度表都比較小,能放在高速緩存中,可以快速地與事實(shí)表進(jìn)行連接。星型模型實(shí)際上是以“空間”換“時(shí)間”,通過(guò)適當(dāng)增加冗余存儲(chǔ)空間來(lái)顯著地提高系統(tǒng)查詢(xún)速度,所以本系統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的邏輯模型采用星型模型。
(二)邏輯模型設(shè)計(jì)
邏輯模型是數(shù)據(jù)倉(cāng)庫(kù)從概念模型向物理模型過(guò)渡的中間層次模型。邏輯模型設(shè)計(jì)是把概念模型當(dāng)中各種概念和實(shí)體間的相互關(guān)系,進(jìn)行分解細(xì)化,使之能適應(yīng)計(jì)算機(jī)系統(tǒng)存儲(chǔ)模式。邏輯模型設(shè)計(jì)主要包括事實(shí)表的設(shè)計(jì)和維度表的設(shè)計(jì)。
(1)事實(shí)表設(shè)計(jì)
數(shù)據(jù)倉(cāng)庫(kù)中的每個(gè)主題都需要通過(guò)一個(gè)或多個(gè)相關(guān)的事實(shí)表進(jìn)行具體設(shè)計(jì)實(shí)現(xiàn)。事實(shí)表不僅是數(shù)據(jù)倉(cāng)庫(kù)的核心,也是構(gòu)成數(shù)據(jù)倉(cāng)庫(kù)的所有類(lèi)型表中體積最大的,它包含和決策目標(biāo)緊密相關(guān)的數(shù)據(jù)信息。事實(shí)表的內(nèi)容一般由兩部分組成:鍵和指標(biāo)。事實(shí)表使用鍵把各個(gè)維度表聯(lián)系起來(lái),指標(biāo)用于記錄事實(shí)表的詳細(xì)信息。不同的主題設(shè)計(jì)的事實(shí)表各有不同,以進(jìn)貨渠道主題為例設(shè)計(jì)事實(shí)表,它包括供應(yīng)商信息表、供應(yīng)物品信息表和供應(yīng)物品歷次價(jià)格信息表。
(2)維度表設(shè)計(jì)
事實(shí)表中的內(nèi)容進(jìn)一步分解,就得到維度表。維度表是事實(shí)表的關(guān)聯(lián)表,含有事實(shí)表中的特征數(shù)據(jù),使用關(guān)鍵字同事實(shí)表進(jìn)行關(guān)聯(lián)。維度表中還包含有多個(gè)詳細(xì)屬性,用于說(shuō)明對(duì)象的邏輯關(guān)系。在設(shè)計(jì)維度表時(shí),盡可能簡(jiǎn)化維度表與事實(shí)表之間的聯(lián)系,盡量減少表之間連接數(shù)量,以減輕計(jì)算機(jī)系統(tǒng)的運(yùn)算負(fù)擔(dān)。
下面列出進(jìn)貨渠道主題的供應(yīng)物品信息事實(shí)表的維度表:
物品單位維度表:個(gè)、臺(tái)、箱、本;
資金結(jié)算維度表:月結(jié)、年結(jié)、現(xiàn)金;
資金來(lái)源維度表:學(xué)院資金、部門(mén)資金、捐贈(zèng)。
(三)物理模型設(shè)計(jì)
物理模型設(shè)計(jì)即為邏輯模型中的數(shù)據(jù)確定一個(gè)符合要求的物理結(jié)構(gòu),也就是將邏輯模型當(dāng)中的相關(guān)內(nèi)容轉(zhuǎn)變?yōu)樵谟?jì)算機(jī)系統(tǒng)可以存儲(chǔ)的模式。在認(rèn)真分析系統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的基礎(chǔ)上,研究它的存儲(chǔ)結(jié)構(gòu)及方法、數(shù)據(jù)使用環(huán)境及使用方式和數(shù)據(jù)信息規(guī)模等主要參數(shù),完成高校后勤倉(cāng)庫(kù)信息管理系統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的物理模型設(shè)計(jì)。
(四)數(shù)據(jù)倉(cāng)庫(kù)的實(shí)現(xiàn)
系統(tǒng)使用SQL Server 2005中的數(shù)據(jù)倉(cāng)庫(kù)工具建立數(shù)據(jù)倉(cāng)庫(kù),使用c#實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)的接口設(shè)計(jì),使用Analysis Services工具采集和分析數(shù)據(jù)信息。數(shù)據(jù)的采集工作就是進(jìn)行數(shù)據(jù)的抽取、轉(zhuǎn)換、清洗和裝載的過(guò)程,將業(yè)務(wù)數(shù)據(jù)庫(kù)當(dāng)中的倉(cāng)庫(kù)物品數(shù)據(jù)信息加載到數(shù)據(jù)倉(cāng)庫(kù)中,從而完成數(shù)據(jù)信息從數(shù)據(jù)源向數(shù)據(jù)倉(cāng)庫(kù)的轉(zhuǎn)化。它主要進(jìn)行:識(shí)別數(shù)據(jù)源信息,管理元數(shù)據(jù),集成不同數(shù)據(jù)源的數(shù)據(jù)格式,清理數(shù)據(jù)集,數(shù)據(jù)分割,定期更新和維護(hù)數(shù)據(jù)。
四、結(jié)束語(yǔ)
本文設(shè)計(jì)開(kāi)發(fā)的高校后勤倉(cāng)庫(kù)管理信息系統(tǒng),利用數(shù)據(jù)倉(cāng)庫(kù)技術(shù)確定進(jìn)貨渠道、部門(mén)和資金3個(gè)主題,利用OLAP技術(shù)從不同的維度、側(cè)面和數(shù)據(jù)綜合程度對(duì)數(shù)據(jù)信息進(jìn)行多種不同形式地觀察,從而達(dá)到獲取這些直接數(shù)據(jù)信息背后關(guān)于3個(gè)主題的隱含信息的目的。如果用戶對(duì)隱含信息的獲取有新的或不同的需求,可以增加或更改主題,并按照新主題設(shè)計(jì)數(shù)據(jù)倉(cāng)庫(kù)。