[摘 要] 隨著信息技術的發展,許多高校建立了相對完善的管理信息系統。但是,目前所在高校只有基于聯機事務處理的管理系統, 缺乏對歷史數據的有效利用和分析, 不能獲取潛在有用信息。本文重點介紹了運用數據倉庫及其相關技術和Microsoft SQL Server 2000 提供的數據透視表服務構建學生成績分析數據倉庫。最終實現數據多維分析與查詢。
[關鍵詞] 數據倉庫 學生成績分析 聯機分析處理 多維分析
一、引言
目前,許多高校的管理信息系統已經完善,其中記錄的大量信息已經成為學校的寶貴資源,但是這些信息大部分只是簡單地存儲在數據庫中,隱藏在這些數據中的潛在信息閑置,所隱含的價值沒有挖掘利用。對一個學校來說,學生成績是評估教學質量的重要依據,也是學生是否掌握好了所學知識的重要標志。目前的高校學生成績管理系統使用的多是傳統的數據庫系統,即聯機事務處理系統,一般能夠對學生各類課程成績、畢業設計成績和學分制成績等進行有效管理,進行數據查詢和簡單的統計功能。但傳統的學生成績分析無非是得到均值、方差、效度等,其實另外還有一些不易察覺的信息隱含其中。學生成績分析數據倉庫正是為解決這一問題而設計的,通過它可以及時發現教學中存在的問題,找到影響學生成績的真實原因,從而采取有利于提高學生學習質量的有效的教學手段,提高教學質量,為難以制定的管理決策提供科學的依據,為教學的管理和發展上做出即時、正確的判斷。
二、基于數據倉庫技術的決策支持系統
1.數據倉庫
數據倉庫技術從本質上講,是一種信息集成技術。數據倉庫從多個信息源中獲取原始數據,經過加工整理后,存儲在數據倉庫的內部數據庫中,通過向終端用戶提供信息訪問工具,向數據倉庫的用戶提供統一、協調和集成的信息環境,支持企業全局的決策過程和對企業經營管理的深入綜合分析。
2.基于Analysis Services的OLAP相關技術
數據倉庫的實現最終是由許多支持工具來共同完成的。Microsoft公司在SQL Server2000上提供了Analysis Services,它用于聯機分析處理(OLAP),是數據倉庫的解決方案,也是Microsoft決策支持服務的主要組件。
Analysis Services系統包括服務端和客戶端兩個部分。服務端的組件是為創建和維護多維數據結構,并提供多維數據以響應客戶端查詢而專門設計的。它具有創建和管理OLAP數據,通過透視表(PivotTable)向客戶端提供數據的能力。它的操作包括從基于關系型數據庫的數據倉庫中創建多維數據立方體和將其存儲到多維立方體結構,關系數據庫或兩者的結合中。
多維立方體結構中的元數據存放在關系數據庫的存儲單元中。客戶端中關鍵的部分是透視表服務(PivotTableService)。PivotTable服務是應用程序訪問Microsoft Analysis Services的接口,MicrosoftExcel和其他供應商提供的應用程序可以通過它來訪問服務器中的數據并將結果顯示給用戶,或用它創建用于脫機分析的本地多維數據集。同時,通過它還可以和OLAPServer連接,為用戶的客戶端應用程序提供一個接口,從服務端獲取OLAP數據。
3.創建立方體
本文以對學生成績的分析為例,以原有數據庫中保存的歷年學生成績數據做依據,用數據倉庫技術幫助我們分析處理數據,得出有價值的結論。
首先進行數據的準備。包括數據抽取、選擇.預處理轉換。學校的傳統數據庫中存有近幾年的基本信息表,這些數據的格式有關系數據庫表和純文本文件等,因此由原有異構環境向OLAP環境轉換就成為數據倉庫構建過程中最重要的一步。在構建數據倉庫之前創建一個名為gzxy的數據集市,打算采用星型模型維度建模,來描述學生、教師、課程、時間之間的關系。在學生成績分析數據倉庫中以成績表作為事實表。而課程信息、教師信息、學年學期信息等作為維度表。主要結構如圖1所示。
數據集市支持不同的類型的數據存儲類型。目前有MOLAP、ROLAP、HOLAP三種,但以MOLAP效率較高,成為首選。MOLAP(多維OLAP)是將基礎數據和它們的聚集使用多維立方體的存儲方式來存貯,創建后的多維立方體如圖2所示。其中維度包括學期,性別,課程名。度量值包括成績,課程號,學年學期,學號。計算成員AvgScore用來計算某門課程的平均成績,這樣可以對成績作橫向的比較。它的表達式為:[Measures].[Cj]/[Measures].[Xh],其中cj成績度量值設為sum求總和,xh學號度量值設為count求學生人數,這樣就可以得到平均分了。
對多維數據集處理后在“數據”窗口內可以看到數據分析的結果,如圖3所示。比方說,我們在“課程名”中選擇“英語”課程,比較每個學期男生,女生的平均分情況后我們發現每個學期女生的分數都高于男生大概有6分左右,所以“英語”這門課女生還是比較有優勢的,這個情況依舊沒有改變,學校可以著重加強動員男生學習英語的興趣。再比如“C語言課程”,主觀認為應該男生應占優勢,但根據數據顯示,依舊是女生的平均分高出5分左右。所以我們可以發現現在高校普遍存在的一個現象就是女生的成績普遍好于男生,即使是在一些男生占優勢的課程上。就其原因來看可能是女生在找工作時的局限性大于男生,特別是在我校以鐵路專業為主的情況下,女生更多的想通過成績上的優秀與男生競爭,學校可以通過這些數據的比較有側重的安排教學改進措施。
4.數據分析結果展現
對于多維數據庫的顯示,可以有很多種方式,可以在VB中引用Microsoft Office Web Component(OWC)中的組件PivotTable來完成對多維數據集的顯示;當然要顯示多維數據集中的查詢結果肯定要涉及到ADO MD和MDX。對多維數據集查詢結果進行顯示即把通過MDX語句查詢出的結果利用OWC的數據透視表組件PivotTable顯示。通過把MDX語句的查詢結果作為OWC中的組件PivotTable和Chartspace的數據源。
上面的分析結果用MDX語句表達,作為PivotTable的數據源,可以在PivotTable上面顯示如圖4的顯示結果。
PivotTable1.CommandText=“select crossjoin({(measures.[scoreAvg])},{[性別].[所有 性別].children}) on columns,
{[學期].[所有 學期].children} on rows
from 成績分析
where ([課程名].[所有 課程名].[C語言程序設計])”
通過上面這個MDX語句,我們可以得到關于C語言課程各個學期男女學生考試成績的平均分。
三、結束語
本文通過SQL Server2000上的AnalysisServices的聯機分析處理(OLAP)驗證了構建的數據倉庫的合理性和有效性,用透視表服務PivotTableService作為客戶端的展示工具。由于數據倉庫技術是一門新興的前沿學科,構建數據倉庫幫助教育管理人員做出科學的決策仍然處于不斷的研究和探索之中,但就其對高校教學管理信息化建設而言是有必要的,而且相信在今后的工作中一定能體現出它的強大優勢。
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”