王 睿 曾 斌
(1.海軍工程大學圖書館;2.海軍工程大學管理工程系,湖北 武漢 430033)
數據倉庫能夠對現有大量的分布、自制甚至異構的數據信息進行集成和存儲,以便能夠為單位領導提供輔助決策支持。其中前端工具幫助用戶高效地使用數據倉庫的各種功能,決策工具在后臺進行組織化查詢、在線分析處理(OLAP)和數據挖掘[1]。組織化查詢通過面向主題的數據庫視圖和SQL查詢語句的優化生成,能夠幫助用戶擺脫SQL語言和數據庫結構的復雜操作。通過OLAP工具,用戶可以以適合的方式觀察分布的關聯數據。這些工具按照業務主題或維度組織數據以便用戶可以沿不同層次和維度漫游檢索數據[2]。對于組織化查詢或OLAP都難以處理的關聯數據,則需要采用數據挖掘工具,它們可以在數據倉庫中提煉出隱藏潛在的有用模式。
由于預算有限,圖書館需要仔細選擇訂閱采辦的圖書資料。因此迫切需要一個能夠利用現有圖書管理系統的決策支持系統對采辦經費實施有效管理[3,4],同時能夠滿足學校教員、學生及其他用戶(讀者)的需要。
例如當讀者尋找某本參考書或期刊論文時,可能會出現以下兩種情況:
·圖書館具有該資料:如果它是一本期刊,則意味著圖書館訂購了該期刊或與某在線服務商簽訂了合同,并在服務目錄上包含該期刊。
·圖書館沒有該資料:在這種情況下,有可能需要納入后期購買計劃或從其他圖書館租借。如果同種圖書或期刊被多次租借,則租借費用可能會超過購買費用。
從以上例子可以看出,對圖書資料的利用模式進行分析識別,可以幫助圖書館領導決策何時或是否購買某類圖書、訂購某類期刊或進行租借。除此之外,資料利用模式的識別還具有許多用途,例如它還可以揭示使用某種圖書資源比較頻繁的專業、系別或人員,從而有針對性地進行推薦服務。而這種模式分析識別只有在建立數據倉庫及決策支持工具之上才能成功實現,這也是筆者的研究目的。
數據倉庫是本系統的核心部件。圖1描述了數據倉庫的體系結構:從大學圖書館現有的圖書管理信息系統中采集數據,與其他教務數據集成并存儲在數據倉庫中。

