譚海軍
摘 ? 要:為了解決數(shù)字化校園建設(shè)過(guò)程中異構(gòu)數(shù)據(jù)的數(shù)據(jù)處理和數(shù)據(jù)共享問(wèn)題,文章針對(duì)校園網(wǎng)應(yīng)用系統(tǒng),利用數(shù)據(jù)交換技術(shù)和XML良好的擴(kuò)展性、自描述性、形式與內(nèi)容分離等特性,較好地實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)庫(kù)中的數(shù)據(jù)共享和共用。
關(guān)鍵詞:數(shù)字化校園;異構(gòu)數(shù)據(jù);可擴(kuò)展標(biāo)記語(yǔ)言;數(shù)據(jù)共享;校園網(wǎng)
1 ? ?當(dāng)今數(shù)字化校園建設(shè)存在的問(wèn)題
隨著21世紀(jì)的快速發(fā)展和信息技術(shù)的迅速普及,人類社會(huì)發(fā)生了重大變化。各大高校教育管理的工作方式和手段,從教育環(huán)境和模式到教育理念,正在逐步發(fā)生深刻變革。其中高校管理部門(mén)根據(jù)各部門(mén)的需求,逐步建立了各種信息管理系統(tǒng),極大地提高了信息管理的效率。然而,在許多學(xué)校中長(zhǎng)期存在這樣一個(gè)現(xiàn)象:由于各種原因,這些系統(tǒng)建立的時(shí)間不同,采用的開(kāi)發(fā)技術(shù)和數(shù)據(jù)庫(kù)系統(tǒng)不盡相同,系統(tǒng)之間沒(méi)有統(tǒng)一的信息標(biāo)準(zhǔn)[1]。因此,許多“信息孤島”在高校形成。
分析其原因,主要是各個(gè)部門(mén)在進(jìn)行信息系統(tǒng)建設(shè)時(shí)創(chuàng)建了大量的數(shù)據(jù)庫(kù),這些數(shù)據(jù)庫(kù)在物理和邏輯上獨(dú)立創(chuàng)建和管理,每個(gè)獨(dú)立數(shù)據(jù)庫(kù)都有自己的模式、數(shù)據(jù)、數(shù)據(jù)模型和數(shù)據(jù)調(diào)用語(yǔ)言,形成了異構(gòu)數(shù)據(jù)庫(kù)[2]。
數(shù)據(jù)庫(kù)異構(gòu)性主要體現(xiàn)在以下幾個(gè)方面:
(1)計(jì)算機(jī)體系結(jié)構(gòu)導(dǎo)致的異構(gòu)。每個(gè)參與的數(shù)據(jù)庫(kù)可能在大型機(jī)、小型機(jī)、工作站、個(gè)人計(jì)算機(jī)(Personal Computer,PC)或嵌入式系統(tǒng)上運(yùn)行。
(2)基礎(chǔ)操作系統(tǒng)的異構(gòu)。各個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)操作系統(tǒng)可能是Windows,Unix,Linux等。
(3)DMBS本身的異構(gòu)性。異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)可能由相同關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)庫(kù)形成,例如Oracle,SQL Server或不同數(shù)據(jù)模型的數(shù)據(jù)庫(kù),例如關(guān)系、模式、層次結(jié)構(gòu)、網(wǎng)絡(luò)、面向?qū)ο蟮臄?shù)據(jù)庫(kù)和函數(shù)數(shù)據(jù)庫(kù)。
由此產(chǎn)生的信息交流障礙阻礙了校園網(wǎng)應(yīng)用管理系統(tǒng)的全面表現(xiàn),甚至出現(xiàn)財(cái)務(wù)數(shù)據(jù)與學(xué)籍管理數(shù)據(jù)不一致的現(xiàn)象,給校園信息化管理帶來(lái)一定的困難。
2 ? ?基于XML的數(shù)字校園數(shù)據(jù)交換平臺(tái)的設(shè)計(jì)
數(shù)字化校園需要的是一個(gè)全新的開(kāi)放資源共享環(huán)境,使其具有豐富的信息和優(yōu)秀的服務(wù)能力,因此當(dāng)務(wù)之急是解決校園網(wǎng)應(yīng)用系統(tǒng)間的異構(gòu)數(shù)據(jù)交換和信息共享問(wèn)題。目前,校園信息管理系統(tǒng)主要是以瀏覽器/服務(wù)器(Brower/Server,B/S)結(jié)構(gòu)或服務(wù)器/客戶機(jī)(Client/Server,C/S)模式開(kāi)發(fā)的。后端數(shù)據(jù)庫(kù)使用關(guān)系數(shù)據(jù)庫(kù),如SQL Server,ORACLE,Sybase等。
基于這種由關(guān)系數(shù)據(jù)庫(kù)支持的校園網(wǎng)應(yīng)用系統(tǒng),設(shè)計(jì)了基于可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,XML)技術(shù)的第三方數(shù)據(jù)交換中心平臺(tái)。
2.1 ?系統(tǒng)概述
基于XML的數(shù)字校園數(shù)據(jù)交換平臺(tái)通過(guò)將XML格式定義為標(biāo)準(zhǔn)格式,實(shí)現(xiàn)了各種應(yīng)用系統(tǒng)的數(shù)據(jù)共享和數(shù)據(jù)轉(zhuǎn)換。本平臺(tái)使用4種功能機(jī)制:IML(標(biāo)準(zhǔn)數(shù)據(jù)交換語(yǔ)言集)、消息中心(文檔轉(zhuǎn)換中心)、數(shù)據(jù)庫(kù)管理和安全機(jī)制。
2.2 ?系統(tǒng)結(jié)構(gòu)模型
數(shù)字校園數(shù)據(jù)交換平臺(tái)基于XML,使用XSL/XSLT定義用戶視圖,以XML Schena或文檔類型定義(Document Type Definition,DTD)構(gòu)建合法的XML文檔,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)的共享數(shù)據(jù)轉(zhuǎn)換。本系統(tǒng)由數(shù)據(jù)交換平臺(tái)管理中心控制,IML管理器、消息中心控制臺(tái)、數(shù)據(jù)庫(kù)管理器和安全機(jī)制負(fù)責(zé)分工。每個(gè)異構(gòu)網(wǎng)絡(luò)都有自己的數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)格式,但這些網(wǎng)絡(luò)功能節(jié)點(diǎn)可以使用內(nèi)部網(wǎng)或Internet和基于XML的數(shù)字校園數(shù)據(jù)交換中介功能,以實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換和異構(gòu)網(wǎng)絡(luò)的共享。整個(gè)系統(tǒng)以標(biāo)準(zhǔn)化的XML數(shù)據(jù)格式進(jìn)行通信,IML過(guò)濾器可以處理和調(diào)整各種數(shù)據(jù)格式并支持各種協(xié)議,如Email,HTTP和FTP。
2.3 ?基于XML數(shù)字校園數(shù)據(jù)交換平臺(tái)的幾個(gè)關(guān)鍵模塊的實(shí)現(xiàn)
為了實(shí)現(xiàn)異構(gòu)數(shù)據(jù)的共享和交換,有必要將來(lái)自不同數(shù)據(jù)源的數(shù)據(jù)轉(zhuǎn)換為一致的格式和為每個(gè)異構(gòu)數(shù)據(jù)源的局部模式提供一致的全局模式。以下就實(shí)現(xiàn)數(shù)據(jù)交換的兩個(gè)關(guān)鍵問(wèn)題做簡(jiǎn)要說(shuō)明。
2.3.1 ?數(shù)據(jù)驅(qū)動(dòng)管理模塊
目前,市場(chǎng)上占主導(dǎo)地位的數(shù)據(jù)庫(kù)是關(guān)系數(shù)據(jù)庫(kù),主要包括ACCESS,Oracle,SQL Server,MySQL,Sysbase等,因此,該模塊包含著幾種公共數(shù)據(jù)源的驅(qū)動(dòng)程序[3]。該模塊完成各種異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)的識(shí)別,為相應(yīng)的數(shù)據(jù)庫(kù)構(gòu)建驅(qū)動(dòng)程序文件,將獲取的驅(qū)動(dòng)程序信息加載到驅(qū)動(dòng)程序庫(kù)中,并構(gòu)建驅(qū)動(dòng)程序信息表,允許了在建立新數(shù)據(jù)源時(shí)從該表中調(diào)用相應(yīng)的驅(qū)動(dòng)文件。
2.3.2 ?數(shù)據(jù)映射模塊的實(shí)現(xiàn)
對(duì)于異構(gòu)數(shù)據(jù),不同的數(shù)據(jù)模式具有不同的結(jié)構(gòu),但它們所表示的信息內(nèi)容是常見(jiàn)的。本模塊采用XML Schema作為XML文檔的模式語(yǔ)言,將XML文檔視為數(shù)據(jù)庫(kù)中的數(shù)據(jù),將DTD或XML模式視為數(shù)據(jù)庫(kù)模式,并將其映射為關(guān)系數(shù)據(jù)庫(kù)中的Schema[4],通過(guò)其提供的簡(jiǎn)單數(shù)據(jù)類型或用戶自定義類型,用于從異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)中提取有用信息,并創(chuàng)建XML文檔以進(jìn)行替換。該文檔存儲(chǔ)了重要信息,例如關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)表、字段類型、字段約束以及字段內(nèi)容之間的關(guān)系,并為異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)交換提供統(tǒng)一的數(shù)據(jù)訪問(wèn)類型。
3 ? ?數(shù)據(jù)交換中心建設(shè)中的幾個(gè)關(guān)鍵問(wèn)題
數(shù)據(jù)交換中心是一個(gè)整體結(jié)構(gòu),任何一個(gè)細(xì)節(jié)規(guī)劃的忽略都有可能導(dǎo)致問(wèn)題的發(fā)生。因此,為了避免在數(shù)據(jù)交換中心建設(shè)過(guò)程中由于缺乏考慮而導(dǎo)致的工期延誤或者返工,需要了解以下幾個(gè)關(guān)鍵問(wèn)題:
(1)數(shù)據(jù)標(biāo)準(zhǔn)的規(guī)范。首先制定信息標(biāo)準(zhǔn),然后制定統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),建立可靠的數(shù)據(jù)中心。這一階段意味著為學(xué)校建立基本的信息編碼標(biāo)準(zhǔn)。
(2)中心數(shù)據(jù)庫(kù)的設(shè)計(jì)。確定數(shù)據(jù)標(biāo)準(zhǔn)后,設(shè)計(jì)共享數(shù)據(jù)中心數(shù)據(jù)庫(kù)結(jié)構(gòu),這是構(gòu)建數(shù)據(jù)中心的關(guān)鍵。數(shù)據(jù)中心的共享數(shù)據(jù)庫(kù)結(jié)構(gòu)必須根據(jù)教育部教育資源規(guī)范中規(guī)定的資源類型進(jìn)行統(tǒng)一,并保留各種程序接口,以便隨時(shí)擴(kuò)展資源中心的功能。
(3)數(shù)據(jù)同步問(wèn)題。業(yè)務(wù)系統(tǒng)和共享數(shù)據(jù)中心數(shù)據(jù)庫(kù)之間的信息交換分為兩部分,將業(yè)務(wù)系統(tǒng)數(shù)據(jù)上載到數(shù)據(jù)中心并從數(shù)據(jù)中心讀取業(yè)務(wù)信息。對(duì)于數(shù)據(jù)同步方案,應(yīng)該設(shè)計(jì)良好的解決方案,以確保實(shí)時(shí)、準(zhǔn)確的信息流。
(4)對(duì)異常數(shù)據(jù)的處理。在數(shù)據(jù)交換中,通常存在數(shù)據(jù)類型不匹配的情況,例如最簡(jiǎn)單的日期形式。實(shí)際上,在SQL Server 2012中,會(huì)有兩個(gè)完全不同的數(shù)據(jù)表示過(guò)程,第一個(gè)是smalldatetime,第二個(gè)是datetime,但對(duì)于Oracle 10i,只有一種方式來(lái)表示日期,即date。盡管日期表示模式存在顯著差異,但兩個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)可用于日常使用。在SQL Server 2012中的查詢結(jié)果為“2015-6-9 00:00:00”,但Oracle 10i檢索的數(shù)據(jù)為“9-6-15”,因此,在數(shù)據(jù)庫(kù)中檢索的日期是“2015-6-9”。Oracle的默認(rèn)日期表達(dá)式模式為dd-mm-yy,其中“dd”是日,“mm”是月,“yy”是年[5]。通常,由于Oracle中的日期沒(méi)有固定格式,因此可以使用函數(shù)來(lái)解決數(shù)據(jù)庫(kù)中的此缺陷。在TO DATE函數(shù)中輸入特定時(shí)間,最后根據(jù)數(shù)據(jù)格式指定,通常根據(jù)特定的格式更改XML文檔的字符。另外,空數(shù)據(jù)是不同的,如果數(shù)據(jù)庫(kù)具有空值,則數(shù)據(jù)實(shí)際為空。XML文檔是相同的概念,通常可以使用元素屬性來(lái)顯示。在數(shù)據(jù)庫(kù)中,空元素字符表示為0,這意味著字符長(zhǎng)度是0,但是應(yīng)確保在映射數(shù)據(jù)庫(kù)或處理XML文檔時(shí)刪除空值,否則文件是錯(cuò)誤的。實(shí)際上,在將數(shù)據(jù)庫(kù)轉(zhuǎn)換為XML文檔格式的過(guò)程中,如果數(shù)據(jù)庫(kù)中的數(shù)據(jù)為空,那么將數(shù)據(jù)轉(zhuǎn)換為XML文檔時(shí)是無(wú)法區(qū)分空值的。在分析XML文檔中的數(shù)據(jù)庫(kù)值時(shí),如果分析結(jié)果為空,則該段字符就會(huì)被程序默認(rèn)為DB Null。
4 ? ?結(jié)語(yǔ)
在數(shù)字校園建設(shè)過(guò)程中,異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)交換和共享是亟待解決的問(wèn)題。本文通過(guò)定義使用新的XML數(shù)據(jù)格式語(yǔ)言IML,將異構(gòu)數(shù)據(jù)構(gòu)建為標(biāo)準(zhǔn)XML數(shù)據(jù),并使用統(tǒng)一的數(shù)據(jù)交換格式參與數(shù)據(jù)交換。通過(guò)構(gòu)建通用的IML數(shù)據(jù)格式,處理系統(tǒng)平臺(tái)內(nèi)外不同類型的數(shù)據(jù)流,并提取每個(gè)異構(gòu)數(shù)據(jù)庫(kù)中相關(guān)數(shù)據(jù)的主要部分,根據(jù)實(shí)際交換要求交換和添加數(shù)據(jù),從而實(shí)現(xiàn)數(shù)字校園中異構(gòu)數(shù)據(jù)庫(kù)的交換和共享。
[參考文獻(xiàn)]
[1]羊牧,胡艷梅,羅婷.數(shù)字化校園數(shù)據(jù)交換中心的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代教育技術(shù),2006(1):56-59.
[2]何東隆,李美真.精通XML與網(wǎng)頁(yè)設(shè)計(jì)高級(jí)教程[M].北京:中國(guó)青年出版社,2001.
[3]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2006.
[4]黃寬娜,劉微.基于XML中間件的異構(gòu)數(shù)據(jù)庫(kù)集成[J].西南大學(xué)學(xué)報(bào)(自然科學(xué)版),2010(9):141-146.
[5]黃明婕.基于XML技術(shù)的企業(yè)數(shù)據(jù)交換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2017.
Abstract:In order to solve the problem of data processing and sharing of heterogeneous data in the process of digital campus construction, this paper aims at the campus network application system, and realizes the data sharing in heterogeneous database by using the characteristics of good expansibility, self-descriptive, separation form and content of data exchange technology.?
Key words:digital campus; heterogeneous data; extensible markup language; data sharing; campus network