收稿日期]2009-01-11
[作者簡介] 李雅莉(1973-),女,陜西寶雞人,寶雞文理學院電子電氣工程系講師、碩士,主要研究方向:計算機應用技術。
[摘 要]研究如何根據決策主題創建數據倉庫,并在SQL Server 2000中實現數據倉庫的物理模型及利用DTS數據轉換服務設計實現數據提取、轉換、加載和自動更新的DTS包。
[關鍵詞]數據倉庫;SQL Server 2000;DTS包
doi:103969/jissn1673-0194200917030
[中圖分類號]F2707;TP311[文獻標識碼]A[文章編號]1673-0194(2009)17-0084-04
1 引 言
決策支持系統(DSS)是在管理信息系統的基礎上發展起來的,是一個基于計算機的支持系統。傳統的決策支持系統是基于數據庫和模型庫的,由于數據庫只能對原始數據進行一般的加工和匯總,致使決策所需信息不足,模型庫很難適應決策本身的動態性和復雜性,而且兩庫被獨立設計,缺乏內在的統一性[1] 。隨著計算機的普及和信息技術的迅速發展,興起了三項決策支持新技術,即數據倉庫(DW)、聯機分析處理(OLAP)、數據挖掘(DM)。數據倉庫是在數據庫的基礎上發展起來的,是為決策分析服務的,聯機分析處理把數據的組織由二維平面結構擴充到多維空間結構,并提供了多維數據分析方法,數據挖掘則是利用一系列方法,從海量數據中提取隱含在其中的有用信息和知識的過程[2] 。目前開發的DSS是以數據倉庫技術為基礎,以聯機分析處理和數據挖掘工具為手段,這三者的結合創立了決策支持系統的新方向,彌補了傳統決策支持系統中數據組織的不足和數據不一致問題,正在被廣泛地應用于各行各業的管理決策中。
數據倉庫為決策支持系統提供充分可靠的數據基礎,因此,數據倉庫建立得是否完善直接影響決策的質量。本文主要研究如何根據決策主題創建數據倉庫,并在SQL Server 2000中實現數據倉庫的物理模型及利用DTS數據轉換服務設計實現數據提取、轉換、加載和自動更新的DTS包。
2 基于數據倉庫和數據挖掘的決策支持系統體系架構
基于數據倉庫和數據挖掘的決策支持系統結構框圖如圖1 所示。數據倉庫為數據挖掘提供了廣闊的活動空間,確保數據挖掘中數據來源的廣泛性和完整性。而數據挖掘面對的是經過初步加工的數據,使得數據挖掘更專注于知識的發現。OLAP從數據倉庫中的集成數據出發,提供面向分析的多維數據模型,并使用多維分析方法從多個角度、多個側面及多個層次對多維數據進行分析、比較,使用戶以更接近自然的方式分析數據。

3 數據倉庫的設計
銷售預測是企業市場營銷管理中最重要的因素之一,也是企業供應鏈的關鍵環節,根據銷售預測的結果,企業可以制訂科學合理的采購計劃、生產計劃、人員計劃、庫存計劃以及營銷計劃。因此,銷售預測決策支持系統對企業的經營決策具有重要的研究意義。本文以零售企業銷售預測為切入點,重點研究銷售預測決策支持系統中的數據倉庫的設計和具體實現。
數據倉庫中的數據是為決策分析服務的,因此必須以決策需求為基礎來構建數據倉庫。數據倉庫的設計包括:需求分析、概念模型設計、邏輯模型設計和物理模型設計4個步驟[3-4] 。
31 需求分析
日趨激烈的市場競爭要求零售企業經營者更加準確了解企業的經營狀況,更加合理組織企業的經營活動。零售企業數據庫中存儲了大量的銷售記錄,而決策者并不關注每一筆的銷售情況,而是需要知道這樣一些信息:
(1)每一年、季、月、日的銷售情況分析,某段時間內銷量的變化情況。
(2)每個商品或每類商品的銷售情況分析,哪種商品銷售最多、獲利最大;商品的未來銷售情況。
(3)哪類顧客購買力最強,商品銷售的主要顧客群。
(4)各個連鎖商店的銷售業績分析,未來各連鎖商店的銷售前景。
(5)預測分析。
這些信息可以從不同的角度來分析和預測,如通過不同種類的商品之間的銷售情況對比,不同連鎖商店的業績對比,同一商品在不同時間、不同地點的銷售情況的變化以及根據商品在某地區、某時間、某價格下的銷售歷史記錄對商品的未來銷售情況進行預測等得到決策者需要的信息。這些信息需求已經超出了數據庫所能提供的信息范圍,要想從銷售數據庫中提取這些信息,滿足信息需求,實現決策支持,必須建立銷售數據倉庫。
針對零售業銷售的業務特點,利用企業POS銷售系統的數據記錄及營銷系統的顧客資料、商品資料、外部數據等創建用于銷售分析和銷售預測的數據倉庫,通過數據倉庫技術對銷售情況進行全面分析,設計目標使用戶能夠直接訪問數據,按照預測和分析的主題來組織數據。
32 概念模型設計
通過需求分析可知,要反映一個企業某段時間內的銷售狀況,可以用商品的銷售量、銷售額、銷售成本、銷售利潤等指標進行評價;決策者需要從時間、商品、顧客和地區這幾個角度進行分析、計算。為此,確定商品、顧客、商店、時間4個基本維度實體,其星型結構如圖2所示。