圖1 數據倉庫系統的體系結構
為了實現數據集成,需要建立數據倉庫和信息源的概念模型,為此必須清楚地給出數據倉庫和信息源中各個對象的相關性描述[5]。在這里信息集成可以按兩種方式實現:虛擬化和實體化。虛擬化集成僅實現用戶和信息源的接口,而實體化集成需要把集成信息存儲在數據倉庫中。筆者采用的是第二種,即采用數據倉庫來進行信息集成。而數據倉庫中對不同信息源進行集成又分為兩種方法:源驅動集成和客戶驅動集成[2]。源驅動集成在有新的數據源需要納入集成范圍時觸發;客戶驅動集成則在客戶提交新的查詢要求時激活。
當前原型系統中考慮的數據源包括以下幾種:
日常事務庫、教職員工數據庫、學生信息庫、館間交流數據庫、在線學術資料庫(包含摘要、引用及全文檢索等)、紙質圖書文獻數據庫。
日常事務庫來源于圖書館操作管理信息系統,主要記錄了圖書館文檔(圖書和期刊等所有信息)的采辦和借閱等日常事務。
大學與圖書文獻提供商都簽訂有采辦協議,這些信息都存儲于在線學術資料庫和紙質圖書文獻數據庫中,他們提供各項在線服務,例如各種期刊中論文的搜索和閱讀等。當有讀者使用他們的文獻服務時,提供商將在自己的數據庫中保存記錄及相應的服務費用。
在線學術資料庫記錄了期刊的月使用情況,但不包括使用資料庫的讀者姓名。讀者使用學術資料庫的方式有多種情況。如果僅查看資料庫中某論文的引用情況,這種使用方式標記為“查看”;如果讀者選擇打印或下載整篇論文,則標記為“交易”;如果僅是獲取論文摘要,這種使用稱之為“摘要”。對學術資料庫一般采用全年訂購。
紙質圖書文獻數據庫提供了一個可檢索的記錄庫,它可以通過傳真或郵件傳遞。它的使用方式只包括“交易”這一種,每個月發送一次使用報告,其中具體數據項包括期刊名稱、論文名稱、作者、讀者姓名以及費用(包括版面費或快遞費),該資料庫總共包括大約1500種期刊。隨著在線文獻的逐步普及,紙質文獻僅為大學內有特定需求的老教授提供。
教職員工數據庫和學生信息庫的來源為大學教務管理信息系統,它包含專業系、學生及大學內部教員職工的基本信息。
從其他協作單位圖書館租借的圖書資料信息都存儲在館間交流數據庫中,它的記錄項包括借閱該文獻的讀者姓名、出借文獻的圖書館名稱、文獻名稱、租借和歸還日期及相關費用。
以上數據源的記錄包含上百條屬性,系統采用了客戶驅動的集成方式。通過與學校領導的交流,分析了他們對決策信息的需求,對系統必需的記錄屬性進行了選擇。系統采用關系模型來描述數據源和數據倉庫。在當前的原型系統設計中底層支撐數據源的屬性如下。
·日常事務庫(讀者姓名、SN號、期刊名稱、作者姓名、ISSN號、ISBN號、BIB號、交易號、借閱日期、出版社名稱、費用)
·教職員工數據庫(教員姓名、SN號、所屬學院、所屬系、狀態)
·學生信息庫(學生姓名、SN號、學院名稱、主修專業系、狀態)
·館間交流數據庫(讀者姓名、期刊名稱、ISSN號、圖書館名稱、交易號、借閱日期、費用)
·在線學術資料庫(期刊名稱、ISSN號、查看、交易、摘要)
·紙質圖書文獻庫(期刊名稱、論文名稱、作者姓名、讀者姓名、交易號、費用)
以上幾個簡寫屬性的描述如下:
·SN號:教員或學員的證件號
·ISSN:國際標準序列號
·ISBN:國際標準文獻號
·BIB號:文獻識別碼
當前原型系統設計中,考慮期刊文獻是當前主要借閱來源,且為了減小數據倉庫的大小,暫時沒有包含圖書數據。
從廣義上講,數據倉庫是指一個單一的集成的數據庫,其中包含了大量的歷史數據。為了方便地訪問如此之多的數據,現代數據倉庫沒有采用傳統的關系數據庫模型,而是通過多維描述方式來進行信息處理[6]。不像“實體-關系”模型,多維模型是非對稱的。在多維模型中,數據被分為兩類:事實(facts)和維度(dimensions)。事實為正在分析的數據,維度為事實的屬性。這種描述數據的方式也被稱為星形方案。事實一般以表格形式列在星形方案的中心,通過連接線的形式與周圍的維度表關聯。
在當前的數據倉庫原型系統中,事實表的主要屬性為期刊的“使用”和“費用”,期刊使用包括兩個屬性:交易和查看。交易屬性記錄紙質期刊的借閱和在線期刊的下載。而期刊的在線閱讀被標記為查看。因為當前在線文獻資料庫和紙質文獻資料庫只包含期刊的月使用情況,所以事實表中的時間粒度為月。

圖2 數據倉庫的星形連接方案
圖2展示了數據倉庫的星形連接方案,其中包含了一個事實表和4個維度表。某些維度還具有層次關系,例如:文獻或文檔:出版社、名稱;讀者:所屬學院、所屬系;時間:年、月。
系統使用Oracle 9.0作為數據倉庫支撐平臺,為了實現方便,把星形連接方案映射為關系數據庫方案。星形方案中的事實表和維度表在Oracle中作為關系創建,同時保留了多維模型中所有的一致性和參照性約束。下一節將繼續討論源數據庫到數據倉庫的裝載問題。
如何保證數據的一致性可以說是建立數據倉庫的最重要問題。當數據從面向應用的操作數據庫傳輸到數據倉庫時,可能會出現大量的不一致和冗余,因此數據倉庫需要能夠保證數據的一致性協調性檢查和糾正。

