鄭州旅游職業(yè)學(xué)院 王靜蕾
高校數(shù)字化系統(tǒng)數(shù)據(jù)整合研究與實現(xiàn)
鄭州旅游職業(yè)學(xué)院 王靜蕾
為了實現(xiàn)統(tǒng)一的資源管理、門戶管理和權(quán)限管理,必須科學(xué)規(guī)范地對高校的信息資源進(jìn)行整合。在數(shù)據(jù)整合過程中,通過對業(yè)務(wù)流程的組織和再造,從而推動高校的制度創(chuàng)新和管理創(chuàng)新,最終實現(xiàn)教育信息化、決策科學(xué)化和管理規(guī)范化。目前,信息資源主要有3種整合策略。
1.資源集中法。指通過對高?,F(xiàn)有應(yīng)用系統(tǒng)的調(diào)研,按照各個部門的需求,制定統(tǒng)一的信息標(biāo)準(zhǔn)和應(yīng)用平臺,在統(tǒng)一的框架中重建各種應(yīng)用子系統(tǒng),建立統(tǒng)一的主題數(shù)據(jù)庫,用于存儲全校的數(shù)據(jù)。各部門將有用的數(shù)據(jù)集中到數(shù)據(jù)中心。這樣,系統(tǒng)中只有1個主數(shù)據(jù)庫,這樣做的優(yōu)點(diǎn)是各個子系統(tǒng)之間的耦合程度較高,資源相對穩(wěn)定,容易實現(xiàn)各子系統(tǒng)與數(shù)據(jù)中心的無縫連接。缺點(diǎn)是開發(fā)周期相對較長,用戶需求難以準(zhǔn)確把握且靈活度不高,資源的所有權(quán)也無法得到很好的解決。
2.元數(shù)據(jù)整合法。指在保留各部門原有應(yīng)用系統(tǒng)不變的前提下實現(xiàn)資源整合,從各應(yīng)用系統(tǒng)中抽取有共享價值的數(shù)據(jù),建立共享數(shù)據(jù)中心。各部門的數(shù)據(jù)讀寫操作都在其原有的應(yīng)用系統(tǒng)中進(jìn)行,只有當(dāng)這些數(shù)據(jù)涉及其他部門時,系統(tǒng)才通過預(yù)先的部署將共享的數(shù)據(jù)推出或錄入,從而實現(xiàn)應(yīng)用系統(tǒng)數(shù)據(jù)的相互關(guān)聯(lián)。這種方法的優(yōu)點(diǎn)是數(shù)據(jù)檢索速度快,能適應(yīng)內(nèi)容的頻繁更新,缺點(diǎn)是統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn)的難度較大。
3.聯(lián)合檢索法。聯(lián)合檢索法類似于元數(shù)據(jù)整合的做法,在應(yīng)用系統(tǒng)只涉及本地數(shù)據(jù)訪問時,數(shù)據(jù)操作只發(fā)生在本地,當(dāng)請求訪問其他部門和工作站的數(shù)據(jù)時才和數(shù)據(jù)中心進(jìn)行關(guān)聯(lián)。兩者的不同之處在于,這種資源整合方法并不創(chuàng)建共享數(shù)據(jù)庫,而是建立資源索引庫。所有業(yè)務(wù)數(shù)據(jù)仍然存放在各部門的工作站中。部門將有共享價值的數(shù)據(jù)子集存放在資源索引庫中,告訴它某個數(shù)據(jù)處于網(wǎng)絡(luò)的哪個位置,其功能類似于互聯(lián)網(wǎng)上的搜索引擎。這種方法適合元數(shù)據(jù)不能集中訪問不同資源的情況,但它采用了資源索引庫,而忽視了原有資源信息存在的不同標(biāo)準(zhǔn),因此,維護(hù)難度比較大。
雖然以上3種數(shù)據(jù)整合策略各有利弊,但都需要在數(shù)據(jù)源中獲取有用的數(shù)據(jù),并利用某種方法形成一種類似于“中間件”的集成模式,用戶可通過這種集成模式與數(shù)據(jù)源之間建立聯(lián)系,從而對元數(shù)據(jù)進(jìn)行查詢或修改等操作。數(shù)據(jù)整合中所利用到的關(guān)鍵技術(shù)有以下幾種。
1.獲取元數(shù)據(jù)。各部門的數(shù)據(jù)保存于不同的應(yīng)用系統(tǒng)服務(wù)器上,存儲的標(biāo)準(zhǔn)也不盡相同,對于這些異構(gòu)數(shù)據(jù)源的整合,最關(guān)鍵的步驟就是集成數(shù)據(jù)源的相關(guān)信息,也就是獲取元數(shù)據(jù)。目前,主流的數(shù)據(jù)庫產(chǎn)品均能根據(jù)保存的數(shù)據(jù)庫文件類型生成相應(yīng)的SQL腳本,協(xié)助用戶備份或建立數(shù)據(jù)庫。這些腳本包含了數(shù)據(jù)源的所有元數(shù)據(jù)。雖然不同的數(shù)據(jù)庫產(chǎn)品在語法上略有不同,但都可以通過分析SQL腳本結(jié)構(gòu)來提取所需要的元數(shù)據(jù),并將按照統(tǒng)一的格式保存到元數(shù)據(jù)庫中。
2.集成模式的建立。所謂數(shù)據(jù)集成在這里是指按照用戶的查詢需求從各部門數(shù)據(jù)源中得到元數(shù)據(jù)并進(jìn)行清理與整合,并將元數(shù)據(jù)作為依據(jù)進(jìn)行連接形成元數(shù)據(jù)庫的過程。集成后數(shù)據(jù)在邏輯上依然是按“表”或“視圖”的形式組織的,但因為同一列的元數(shù)據(jù)來源于不同的數(shù)據(jù)源,所以集成時可能會因為數(shù)據(jù)源對字段類型定義的不同而導(dǎo)致整合的失敗。因此,在進(jìn)行集成之前,必須根據(jù)實際的需求建立相應(yīng)的集成模式,如對相同語義的元數(shù)據(jù)重新定義統(tǒng)一的字段名稱、類型和長度等數(shù)據(jù)內(nèi)容,從每個數(shù)據(jù)源得到的數(shù)據(jù)都要使用此標(biāo)準(zhǔn)進(jìn)行轉(zhuǎn)換以確保集成操作順利地進(jìn)行。
3.集成模式與元數(shù)據(jù)之間的映射關(guān)系。集成模式對異構(gòu)數(shù)據(jù)源上具有相同語義的元數(shù)據(jù)進(jìn)行了統(tǒng)一的管理,但如果要獲得實際需要的數(shù)據(jù),還必須通過與異構(gòu)數(shù)據(jù)源的元數(shù)據(jù)發(fā)生某種聯(lián)系來實現(xiàn),這種聯(lián)系便是集成模式與數(shù)據(jù)源元數(shù)據(jù)之間的映射。映射是以集成模式為參照,由用戶選擇需要整合的表,將需要集成的具有相同語義的元數(shù)據(jù)并聯(lián)到相關(guān)的集成模式上。這時,異構(gòu)數(shù)據(jù)源就會以集成模式為紐帶產(chǎn)生一定的關(guān)聯(lián),只要對集成模式及相應(yīng)的映射關(guān)系進(jìn)行分析就能得到各數(shù)據(jù)源的實際查詢語句,實現(xiàn)對異構(gòu)數(shù)據(jù)源的查詢。
4.查詢語句的生成。通過對集成模式及其對應(yīng)的映射關(guān)系進(jìn)行分析,就能把集成模式的查詢分解為針對各異構(gòu)數(shù)據(jù)源的查詢,然后再把各數(shù)據(jù)源的查詢結(jié)果按照集成模式進(jìn)行整合,最終得到集成結(jié)果。
1.數(shù)據(jù)整合的大致思路。先根據(jù)用戶需求鎖定所需的元數(shù)據(jù),然后建立集成模式,對其進(jìn)行一定的篩選和刪減,生成用戶視圖(表),并確定相應(yīng)的映射關(guān)系,對用戶視圖(表)進(jìn)行分析,根據(jù)用戶視圖(表)的字段以及相應(yīng)的映射關(guān)系確定每個異構(gòu)數(shù)據(jù)源需要查詢語句,并使用用戶視圖的字段作為元數(shù)據(jù)字段的別名,如果在數(shù)據(jù)源中不存在映射關(guān)系,則元數(shù)據(jù)字段以“NULL”值代替。最后,根據(jù)元數(shù)據(jù)字段生成各數(shù)據(jù)源查詢語句,每執(zhí)行一個查詢語句后都在本地數(shù)據(jù)庫中建立臨時表保存查詢結(jié)果。對所有的臨時表按記錄數(shù)目的多少進(jìn)行排序,將記錄數(shù)目最少的2個表進(jìn)行連接,由此生成1個新的臨時表,完成后將參與連接的2個表刪除。循環(huán)上述步驟,直到剩下最后1個臨時表,即為集成查詢的初步結(jié)果。最后對最終臨時表進(jìn)行整理,消除表中的重復(fù)項,并按用戶視圖的樣式輸出,完成最終的數(shù)據(jù)整合。
2.關(guān)鍵代碼舉例。在此,對整個過程關(guān)鍵代碼舉例說明,以在2個不同部門的服務(wù)器上的2張表作為源數(shù)據(jù)表,通過SQL中的openrowset命令來實現(xiàn)數(shù)據(jù)的同步查詢、修改等操作。具體操作代碼如下所示:
不難看出,這段代碼只對1臺服務(wù)器數(shù)據(jù)庫進(jìn)行操作,而對另1服務(wù)器數(shù)據(jù)庫的操作在存儲過程“client_seach”中體現(xiàn)出來。存儲過程“client_seach”的關(guān)鍵Transact-SQL語句如下所示:
用select*from client查詢本機(jī)數(shù)據(jù)庫表,用openrowset打開另1臺服務(wù)器得數(shù)據(jù)表,用on a.id=b.id語句與這2個數(shù)據(jù)表建立關(guān)系,再用full join命令把2張表的數(shù)據(jù)聯(lián)合起來。關(guān)鍵代碼如下所示:
SqlConnection con = new SqlConnection("Data Source= J-23\J23SQL2005;Initial Catalog=Testlkss;Integrated Security=True");//建立與“J-23\J23SQL2005”與服務(wù)器數(shù)據(jù)庫連接
SqlCommand cmd=new SqlCommand("client_insert",con);
cmd.CommandType=CommandType.StoredProcedure; //執(zhí)行存儲過程
本文,筆者對高校信息資源的數(shù)據(jù)整合進(jìn)行了分析和研究,主要探討了數(shù)據(jù)整合的相關(guān)策略和模式,并結(jié)合具體實例給出了關(guān)鍵技術(shù)的實現(xiàn)代碼,為高校進(jìn)行數(shù)據(jù)整合的設(shè)計提供了思路。