1 引言
近年來,國內許多高校逐步建立了網絡基礎設施,構建了一些應用系統。但由於缺乏對數字校園總體結構的認識,出現了系統構建各自為政,缺乏統一規劃,已構建的系統互割裂,信息與資源無法共享,而有些系統則集成度過高、維護與升級困難,網絡基礎服務平台與應用系統脫節等問題。
在數字化校園的建設中,URP(University Resource Plan)概念的提出很好地解決了信息共享等問題。URP通過建立統一的數據庫,制定統一的信息標准,使各種信息系統以松散耦合的方式集成起來,保障了數據的一致性、可靠性、可用性和安全性。原有系統中的歷史數據,可以通過數據遷移的方式導入到新系統中。但在數據遷移的過程中,新的問題也隨之而來。
2 數據遷移所面臨的問題
目前,信息系統的開發大都是利用SQL Server、Oracle、Sybase等大型數據庫,“數字化校園”建設中的數據庫系統也大多采用這幾種數據庫。而Dbase、FoxBASE、FoxPro是我國近年來應用比較廣泛的數據庫開發軟件,高校中仍有很多管理系統采用這種DBF格式的數據庫。隨著新系統的使用,原有系統中多年來積累的大量的寶貴的數據資料如何導入到新系統中,成為一個要解決的問題,也就是我們將面臨如何將原始的數據遷移到新系統數據庫中。
3 解決思路
統一數據庫的主要目的是實現數據共享,保障數據的一致性。但不論是新的信息系統,還是原有的信息系統,每個系統的業務本身並沒有發生本質的變化。因此在數據庫的結構到數據方面,都可以保持基本一致,只是采用的數據庫平台不同。另外,SQL Server自身提供的DTS(Data Transformation Services)工具,也包含了將Dbase、FoxBASE、FoxPro等舊格式數據庫文件導入到SQL數據庫的功能。
因此,根據實際的業務需求,利用ASP.NET所提供的數據庫操作功能,配合SQL語句來編程,完全可以替代DTS的所有功能,從而實現大量的歷史數據遷移至新的數據庫系統中。
4 設計與實現
以全國高校畢業生就業管理系統為例,具體說明如何實現數據遷移功能。
原系統為教育部統一使用的單機版軟件,采用FoxPro編寫,並使用DBF格式文件存儲數據。新系統是采用B/S結構,使用ASP.NET編寫及SQL Server數據庫存儲數據。
在編寫程序進行數據遷移的過程中需要解決以下幾個問題:
(1) 原系統數據文件為DBF格式,在SQL Server中,DBF文件所在的文件夾被認為是一個數據庫,DBF文件被認為是一個數據表。
(2) 數據遷移過程中,DBF文件可能存放在客戶端,SQL Server數據庫在服務器端,這需要將DBF文件先上傳至服務器端再進行操作。
(3) 根據用戶業務需求,數據遷移功能應包含初次遷移、追加數據、覆蓋數據等功能。
4.1 DBF文件上傳
傳統的DBF格式數據文件,一般文件體積較小,因此采用ASP.NET提供的上傳組件即可。對於上傳文件類型,限定為.DBF格式。以上傳學生基本信息表student.dbf為例,上傳功能代碼如下:
//判斷文件大小是否為0
if (File1.PostedFile.ContentLength>0)
{
string fileExt=Path.GetExtension(File1.
PostedFile.FileName).ToLower();
//判斷是否為DBF格式文件
if(fileExt!=”.dbf”)
{
//出錯提示
Label1.Text=”只能上傳dbf格式文件!!“;
}
//合法的非空的dbf文件
else
{
//指定上傳目錄
string filepath=Server.MapPath(”Data/”);
//上傳至指定目錄中
File1.PostedFile.SaveAs(filepath+
“student.dbf”);
//進行相關數據遷移操作
……
}
}
else
{
//出錯提示
Label1.Text=”上傳文件字節數為0!!“;
}