馬根峰 趙明
摘 ?要: 數(shù)據(jù)倉庫以其面向主題的、集成的、不可更新的、隨時(shí)間不斷變化等特征,更好地支持了企業(yè)或組織的決策分析處理。它通過將數(shù)據(jù)按照不同的綜合程度(即粒度)來組織,以滿足不同分析的需要。星形模式是基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫中的一個著名概念,由于星形連接模式的設(shè)計(jì)思想能夠滿足人們從不同觀察角(維)度分析數(shù)據(jù)的需求,所以在基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫設(shè)計(jì)中被廣泛使用。本文主要介紹了《廣東省高速公路一張網(wǎng)資金結(jié)算情況分析系統(tǒng)》中的數(shù)據(jù)倉庫技術(shù)。
關(guān)鍵詞: 數(shù)據(jù)倉庫; 星形模式; 維度; 萬能數(shù)據(jù)庫查詢分析器; OLAP
中圖分類號:TP392 ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A ? ? 文章編號:1006-8228(2015)07-39-03
Guangdong highway settlement business analysis system based on star schema in data warehousing
Ma Genfeng1, Zhao Ming2
(1. Guangdong Unitoll Services incorporated, Guangzhou, Guangdong 510620, China; 2. Tianjin University of Technology and Education)
Abstract: Data warehouse is characterized by its subject-oriented, integrated, non-renewable, time-changing, and better support for decision analysis processing of enterprise or organization. It organizes the data in accordance with different degree of synthesis (i.e. granularity), to meet the needs of different analysis. The star schema is a well-known concept of data warehouse based on relational database, due to the design idea of the star schema can meet the demands for data analysis of the different observation angle (dimension), so it is widely used. This paper mainly introduces the star schema of data warehousing used in Guangdong highway settlement business analysis system.
Key words: data warehousing; star schema; dimensionality; DB query analyzer; OLAP
0 引言
數(shù)據(jù)倉庫技術(shù)用以處理面向主題的,集成的,不可更新的,隨時(shí)間不斷變化的數(shù)據(jù)集合。它通過將數(shù)據(jù)按照不同的綜合程度(即粒度)來組織,以滿足不同分析的需要[5]。
星形模式是基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫中的一個著名概念,由于星形連接模式的設(shè)計(jì)思想能夠滿足人們從不同觀察角(維)度分析數(shù)據(jù)的需求,加上數(shù)據(jù)倉庫通常用來回答綜合性的問題,所以在基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫設(shè)計(jì)中廣泛地使用了星形模式,如電信運(yùn)營商中普遍進(jìn)行的話務(wù)量總體分析[1]。
本文主要圍繞“廣東省高速公路一張網(wǎng)資金結(jié)算情況分析系統(tǒng)”中如何使用數(shù)據(jù)倉庫技術(shù)來實(shí)現(xiàn)“資金結(jié)算情況的分析”這個主題進(jìn)行探討。
1 系統(tǒng)中的數(shù)據(jù)倉庫設(shè)計(jì)
1.1 廣東聯(lián)合電子結(jié)算中心操作型環(huán)境DB2數(shù)據(jù)庫服務(wù)器下的數(shù)據(jù)組織情況
在廣東聯(lián)合電子結(jié)算中心,“異常流水”、“流水拆分”、“流水上傳”等關(guān)系模式有以下。
⑴ 粵通卡精確拆分結(jié)果明細(xì)表
tb_cardaccuratesplitresult(流水號,工班,出口路段…,收入路段)
⑵ 現(xiàn)金精確拆分結(jié)果明細(xì)表
tb_cashaccuratesplitresult(流水號,工班,出口路段…,收入路段)
⑶ 流水非精確拆分記錄表
tb_inaccuratesplitrecord(流水號,工班,出口路段…,收入路段)
⑷ 拆分流水異常記錄表
tb_outlistspliterrorgb(流水號,工班,出口路段,…,錯誤類型代碼)
⑸ 拆分流水異常記錄歷史表
tb_outlistspliterrorgb_his(流水號,工班,出口路段,…,錯誤類型代碼)
⑹ 流水異常記錄表
tb_outlisterrorgb(流水號,工班,出口路段,…,錯誤類型代碼)
⑺ 流水異常記錄歷史表
tb_outlisterrorgb_his(流水號,工班,出口路段,…,錯誤類型代碼)
⑻ 出口流水表
tb_outlistgb(流水號,工班,出口路段,…,上傳時(shí)間)
1.2 數(shù)據(jù)倉庫設(shè)計(jì)[1]
設(shè)計(jì)步驟簡化為三步:
⑴ 概念模型設(shè)計(jì);
⑵ 邏輯模型設(shè)計(jì);
⑶ 數(shù)據(jù)倉庫生成。
1.2.1 概念模型設(shè)計(jì)中的界定系統(tǒng)邊界
在廣東聯(lián)合電子服務(wù)股份有限公司,管理者最迫切需要的分析目標(biāo)主要有:
⑴ 各高速公路路段公司若干工班的流水上傳、流水拆分;
⑵ 各個高速公路路段公司上傳的異常流水(包含異常及拆分異常)及其修改的情況。
要進(jìn)行以上分析,所需數(shù)據(jù)應(yīng)包括:
⑴ 分析各條高速公路路段公司在一段周期內(nèi)的流水上傳數(shù)量、拆分?jǐn)?shù)量、拆分流水比例;異常流水?dāng)?shù)量、異常流水修改的數(shù)量、修改比例;
⑵ 分析各條高速公路對應(yīng)的軟件開發(fā)商上傳的異常流水(包含異常流水及拆分異常流水)數(shù)量、上傳的異常(包含異常及拆分異常)流水修改的數(shù)量,以及修改的比例;
⑶ 每個工班全省上傳的異常流水?dāng)?shù)量的總體分析;
⑷ 全省所有高速公路收費(fèi)系統(tǒng)的軟件開發(fā)商,產(chǎn)生的各種類型的異常流水?dāng)?shù)量的分析;
⑸ 全省所有高速公路上傳的各種類型的異常流水的分析。
1.2.2 邏輯模型設(shè)計(jì)
因?yàn)榧?xì)節(jié)級數(shù)據(jù)太大,數(shù)據(jù)倉庫又建立在本人的PC機(jī)MS SQL SERVER服務(wù)器上,加之迫于分析任務(wù)提交時(shí)間的壓力,故本數(shù)據(jù)倉庫中不再涉及細(xì)節(jié)級數(shù)據(jù)表的設(shè)計(jì)、數(shù)據(jù)挖掘[6]。
本文只設(shè)計(jì)了以下幾個綜合級的關(guān)系模式,ok_xiugai對應(yīng)于已經(jīng)成功修改的異常流水信息;no_xiugai對應(yīng)于還沒有進(jìn)行修改的異常流水信息;upload_split對應(yīng)于各條高速公路流水上傳及拆分的數(shù)量; 而kaifa代表維表“開發(fā)商”,tb_road代表維表全省的各條高速公路[2]。
關(guān)系模式定義:
ok_xiugai (LISTNO, UPLOADTIME, OUTROADNO,
SQUADDATE, ERRCODE, ERRMSG…)
no_xiugai (LISTNO, UPLOADTIME, OUTROADNO,
SQUADDATE, ERRCODE, ERRMSG…)
upload_split(路段編碼,路段名稱,工班,上傳流水?dāng)?shù)量,拆分流水?dāng)?shù)量…)
kaifa (roadno, kaifa_name)
tb_road(areano,roadno,roadname,…)
1.2.3 數(shù)據(jù)倉庫數(shù)據(jù)生成
數(shù)據(jù)倉庫中數(shù)據(jù)的生成包括:操作型環(huán)境數(shù)據(jù)的挖掘和數(shù)據(jù)倉庫中數(shù)據(jù)的生成兩部分。如圖1和圖2這里所要做的工作是接口編程,實(shí)現(xiàn)將操作型環(huán)境OLTP下的數(shù)據(jù)裝載進(jìn)入數(shù)據(jù)倉庫的OLAP環(huán)境中。
[生產(chǎn)機(jī)數(shù)據(jù)庫][數(shù)據(jù)倉庫][拆分流水異常記錄表\&\&][流水異常記錄表\&\&][數(shù)據(jù)挖掘] [no_xiugai\&ListNo
UPLOADTIME
OUTROADNO
SQUADDATE
ERRCODE
ERRMSG\&]
圖1 ?數(shù)據(jù)挖掘(生成未修改的流水信息)
設(shè)集合A為拆分流水異常記錄表,B為流水異常記錄表,C為OLAP操作環(huán)境中的no_xiugai ,則
C=, 其中、
以下給出生成修改正確的流水信息算法。
設(shè)集合A為拆分流水異常記錄表,B為流水異常記錄表,C為拆分流水異常記錄歷史表,D為流水異常記錄歷史表,E為OLAP操作環(huán)境中的ok_xiugai,則
E=∪, 其中、、、
[生產(chǎn)機(jī)數(shù)據(jù)庫][數(shù)據(jù)倉庫][奧通卡精確拆分結(jié)果明細(xì)表\&\&][現(xiàn)金精確拆分結(jié)果明細(xì)表\&\&][數(shù)據(jù)挖掘] [uplond_split\&路段編碼
…\&][流水非精確拆分記錄表\&\&][出口流水表\&\&]
圖2 ?數(shù)據(jù)挖掘(生成流水上傳與拆分的信息)
設(shè)集合A為粵通卡精確拆分結(jié)果明細(xì)表,B為現(xiàn)金拆分結(jié)果明細(xì)表,C為流水非精確拆分記錄表,D為出口流水表,E為OLAP操作環(huán)境中的upolad_split,則
E=()×,其中、、、
2 數(shù)據(jù)倉庫的數(shù)據(jù)導(dǎo)出與展現(xiàn)
2.1 萬能數(shù)據(jù)庫查詢分析器
萬能數(shù)據(jù)庫查詢分析器,中文版本《DB查詢分析器》、英文版本《DB Query Analyzer》。它具有強(qiáng)大的功能、友好的操作界面、良好的操作性、跨越各種數(shù)據(jù)庫平臺乃至于EXCEL和文本文件[3]。
可以通過它查詢ODBC數(shù)據(jù)源(包括世面上所有的數(shù)據(jù)庫、TXT/CSV文件、EXCEL文件)的數(shù)據(jù)??梢酝瑫r(shí)執(zhí)行多條DML語句乃至存貯過程,結(jié)果會以已設(shè)定的表格、文本框、文件來返回。當(dāng)從數(shù)據(jù)庫導(dǎo)出千萬條數(shù)據(jù)時(shí),其效率與DBMS沒有什么區(qū)別[4]。
《萬能數(shù)據(jù)庫查詢分析器》中文版本《DB 查詢分析器》在中關(guān)村的在線下載量超過10萬次,位居整個數(shù)據(jù)庫類排行榜中第10位,所以在實(shí)際工作中,本人用《DB查詢分析器》作為客戶端,實(shí)現(xiàn)將數(shù)據(jù)倉庫中的數(shù)據(jù)展現(xiàn)與導(dǎo)出。
2.2 本系統(tǒng)中的兩個分析目標(biāo)的星形模式
設(shè)集合A、B、C、D為OLAP環(huán)境下的ok_xiugai、no_xiugai、tb_road、upload_split,E為分析模型“異常流水及修改情況、流水上傳與拆分”,則
E=()××
設(shè)集合A、B、C、D為OLAP環(huán)境下的ok_xiugai、no_xiugai、tb_road、kaifa,E為分析模型“高速公路公司、各條高速公路開發(fā)商的異常流水及修改情況”,則
E=()××
具體如圖3和圖4。
roadname\&] [路段代碼] [kaifa\&roadno
kaifa_name\&]
圖4 ?星型模式下的“高速公路公司、各條高速
公路開發(fā)商的異常流水及修改情況”分析
2.3 數(shù)據(jù)樣例示意
數(shù)據(jù)樣例示意如圖5、圖6所示。
3 結(jié)束語
數(shù)據(jù)倉庫技術(shù)對于回答及解決一些綜合性的面向主題的問題,具有強(qiáng)大的優(yōu)勢。而對于使用數(shù)據(jù)倉庫來回答綜合性問題的場合,星形連接模式可以滿足決策者從不同的維來觀察數(shù)據(jù)的需求。筆者在《廣東省高速公路一張網(wǎng)資金結(jié)算情況分析系統(tǒng)》的研究與開發(fā)過程中,采用了數(shù)據(jù)倉庫的設(shè)計(jì)理念進(jìn)行數(shù)據(jù)倉庫的各級模型設(shè)計(jì),并通過數(shù)據(jù)挖掘來生成數(shù)據(jù)倉庫中的數(shù)據(jù),最后使用萬能數(shù)據(jù)庫查詢分析器來進(jìn)行數(shù)據(jù)展現(xiàn),這也是本人在實(shí)際工作中對數(shù)據(jù)倉庫技術(shù)的又一次運(yùn)用。近一年來,該系統(tǒng)每周在經(jīng)過數(shù)據(jù)挖掘、倉庫數(shù)據(jù)生成和數(shù)據(jù)展現(xiàn)后,為企業(yè)管理者提供了較為清晰地分析結(jié)果。文中的不足之處,還請有關(guān)專家批評指正。
圖5 ?數(shù)據(jù)展現(xiàn)
圖6 ?點(diǎn)擊“DB查詢分析器”的工具欄按鈕,即可導(dǎo)出數(shù)據(jù)
參考文獻(xiàn):
[1] 馬根峰.基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫星形模式下維使用原則的研究[J].
計(jì)算機(jī)工程與設(shè)計(jì),2005.1.
[2] 馬根峰.廣東電信公話200專用話機(jī)話務(wù)動態(tài)分析系統(tǒng)的構(gòu)建[J].電
信科學(xué),2003.11.
[3] 新產(chǎn)品&工具點(diǎn)評.特別推薦:“萬能數(shù)據(jù)庫查詢分析器”發(fā)布[J].程
序員,2007.2.
[4] 馬根峰.《DB查詢分析器》批量執(zhí)行DML語句并返回更詳細(xì)的信息[J].
電腦編程技巧與維護(hù),2011.24.
[5] 王珊.數(shù)據(jù)倉庫技術(shù)與聯(lián)機(jī)分析處理[M].科學(xué)出版社,1998.
[6] Michael Corey(美), Michael Abbey(美). SQL SERVER 7 Data
Warehousing[M].希望電子出版社,2000.