摘 要:討論了Web環(huán)境下上機作業(yè)管理系統(tǒng)的體系結構、系統(tǒng)功能、數據庫設計以及系統(tǒng)的實現技術。
關鍵詞:上機作業(yè)管理系統(tǒng); 數據庫; 數據完整性
上機類作業(yè)是計算機教育中培養(yǎng)學生實踐能力的重要環(huán)節(jié),其顯著特征是將實踐知識與理論知識有機地聯系在一起,并借助于一定的實驗手段來培養(yǎng)學生的技術應用能力和工程觀念。傳統(tǒng)的上機課程一般需要教師在課堂上完成安排實驗任務、評閱文件、收集和批改實驗報告等工作,無法在課余時間控制學生上機作業(yè)的完成質量,這種情況已經越來越不能適應現代教學的需求。在國內,從計算機類上機課程作業(yè)管理系統(tǒng)的管理情況來看,在現代化教育技術模式下,使用計算機提交作業(yè)已相當普及。但能夠合理使用硬件資源、有條理地管理好學生作業(yè)信息的計算機管理系統(tǒng)卻少之又少。
本文闡述了運用ASP.NET技術構建一個計算機類作業(yè)管理系統(tǒng)的過程,描述了B/S模式的概念及特點、ASP.NET的優(yōu)越性及對作業(yè)管理系統(tǒng)的分析,該系統(tǒng)主要完成了作業(yè)的上傳、教師對作業(yè)的批改,系統(tǒng)的穩(wěn)定性高,操作簡單。
1 系統(tǒng)的體系結構
B/S結構,即Browser/Server(瀏覽器/服務器)結構,是隨著Internet技術的興起、對C/S結構的一種改進的結構。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。B/S結構主要是利用了不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種Script語言(VBScript、JavaScript)和ActiveX技術,用通用瀏覽器實現了原來需要復雜專用軟件才能實現的強大功能,節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構造技術[4]。
B/S結構采用星形拓撲結構建立企業(yè)內部通信網絡或利用Internet虛擬專網(VPN)。前者的特點是安全、快捷、準確,后者則具有節(jié)省投資、跨地域廣的優(yōu)點,需視企業(yè)規(guī)模和地理分布確定采用哪種方式。企業(yè)內部通過防火墻接入Internet,在整個網絡采用TCP/IP協議。網絡結構如圖1所示。
2 系統(tǒng)的功能需求
2.1 用戶的登錄功能設計
登錄功能要求3種用戶能在同一界面登錄,學生、老師、管理員以用戶名與密碼進行登錄。如果用戶名錯誤或不存在、密碼錯誤,應當給予提示。
2.2 學生子系統(tǒng)功能設計
本子系統(tǒng)面向的用戶為學生用戶,主要有3個功能:
(1)上傳作業(yè)
要求先找到上傳的對象(老師),然后瀏覽本地計算機目錄,找到要提交的文件,并提交到對應的老師目錄下,系統(tǒng)會自動記錄該作業(yè)提交的信息,完成提交過程,返回成功信息。
(2)管理作業(yè)
要求學生用戶能查詢所有作業(yè)的成績,并按科目類別排列顯示;可以對作業(yè)進行查看、刪除。
(3)修改個人信息
要求輸入密碼時,密碼以隱藏模式顯示;輸入新密碼時,要對密碼進行二次檢驗和長度檢驗;修改成功后提示成功??尚薷某~戶以外的所有信息。
2.3 老師子系統(tǒng)功能設計
本子系統(tǒng)面向的用戶為老師,主要有3個功能:
(1)修改個人資料
要求輸入密碼時,密碼以隱藏模式顯示;輸入新密碼時,要對密碼進行二次檢驗和長度檢驗;修改成功后提示成功。可修改除賬戶以外的所有信息。
(2)發(fā)布公告
要求可以發(fā)布新的公告,并可以對公告進行管理。
(3)作業(yè)管理
要求可以發(fā)布作業(yè)、設定作業(yè)提交期限,并可以管理其發(fā)布的公告、按作業(yè)的題目查詢要批改的作業(yè)、對作業(yè)進行批改與管理。
2.4 管理員子系統(tǒng)功能設計
本系統(tǒng)面向管理員用戶,主要有3個功能需求:
(1)修改密碼
修改管理員密碼,要求賬戶不能修改。
(2)角色管理
增加老師,正確錄入老師信息(姓名、密碼等),錄入值不能為空。管理教師,刪除數據庫中所有該老師關聯信息。認證管理學生,對學生信息進行認證,否則學生即使注冊也無法登錄;對學生信息進行刪除。
(3)課程管理
根據老師的姓名,對課程進行增加和刪除管理。
3 系統(tǒng)的數據庫設計
概念模型是對現實世界的抽象和概括,它真實、充分地反映了現實世界中的事物和事物之間的聯系,它獨立于計算機的數據模型和特定的數據庫管理系統(tǒng)。描述概念模型的有力工具是E-R 圖,本系統(tǒng)的E-R圖如圖2所示。
邏輯結構設計的任務就是把概念結構設計階段設計好的E-R圖轉換為與所選用的DBMS產品所支持的數據模型相符合的邏輯結構。E-R圖向關系模型的轉化要解決的問題是:如何將實體間的聯系轉換為關系模式以及確定這些關系模式的屬性和碼。系統(tǒng)的全局E-R圖轉換成的關系模型為:
教師(教師名、角色名稱、密碼、系別、性別、職稱、任教班級數、通訊地址)
班級(班級名、系別、人數)
任課(課程名稱、教師名、班級名)
作業(yè)(作業(yè)名、作業(yè)序號、作業(yè)內容、作業(yè)人數)
作業(yè)分配(作業(yè)名、班級名、作業(yè)類型、機構數量、作業(yè)期限)
學生(學生名、班級名、學號、角色名稱、密碼、通訊地址)
作業(yè)權限(學生名、作業(yè)名、學號、作業(yè)類型)
角色(角色名稱、人員名稱、系別、通訊地址)
圖文檔(文檔名稱、作業(yè)名、學生名、班級名、作業(yè)文件類型、完成狀態(tài)、評價狀態(tài)、評價內容)
機構(機構名、作業(yè)名、班級名、學生名)
教師注冊表(系別、教師名集合、職稱)
學生注冊表(班級名、學生名集合)
本系統(tǒng)的DBMS采用的是MS SQL Server 2000。
4 系統(tǒng)的實現技術
4.1 ASP.NET技術
ASP.NET完全基于模塊與組件,具有更好的可擴展性與可定制性,同時也提供給Web開發(fā)人員更好的靈活性,有效縮短了Web應用程序的開發(fā)周期。ASP.NET與Windows 2000 Server/Advanced Server的完美組合,為中小型乃至企業(yè)級的Web商業(yè)模型提供了一個更為穩(wěn)定、高效、安全的運行環(huán)境。
ASP.NET是ASP的最新版本,建立于公共語言運行環(huán)境基礎上,具有強大的語言支持(例如 C# 、VB.NET)、更高的執(zhí)行效率和開發(fā)效率等優(yōu)點。
在ASP.NET中,使用ADO.NET連接數據庫,ADO.NET使用XML實現程序和網頁之間的數據交換。用XML格式的數據集傳送信息,使得開發(fā)者能夠輕易地把處理數據的部分和用戶界面的部分分別放在不同的服務器上。因此,它能夠極大地提高性能以及增強支持多用戶系統(tǒng)的可維護性。
4.2 數據完整性的維護技術
數據完整性是指數據的正確性和一致性,它有2方面的含義:(1)數據取值的正確性,即字段列值必須符合數據的取值范圍、類型和精度的規(guī)定;(2)相關數據的一致性,即相關表的聯系字段的列值匹配。
在SQL Server數據庫應用系統(tǒng)中,實施數據完整性維護的方法主要有以下3種,其策略為:
(1)對于通過窗口操作輸入的數據,一般采用前端應用程序來確保數據的完整性。這樣,一方面可把非法數據在提交到數據庫之前就拒之門外,另一方面可讓用戶及時得到操作反饋信息,使系統(tǒng)更加友好。
(2)數據一致性的維護,適合于由后端數據庫的觸發(fā)器或表定義的約束來實現。這樣可降低前端應用程序的開發(fā)量,提高應用系統(tǒng)的運行效率和可維護性。
(3)對于數據完整性和安全性要求較高的系統(tǒng),則需要采用多層保護屏障來確保數據的完整性和安全性。如在前端應用系統(tǒng)程序檢查輸入數據的有效性,同時在后端數據庫建立表約束、規(guī)則、缺省和觸發(fā)器等措施進行數據完整性約束,提高系統(tǒng)數據的可靠性和安全性。
本系統(tǒng)主要采用了后端數據庫的保護措施。后端數據庫服務器保護又可分為定義create table完整性約束保護和定義規(guī)則、缺省、索引和觸發(fā)器保護。其定義為:
(1)定義create table完整性約束
該方法是在創(chuàng)建數據庫表的命令語句中,加入字段的數據完整性約束語句來實施數據的完整性保護。例如在建表語句中可加入非空(not null)約束、缺省(default)約束、唯一碼(unique)約束、主鍵碼(primary key)約束等。它的主要特點是定義簡單、安全可靠、維護方便。在創(chuàng)建本系統(tǒng)的物理模型時,就采用了這些完整性約束。
(2)定義規(guī)則、缺省、索引和觸發(fā)器
在數據庫表的創(chuàng)建命令語句中定義約束的方法,雖然具有簡單、方便、安全等特點,但它只對特定的表有效,不能應用到其他表,并且只能使用alter table命令進行修改或刪除,缺乏一定的靈活性。在數據庫中創(chuàng)建與表相對獨立的規(guī)則、索引和觸發(fā)器對象,也能實現數據完整性保護,而且能實施更復雜、更完善的數據完整性約束。它的主要特點是功能強、效率高、維護方便。
類似于表定義中的參照完整性約束,觸發(fā)器可用來保證相關數據的一致性。它還能完成一些表定義的參照完整性約束不能完成的任務:(1)對數據庫相關表中的更新進行級聯;(2)通過引用其他列或數據庫對象來實現復雜的限制;(3)執(zhí)行“若……則……”分析。例如,若當刪除教師表的主鍵碼行時,也要求刪除任課表(teach)的外鍵碼相關行。
5 系統(tǒng)運行示例
本節(jié)給出了系統(tǒng)運行的界面,管理員和教師借助于頁面就可以對作業(yè)信息進行管理。圖3~圖6分別為學生上傳作業(yè)界面、教師發(fā)布作業(yè)界面、作業(yè)批改界面和管理員管理課程信息界面。
參考文獻
[1] 王輝,黃紅超.ASP.NET實用教程[M].北京:清華大學出版社, 2005.
[2] BASINRA R, CONWAY R. ASP.NET安全性高級編程[M]. 王 曉娜,黃開枝,譯.北京:清華大學出版社,2003.
[3] OTEY M, CONTE P. SQL Server 2000開發(fā)指南[M]. 陳思義, 吳強,劉紅波,譯.北京:清華大學出版社,2002.
[4] 甘仞初.信息系統(tǒng)分析與設計[M].北京:高等教育出版社, 2003.
[5] 胡海璐.網絡系統(tǒng)開發(fā)實例精粹(ASP.NET版)[M].北京:電子工業(yè)出版社,2006.