摘要:對教學管理過程中的的數據利用數據倉庫技術進行分析。以數據倉庫和OLAP為工具設計教學管理系統,詳細闡述數據倉庫的維表、事實表的設計,并以SQL Server 2005平臺為基礎,給出了具體的實現。
關鍵詞:數據倉庫; OLAP; 教學管理系統
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)34-1923-02
Data Warehouse and OLAP Technology in Teaching Management System's Application
GUANG De-jun
(Shenyang Radio and Television University, Shenyang 110003, China)
Abstract: To teaching management process in the data carries on the analysis using the data warehouse technology. Take the data warehouse and OLAP as the tool design teaching management systems, elaborated in detail data warehouse's Uygur table, the fact table's design, and take SQL the Server 2005 platforms as a foundation, has given concrete realization.
Key words: data warehouse; OLAP; Teaching management system
1 引言
數據倉庫和OLAP(聯機分析處理)技術的研究和應用越來越廣泛。教育機構將大量的學員信息和教學管理信息保存在數據庫中,數據庫的事務處理的功能不能完全滿足其對決策信息分析的需要,所以將數據倉庫、OLAP技術及數據挖掘技術引入教育機構的教學管理中,將有力的支持其管理工作和決策分析。
目前大多數教學管理系統都屬于操作型的管理系統,對支持決策的能力極其有限。操作型管理系統只具有簡單的的查詢和分析功能,如提供了某場考試的通過率,某個專業的通過率,某個考生的考試得失分情況,某個教師的學生成績情況等簡單的查詢或分析功能,這些查詢和分析只是一些二維報表形式,并且這些形式是固定的,單一的,不能滿足用戶及時的動態需求,同時大量的歷史數據只是簡單堆積,不能得到有效利用,而這些系統輔助決策的功能幾乎沒有。
然而我們在對教學管理過程中的數據進行分析發現,系統中包涵的各種科目信息、題目信息、考生信息、考試信息、教師信息數據都非常豐富,并且這些數據每次考試后都有大規模的增加,只是沒有將其充分有效的利用起來。因此,我們希望建立一個集科目、試題、學生、教師、考試信息為一體的數據倉庫系統,為用戶提供切塊、切片、鉆取、旋轉等多種分析手段,滿足用戶的多方面查詢需求。
2 聯機分析處理(OnLine Analytical Procoss)概述
聯機分析處理(OLAP)是利用存儲在數據倉庫中的數據完成各種直觀的分析操作,然后以統計模式的數字反饋給決策人員。
聯機分析處理(OLAP),是使分析人員、管理人員或執行人員能夠從多種角度,對從原始數據中轉化出來的、能夠真正為用戶所理解的并真實反映企業維特性的信息進行快速、一致、交互地存取,從而獲得對數據的更深入了解的一類軟件技術。
下面介紹與OLAP 有關的一些基本概念:
1) 變量
變量是從現實系統中抽象出來的,用于描述數據的實際含義。比如變量“成績”是描述學生考試取得的成績。變量都有自己的取值范圍,比如“成績”的取值范圍是“0~100”。取制取值范圍實際上是具體問題對變量的約束。
2) 維
維是與某一事件相關的因素在關系模型中的抽象。例如,教學管理部門常常關心學生的成績變化情況,這時是從時間角度來觀察成績的變化,所以時間是一個維(時間維)。同時,也想從專業的角度來觀察學生的成績,因此,專業也是一個維。
3) 維的層次
對應于數據的粒度,維也存在著層次性問題。緯度的層次性是人們觀察數據細致程度。緯度層次的確定需要具體問題具體分析,例如描述時間維,可以從日期、月份、季度、年等不同的層次來描述,那么日期、月份、季度、年等就是時間維的層次;又再如剛才所提及的專業維可以劃分科目、專業、一級學科三個層次。
4) 維的取值
維的取值也稱為該維的一個維成員。如果一個維是多層次的,那么該維的維成員是在不同維層次的取值的組合。比如,我們考慮時間維具有日期、月份、年這三個層次,分別再日期、月份、年上各取一個值組合起來,就得到了時間維的一個維成員,即“某年某月某日”。一個維成員并不一定在每個維層次上都取值,例如“某年某月”、“某月某日”、“某年”等等都是時間維的維成員。對應一個數據項來說,維成員是該數據項在某維中位置的描述。例如對一個銷售數據來說,時間維的維成員“某年某月某日”就是表示該銷售數據是“某年某月某日”的銷售數據,“某年某月某日”是該銷售數據在時間維上位置的描述。
5) 維的分類
維不但存在層次性,而且為了分析的需要也進行分類。分類就是按照一定的劃分標準對維的所有取值集合的一個分類劃分。比如成績可分為及格和不及格等。
3 數據倉庫的設計
3.1 數據倉庫的設計方法
由于教學管理系統是基于數據倉庫的OLAP 分析系統,所以數據倉庫是系統的核心,是OLAP 分析的基礎,所以數據倉庫的設計是該系統的中心問題。數據倉庫是一個面向數據分析型處理的數據環境,前面提到數據倉庫的數據具有面向主題、集成、時變、非易失性四個基本特征。這些特點說明了數據倉庫從數據組織到數據處理都和原來的關系數據庫有較大區別,這就決定了我們在設計數據倉庫系統時不能照搬原來傳統的數據庫應用系統的開發方法。這主要表現在以下幾個方面:
1) 面向的處理類型不同
建立該系統的目的不同于傳統的MIS 系統,操作型的MIS 系統一般是從具體的應用出發來進行數據庫設計。而數據倉庫系統屬于分析型處理,分析型處理主要用于管理人員的決策分析,通常需要訪問大量的歷史數據。數據倉庫的系統設計是面向分析的,我們在這里采用的開發方法是從最基本的主題開始的,然后不斷的發展新的主題,完善已有的主題,最終建立起面向主題的分析型數據環境。
2) 數據來源不同
操作型數據庫的數據通常來自外部,設計操作型數據庫就是設計如何與外部交互得到數據、如何將獲得的數據用適當的方法進行存儲、如何對數據庫進行查詢和更新操作等等。而數據倉庫的數據主要來源是系統的內部,設計數據倉庫就是要設計如何從現存的數據源中得到完整一致數據、如何將所得的數據進行轉換重組和整合、如何有效的提高數據分析的效率與準確性等等。
3) 面向的需求不同
面向應用的數據庫系統設計有一組確定的應用需求,這是數據庫系統設計和開發的出發點和基礎。而在數據倉庫環境下,并不存在操作型環境中的固定的且較確切的物流、數據流,數據的分析處理的需求更靈活,沒有固定的模式。在數據倉庫的系統設計時,很難一次確切了解用戶的所有需求,因此建立實際的、符合決策要求的數據倉庫系統是一個反復的過程。
我們在教學管理系統的數據倉庫實際構建中,采用了自底向上的構建方法。首先進行需求分析,在建立數據倉庫模型前先進行需求分析是因為我們需要確立一個主題,也就是明了系統需要滿足怎樣的分析目的,需要在哪些數據上進行分析,分析的數據規模現在可能有多大,將來又可能達到多大,各種數據源的具體情況等等。這些需求的確立,對下一步數據倉庫模型的建立有巨大的促進作用,能有效的縮短系統的構建周期。
在前期的分析工作中,我們對英才學院各數據源的數據結構和原有管理系統有了明確的了解,并結合教學管理實際,確定了數據倉庫的主題,為數據倉庫的建立打好了基礎。下面是數據倉庫創建過程中的幾個關鍵問題及解決方法。
本系統的一個目的是對科目、試題、學生、教師、考試信息等進行多維分析,我根據教學管理需要首先設計了基本的教學管理信息系統數據庫,然后在此基礎上建立數據倉庫。數據庫設計主要是按第三范式來設計表,第三范式的主要思想是消除關鍵字屬性和非關鍵字屬性之間存在的依賴關系,這樣做主要目的是消除數據冗余。下面是教學管理基本信息數據庫的詳細設計情況。
3.2 設計維表、事實表
維表和事實表的設計是數據倉庫構建的關鍵問題,維表和事實表設計的好壞直接影響到數據倉庫的響應時間和分析的效果。維是決策者觀察分析對象的角度,所以維的設計最能反映決策者的分析意圖和角度。維的設計必須體現出數據倉庫中數據的不同級別,也就是數據的粒度。數據的粒度越大,數據的綜合程度就越高;數據的粒度越小,數據就越表現細節。
不同的分析主題需要不同的模型,采集不同的數據,在這里我們首先確定分析主題為考試成績分析,在此基礎上確定事實表、維表所需的字段。事實表是數據倉庫的核心,通過數據轉換清理工具來提取有用的信息裝入事實表中。在事實表中,需要有度量值來作為數據分析的依據和尺度,度量值一般是數值型,可以進行求和、求平均等簡單的函數計算。本系統的事實表主要反映出考生成績,如果需要進行更復雜的計算,就需要通過程序中構造算法來實現。
成績是考試成績分析中度量信息,因此考試成績是事實表中的事實數據。而我們不同的分析角度相應對應為維度表。下面的關鍵問題是如何劃分維度的層次,即粒度劃分。
各維表中的層次關系的確定是非常重要的,層次將維分成多個抽象層,有利于用戶從不同的角度觀察數據,同時為OLAP 提供處理的依據,如OLAP 中的上卷、下鉆、切片、切塊等操作都是基于維的層次而言的。我們在確定維的層次關系時主要根據學校組織機構及教學管理系統中與考生成績信息相關的表來確定的。以學生維為例學生是分別屬于各專業的,而專業本身就具備層次關系,每一一級學科都包含了多個專業,而每一學院又包括多個一級學科,這樣一來學生維的層次關系可以為:學院〉一級學科〉專業〉學生,同時學生個人基本信息例如性別、生源地、年齡等也可以作為分析的角度,即作為學生維度中的字段。正確確立學生維度層次關系后,在OLAP 分析中就可以按維度的不同字段層次進行分析。在教學管理中,成績的分析在時間上一般有按學期、學年、學制期等,其中的層次關系由高到低是學級、學年、學期。從而確定時間維。教師維的分析包括教師的性別、職稱、部別等,考試維的確定要根據每次考試的名稱、考試性質(國考、校考等)等。 上述這些信息主要分布在考生報名表、考生基本情況表、教師表、考試成績表、專業情況表中, 在載入數據倉庫時需要通過數據轉換清理工具提取需要的屬性數據。而對于與成績分析無關的試題信息以及其它的細節信息則無需加入。
在本系統中我們采用星型模式來連接維表和事實表。采用星型模式來設計維表和事實表時就需要將分布在多張表的信息進行轉換和整合,提取和分析主題關系密切的屬性來形成維表,而有些表中的字段內容和屬性就不需要在數據倉庫中出現。
圖1 是考試成績分析系統的維表和事實表的星型結構圖。
在上圖結構中,事實表中的字段除了維度主鍵外,只有成績一項事實數據。實際根據分析主題的要求,成績事實表中也可以加入其它事實數據,如平均成績、及格率等,只不過這些數據在提取過程中需要進行簡單的數學計算而已。這樣,在創建多維數據集時,可以根據實際需要選擇適合的事實數據。
4 系統實現
針對本教學管理系統,此數據庫倉庫的實施是以SQL Server 2005平臺為基礎,前端編程工具為Java程序設計語言。
數據倉庫實現的第一步工作是建立數據庫集市。提供數據源的事務系統是基于SQL Server的教學管理系統和試題庫系統。建立兩個數據集市分別針對成績和試題主題,主題建成以后,建立針對主題的數據集市,通過SQL Server的OLAP服務對數據集市進行分析,從而從多個角度對考試成績和試題進行分析。
建立數據庫之后,通過SQL Server中的DTS服務工具,創建數據庫倉庫中的事實表與維表;通過Analysis Services來建立多維數據集,實現OLAP操作,支持多維查詢表達式查詢,并通過自動掛造MDX語句,實現上卷、下鉆、切塊、切片、鉆取、旋轉等OLAP運算。
5 結束語
利用數據倉庫和OLAP技術建立的教學管理系統可使教學管理走上系統化、科學化的軌道,可以為其使用者提供更好的分析服務,發掘自身潛藏的有用信息,提高自身的教學水平,為國家提供更好的專業人才,為管理決策工作提供及時準確的信息。同時對提高自身的競爭能力具有重要的實際意義。
參考文獻:
[1] 曹薊光,王申康.基于數據倉庫的綜合知識發現系統的研究與應用[J].計算機應用研究,2001(3):68-70.
[2] Hand D,Mannila H,Smyth P.Principles of Data Mining[J].Massachusetts Institute of Technology,2003(9):233-283.
[3] 王小潔.面向CRM系統的數據倉庫的設計與實現[J].計算機工程與設計,2007,28(21):5088-5090.
[4] Imhoff C,Galemmong,Geiger J.數據倉庫設計[M].于戈,飽玉斌,王大玲,等,譯.北京:機械工業出版社,2004.