【摘 要】下文主要結(jié)合筆者多年的工作實踐經(jīng)驗,提出了基于局域網(wǎng)的數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)應(yīng)注意的幾個關(guān)鍵問題,即選擇合適的網(wǎng)絡(luò)結(jié)構(gòu)、設(shè)計分層的功能結(jié)構(gòu)以及運(yùn)行模式的選擇。結(jié)合科研管理系統(tǒng)的開發(fā)實例,詳細(xì)介紹了幾項具有特色的編程技術(shù)。
【關(guān)鍵詞】特點(diǎn) 網(wǎng)絡(luò)結(jié)構(gòu) 設(shè)計分層 運(yùn)行模式
一、數(shù)據(jù)庫應(yīng)用系統(tǒng)的特點(diǎn)
(一)適用性好。數(shù)據(jù)庫應(yīng)用系統(tǒng)應(yīng)給系統(tǒng)管理員提供較為靈活的代碼設(shè)置功能,通過改變輔助表值的設(shè)置和系統(tǒng)設(shè)置來滿足不同單位對于數(shù)據(jù)庫應(yīng)用系統(tǒng)的需要。
(二)安全性好。通過分配給不同角色的數(shù)據(jù)庫應(yīng)用系統(tǒng)用戶以不同的權(quán)限,來限制不同用戶的操作,同時采用日志對每個用戶的訪問進(jìn)行記錄,方便系統(tǒng)管理員進(jìn)行分析、查閱。
(三)功能實用。充分考慮用戶的實際需求,通常數(shù)據(jù)庫應(yīng)用系統(tǒng)應(yīng)包括各種實用功能,如查詢、用戶管理、打印、報表等。
(四)容錯性好。在數(shù)據(jù)庫應(yīng)用系統(tǒng)中輸入錯誤的數(shù)據(jù),那么系統(tǒng)在不執(zhí)行操作時,應(yīng)該給用戶適當(dāng)?shù)闹形奶崾?,而不能出現(xiàn)死機(jī)或者異常終止程序等。
二、網(wǎng)絡(luò)結(jié)構(gòu)的選擇
當(dāng)前局域網(wǎng)的結(jié)構(gòu)模式主要有以太網(wǎng)、快速以太網(wǎng)、ATM等。ATM網(wǎng)設(shè)備投入成本較大;而共享式10M以太網(wǎng)隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,從長遠(yuǎn)來看是不夠的;千兆以太網(wǎng)的傳輸速率雖然很快,可達(dá)到1000M/s,但千兆以太網(wǎng)的連接電纜、集線器、交換機(jī)、網(wǎng)卡的價格大幅度上升;而交換式快速以太網(wǎng)的性能/價格比明顯要由于千兆以太網(wǎng),所以一般選用交換式快速以太網(wǎng)作為局域網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)。
三、運(yùn)行模式的選擇
當(dāng)前數(shù)據(jù)庫應(yīng)用系統(tǒng)主要有B/S(瀏覽器/服務(wù)器)和C/S(客戶機(jī)/服務(wù)器)兩種運(yùn)行模式。B/S和C/S的比較如表1所示。
在局域網(wǎng)中,C/S與B/S模式各有利弊,筆者認(rèn)為可采用“C/S+B/S混合模式”的模式結(jié)構(gòu)。
四、案例分析
筆者查閱了大量的資料,以校園網(wǎng)為例,其作為科研管理系統(tǒng)的網(wǎng)絡(luò)平臺。在科技處構(gòu)建機(jī)關(guān)局域網(wǎng),服務(wù)器放置在科技處,各院(系)構(gòu)建部門局域網(wǎng)并通過校園網(wǎng)連接數(shù)據(jù)庫。
(一)原有數(shù)據(jù)的升遷。對于原有的數(shù)據(jù)資源(例如.dbf 文件或.txt 文件),其中有大量的記錄,在使用新的數(shù)據(jù)庫系統(tǒng)時(例如我們使用的SQL Server 2000),不能對這些記錄棄之不用,而應(yīng)充分利用這些數(shù)據(jù)資源,將其轉(zhuǎn)換成新系統(tǒng)中的表。在我們的系統(tǒng)中,在Visual InterDev 6.0環(huán)境下實現(xiàn)了將客戶端的.dbf文件升遷到數(shù)據(jù)庫服務(wù)器SQL Server 2000 的數(shù)據(jù)庫中。首先建立一個服務(wù)器端的.dbf文件,然后把dbfdsn中的數(shù)據(jù)讀入sqldsn中。
(二)全屏幕修改。全屏幕修改就是把要修改表的多個記錄同時顯示在屏幕上,用戶可以邊瀏覽邊修改,而且可以通過上下翻頁實現(xiàn)對表中所有的全屏幕修改,這對于有修改表權(quán)限的用戶或管理員來說是非常方便的一項功能。但是,在 Visual InterDev6.0 中卻不能直接實現(xiàn),我們編寫了一段程序較好的解決了這個問題,根據(jù)用戶給定的表明及條件,查詢出相應(yīng)的記錄集并以全屏幕方式顯示出來,供用戶修改,如果用戶確認(rèn)修改有效,便把修改后的數(shù)據(jù)存回表中。這段程序不僅可以實現(xiàn)對表的全屏幕修改,而且可以選擇不同的表進(jìn)行修改,根據(jù)不同的表結(jié)構(gòu),顯示不同的表單。
(三)組件技術(shù)的使用。目前組件對象分為兩種:一種是由類打包而形成的.DLL文件,經(jīng)注冊器注冊后,便可以在ASP腳本中引用,在服務(wù)器端運(yùn)行,運(yùn)行結(jié)果以 HTML 形式發(fā)送到瀏覽器端。另一種是.OCX文件,運(yùn)行于客戶端。我們使用的是第一種組件技術(shù)。
既然 ASP 本身都是以組件的形式發(fā)布的,我們也可以制作自己的服務(wù)器組件,并把它編譯為.DLL文件。制作 DLL文件不僅可以增強(qiáng)ASP功能、提高ASP執(zhí)行速度,而且還可以保護(hù)ASP源代碼不被泄露。對于訪問數(shù)據(jù)庫的代碼,由于要提供用戶名和口令,很容易泄漏,用.DLL文件封裝代碼后,系統(tǒng)的安全得到了保障。使用VB6.0,可以建立一個動態(tài)鏈接庫(.DLL 文件),當(dāng)被請求時,可以像IIS自己那樣處理請求、提供服務(wù),這就是服務(wù)器組件,通常由一些第三方開發(fā)商開發(fā),也可以根據(jù)需要自己開發(fā)。
(四)使用自定義事件。由于對9方面數(shù)據(jù)的處理工作基本相同,為了簡化程序設(shè)計、增加系統(tǒng)的靈活性,使不同的數(shù)據(jù)處理界面共享一個主菜單,在菜單中觸發(fā)當(dāng)前活動窗口的自定義事件來實現(xiàn)相應(yīng)的功能(例如數(shù)據(jù)的插入、修改、刪除等)。這樣既可以用一個統(tǒng)一的菜單來完成對所有數(shù)據(jù)的管理功能,又能考慮到不同數(shù)據(jù)在處理工作上的差異,在窗口的自定義事件中編寫代碼實現(xiàn)具體的數(shù)據(jù)處理功能。
(五)靈活的統(tǒng)計報表。對于一個管理信息系統(tǒng),制作各種各樣的統(tǒng)計報表是一項重要功能。這些報表的數(shù)據(jù)不能直接從數(shù)據(jù)庫導(dǎo)出,需要對數(shù)據(jù)庫的各種數(shù)據(jù)進(jìn)行統(tǒng)計分析來得到所需數(shù)據(jù)。顯然普通的數(shù)據(jù)窗口技術(shù)無法實現(xiàn)這種功能,我們采用了外部數(shù)據(jù)源(External)類型的數(shù)據(jù)窗口,手動定義數(shù)據(jù)窗口的統(tǒng)計數(shù)據(jù)字段,在腳本中通過 SQL 語句和游標(biāo)等方式完成數(shù)據(jù)的統(tǒng)計工作,并手動寫到數(shù)據(jù)窗口中。借助外部數(shù)據(jù)源類型的數(shù)據(jù)窗口,很好地完成了系統(tǒng)中各種類型的復(fù)雜統(tǒng)計報表中統(tǒng)計數(shù)據(jù)的完成。
一個完整的統(tǒng)計報表包括統(tǒng)計數(shù)據(jù)和表頭,在 PB 中用上述方式可以方便的完成統(tǒng)計數(shù)據(jù)的生成,復(fù)雜表頭的生成用PB 卻很不方便。我們采取了 PB 與 Excel 相結(jié)合的方式,在Excel 環(huán)境下完成復(fù)雜表頭的設(shè)計,使用 OLE(對象的鏈接與嵌入)技術(shù)把在 PB 中得到的統(tǒng)計數(shù)據(jù)導(dǎo)出到 Excel 中,組成一個滿足實際需要的綜合統(tǒng)計報表。
五、結(jié)束語
綜上所述,結(jié)合實例詳細(xì)介紹了幾項有特色的編程技術(shù),這些對開發(fā)較大規(guī)模的數(shù)據(jù)庫應(yīng)用系統(tǒng)具有一定的參考價值。