商品數據的分析可以說明顧客買了什么和沒買什么,從而用暢銷的商品替代滯銷的商品;顧客分析主要是對顧客的基本情況,如購買商品、顧客分布、顧客的價值等進行分析;分析商店的數據可以知道顧客的購物地點,進而估計固定商店的綜合銷售情況;對時間數據的分析可以知道交易發生的時間、時間段或季節,通過這些信息可以發現特定商品在一年中某個特定時間銷售情況,既可以了解歷史銷售狀況,也可以對當前的銷售狀況進行分析、統計,從而對以后的銷售情況進行預測,并相應地調整商品的采購和庫存量。
商品、顧客、商店和時間4個基本維度實體可以構成銷售數據倉庫的維度信息。
33 邏輯模型設計
目前,數據倉庫一般都建立在關系數據庫基礎上,因此,數據倉庫設計過程中所采用的邏輯模型主要是關系模型。其基本框架通常由事實表和一些維表組成,目前較為流行的是星型模式。
通過對數據倉庫的需求分析和概念模型設計,將模型數據劃分為顧客、商店、商品、時間4個粒度,每個粒度具有不同的粒度級別。通過對粒度以及粒度級別的詳細研究,進行事實表和維度表的設計。
銷售數據倉庫包含1個事實表和4個維度表。在事實表中確定度量數據為商品的銷售量、銷售額、銷售成本。對于時間、商品、顧客、商店4個維度表,每個維表都有自己的屬性,將其層次劃分如下:

34 物理模型設計
數據倉庫的物理模型就是邏輯模型在物理系統的實現模式,依據確定的邏輯模型建立對應的物理表結構來存儲數據,確定索引策略、數據存放位置等,使用數據倉庫開發工具完成數據倉庫的物理模型創建。
目前,市場上有多種數據倉庫開發工具,但相比而言,微軟的數據倉庫解決方案,在快速、經濟地建立中小型企業數據倉庫系統方面有明顯的優勢。微軟為創建數據倉庫提供了一系列工具[5] :提供的OLE DB數據接口,可用于連結多個異構數據庫和相互傳遞數據;提供的數據轉換服務(DTS)和SQL Server代理服務能幫助用戶實現數據倉庫數據的自動獲取,在數據傳輸過程中可以完成數據的驗證、清理和轉換等操作;OLAP Analysis Service能開展多維數據的在線分析和數據挖掘,發現數據之間的規律和潛在關系,提高數據分析和處理能力,使數據直接面向決策分析。此外,數據挖掘支持由第三方開發的算法。可以說微軟數據倉庫解決方案可以對數據倉庫進行創建、操作、管理與應用的全方位支持,使快速開發數據倉庫系統成為可能,因此,選用微軟提供的SQL Server 2000來開發銷售數據倉庫。
銷售數據倉庫以SQL Server 2000為平臺,采用星型模型設計事實表與維度表,并在所有表的主要字段上建立索引。其物理模型設計如圖4所示。