圖3 數據倉庫屬性和元數據的關聯關系
在系統中利用了數據倉庫的清潔(clean)操作來檢查檢查噪音數據和不完整數據。圖3展示了數據倉庫和數據源屬性中存在的部分相關性[7]。在本系統中發現這些相關中存在不少需要解決的問題,如屬性值的缺失;數據域的不一致;記錄的重復;標識符的不唯一。
例如在從源記錄中采集數據時,發現某些屬性,包括費用、狀態和所屬學院存在缺失對應數據值的現象。由于這些屬性對于決策查詢語句的產生非常關鍵,必須把缺失的數據值補充完善。通過仔細檢查發現,由于歷史原因,大學院系先后出現了105個不同的名稱,這與教職員工數據庫和學生信息庫中發現的210個系名相沖突。為此我們根據這105個系名對現有數據庫中的210個系名進行了分簇化處理,還專門開發了轉換工具自動檢測并修改不正確的院系名稱。
同時在分析教職員工數據庫和學生信息庫中的7234條記錄時,發現有105個人重復出現,這是由于大學允許研究生可以跨專業系工作的原因造成,為此也開發了專門工具保證這些學生在數據倉庫中只能存在1條記錄。
當前原型系統中設計的數據分析工具主要包括組織化查詢、OLAP和分簇處理。下面以使用頻率的查詢為例進行說明。
①查詢某一時間內(1個月、1年中某幾個連續的月份或1年)某一期刊的使用情況或費用。
例如:查詢2013年7、8、9三個月“通信學報”的使用和費用情況。
②查詢某一時間內(1個月、1年中某幾個連續的月份或1年)內某一出版社出版的期刊使用或費用情況。
③查詢某一時間內(1個月、1年中某幾個連續的月份或1年)內由某一文獻提供商提供,且由某一出版社出版的期刊雜志的使用和費用情況。
④查詢某一時間內(1個月、1年中某幾個連續的月份或1年)內查閱數量最少(或最大)的所有期刊。
⑤根據期刊名(或其他屬性)對數據倉庫分簇。
分簇是指對異構的密集數據進行分組處理,從而形成一定數量的同構數據簇。在分簇時,每條記錄根據它們的相似性組合。在原型系統中,采用了基于模式識別的知識提煉方法來對數據庫中各個屬性值分簇。在這里模式是指屬性值的條件,例如:讀者姓名=“張三”,或期刊名稱=“計算機學報”。
規則是指兩個模式A和B的推導關系,表示為A?B,它表示如果A為真,則B成立。例如:讀者姓名=“張三”?期刊名稱=“計算機學報”。
該算法能夠按照規則,把具有相同結論的屬性值(規則前提)進行有效分組。例如上例中,如果屬性“讀者姓名”被選中,曾經以同一費用借閱過相同期刊的所有讀者都能夠被分簇在一起。
筆者主要研究了基于數據倉庫的文獻資料采辦系統的設計與實現,該系統的主要目的是幫助圖書館管理人員更好地制定某些期刊雜志的訂購采辦策略。
按照軟件工程的開發原則,一個復雜的數據倉庫系統是無法在一個周期內完整實現的,它需要不斷地深化研究和完善。下一步工作主要集中在原型系統的可擴展性研究方面。當在數據倉庫中裝載新的源數據時還會面臨不少問題,例如需要設計開發某種評判準則,當加入新數據時,可由它輔助提示何時用新數據替換現有數據,何時需要把新老數據整合為一個數據,新數據何時需要插入到現有數據后。為了解決該問題,可能需要設計開發新的查詢方法甚至輔助決策工具。
[1]Manu Bansal and Mandeep Kaur.Analysis and Comparison of Data Mining Tools Using Case Study of Library Management System[J].International Journal of Information and Electronics Engineering,2013(5):466-469.
[2]Anjana Gosain,Sushama Nagpal,Sangeeta Sabharwal.Validating dimension hierarchy metrics for the understandability of multidimensional models for data warehouse[J].IET Software,2013(2):93-103.
[3]彭駿,等.基于“二次選擇”算法的高校圖書館圖書采購決策系統構建[J].情報理論與實踐,2009(6):74-77.
[4]孫寶,等.基于借閱統計的采購量建模研究[J].情報科學,2011(1):102-107.
[5]曹靜.基于數據倉庫的高校圖書館決策支持系統研究[J].農業圖書情報學刊,2010(6):52-55.
[6]朱東妹,潘杏仙,付勇.高校圖書館多維數據倉庫模型的設計與實現[J].情報探索,2010(2):99-101.
[7]張肖回.基于數據倉庫技術的圖書館業務數據可視化監控平臺[J].現代情報,2013(4):150-153.