4 數據倉庫的實現
數據倉庫設計好后,如何將企業網絡中不同站點的各個POS系統數據,包括顧客數據、商品數據、時間數據、連鎖商店數據的營銷數據,以及其他數據從各種不同類型的操作型數據庫系統中抽取出來,完成一系列轉換,最后將數據加載到數據倉庫,是整個數據獲取中關鍵的也是最困難的一步。
41選擇數據源
銷售數據倉庫中的數據來自企業網絡中不同連鎖店的多個營銷點的POS系統數據、營銷數據和一些外部數據,這些數據分布在不同的地區,記錄著來自不同地區的顧客的基本信息和詳細的交易細節。把這些數據集中在一起就可以組成用來進行決策分析的數據基礎。源數據可能是多種類型的數據庫,如Access、Foxpro、Oracle、Sybase、DB 2、SQL Server和一些文本文件等。
42 數據的提取、轉換與加載
(1)數據提取。
數據庫中的數據是操作型數據,不符合數據倉庫數據的面向分析要求,某些數據還因集成度太低而需剔除。提取是將所需的數據源移入數據倉庫的過程。已經建立的物理數據倉庫僅僅提供一個供用戶訪問的數據存儲結構,其中并沒有任何數據資源,為了能在數據倉庫中使用數據資源,數據的提取必須既滿足決策的需要,又不影響業務系統的性能,所以應制定相應的提取策略,對于不同類型的數據源設計不同的數據提取接口、提取方式、提取時機和提取周期等內容。
(2)數據轉換。
對從業務系統中提取的數據根據數據倉庫系統模型的要求,進行數據的轉換、清洗、拆分、匯總等處理,保證來自不同系統、不同格式的數據的一致性和完整性,并按要求裝入數據倉庫。這種轉換包括了數據類型轉換、數據格式轉換、數據匯總計算、數據拼接等。
(3)數據加載。
數據加載就是將從數據源系統中提取、轉換和清洗后的數據加載到數據倉庫的事實表和維表中。數據的加載策略根據數據的提取策略以及業務規則確定,主要有兩種加載技術:使用數據倉庫開發商提供的數據加載工具進行數據加載;通過數據倉庫開發商提供的編程接口進行數據加載。
Microsoft公司的數據轉換工具DTS通過OLE DB接口能夠在關系數據源、非關系數據源以及ODBC數據源之間轉移數據;可以自動或交互地從多個異構數據源向數據倉庫裝入數據;DTS支持使用VBScript或JavaScript等腳本語言創建自定義的轉換腳本,也允許使用編程語言(如Visual Basic或Visual C++)編寫自定義的組件,能夠在轉換中對數據進行包括校驗、清理等的各種操作。集成在SQL Server 2000中的DTS可以自動調度導入或操作任務,也可以使用SQL代理服務來進行調度[6] 。
采用SQL Server 2000的數據轉換服務DTS作為提取、轉換和加載工具,DTS通過OLE DB接口連接數據源并提取數據。為了能夠順利地對準備裝入數據倉庫的數據進行抽取、清理和轉換,創建了數據準備區,利用DTS工具將選定的數據庫表根據數據抽取原則抽取到SQL Server 2000中的數據準備區,在數據準備區用SQL語句或ActiveX 腳本語言編程實現數據的清洗、匯總、統計、轉換處理,檢查數據的一致性和完整性等工作后,將數據加載到SQL Server 2000的數據倉庫中。
數據抽取、清理、轉換和加載可以通過DTS設計器創建DTS包而自動完成。DTS包含3種類型的對象:連接對象、任務對象和步驟對象。連接對象定義關于源和目標數據源的連接屬性和條件;任務對象定義了轉換過程中要執行的動作,例如執行SQL語句,拷貝一個表的內容或執行一段ActiveX腳本;步驟對象定義任務對象執行的順序。
由于事實表的時間ID、商品ID、顧客ID、商店ID數據依據相關的維表,根據關系規則,數據導入要先導入維表,然后再導入事實表,整個DTS包工作流的執行步驟如圖5所示。
執行這個定義好的DTS包,數據將按照設定的步驟和規則導入到數據倉庫的維表和事實表中。
43 數據的更新
當源數據庫中數據發生變化時,數據倉庫中的數據要能及時更新,以保證用于決策分析的數據是完整、有效的。在實際應用中利用SQL Server代理服務提供的作業調度功能,將DTS包設置為自動執行方式,定期地進行數據更新維護。為了不影響用戶白天工作時正常使用系統,將DTS包的執行時刻設置為夜里無人工作時間,如圖6所示。

5 總 結
本文對零售企業銷售預測決策支持系統中數據倉庫的設計和實現進行了詳細的研究,主要包括數據倉庫的結構設計和數據源的加載,構建了用于銷售分析的數據倉庫,設計了實現數據提取、轉換、加載和自動更新的DTS包。
主要參考文獻
[1] 楊衛民數據倉庫和數據挖掘在林業決策支持系統中的應用研究[D].長沙:中南林學院,2005
[2] 陳文偉決策支持系統及其開發[M].北京:清華大學出版社,2004
[3] 潘珩汽車營銷決策支持系統數據倉庫的設計與實現[J].石河子大學學報:自然科學版,2005,23(5):658-660
[4] 李瑞華,李霞數據倉庫在中小型企業決策支持系統中的應用[J].山西廣播電視大學學報,2005,10(6):24-25
[5] 羅運模SQL Server 2000數據倉庫應用與開發[M].北京:人民郵電出版社,2001
[6] 武彥峰,朱仲英基于DTS組件的數據倉庫的數據抽取工具的設計與實現[J].微型電腦應用,2004,20(3):1-4