陳輝,趙曉華
(陜西交通職業(yè)技術(shù)學(xué)院 陜西 西安 710018)
學(xué)生上機實訓(xùn)考核系統(tǒng)中數(shù)據(jù)庫設(shè)計與實現(xiàn)
陳輝,趙曉華
(陜西交通職業(yè)技術(shù)學(xué)院 陜西 西安 710018)
為了提高學(xué)院的上機實訓(xùn)工作的信息化,減輕實訓(xùn)教師的工作強度降低工作量,課題組開發(fā)了學(xué)生上機實訓(xùn)考核系統(tǒng),系統(tǒng)數(shù)據(jù)保存使用Sqlserver2012數(shù)據(jù)庫系統(tǒng)保存,在數(shù)據(jù)庫設(shè)計中,課題組采用了易用性和可擴充性并重的原則進行設(shè)計,設(shè)計完成的數(shù)據(jù)庫可以充分滿足后續(xù)系統(tǒng)設(shè)計的需求,達到了預(yù)期的目標(biāo)。
SQL Server;數(shù)據(jù)庫設(shè)計;實訓(xùn)作業(yè);上機考核;數(shù)據(jù)優(yōu)化
近年來,學(xué)院上機作業(yè)通常是教師通過FTP或文件共享發(fā)布和提交的,教師收取后保存在U盤中后進行瀏覽手動評閱,沒有一個較好的上機現(xiàn)場考核手段,學(xué)生在提交作業(yè)后,不便重新修改提交,對于歷史提交的作業(yè)也沒有一個較好的保存方法,為了改革學(xué)院的上機實訓(xùn)考核和實訓(xùn)作業(yè)提交評閱的落后方式,我系開發(fā)了學(xué)生上機實訓(xùn)考核系統(tǒng),在系統(tǒng)開發(fā)的過程中,重要的環(huán)節(jié)就是數(shù)據(jù)庫設(shè)計,通過廣泛的調(diào)研和用戶需求分析,課題組進行了數(shù)據(jù)庫設(shè)計,較好的滿足了系統(tǒng)設(shè)計的需要,系統(tǒng)數(shù)據(jù)庫設(shè)計使用了Sqlserver2012數(shù)據(jù)庫系統(tǒng)進行開發(fā),SQL Server2012是微軟公司發(fā)布的一款非常優(yōu)秀的關(guān)系數(shù)據(jù)庫管理系統(tǒng),延續(xù)了之前版本的強大能力,不僅提供了企業(yè)架構(gòu)最高級別的支持,而且還提供了最高級別的可用性,可以滿足不同用戶對數(shù)據(jù)和信息存儲的需求,數(shù)據(jù)容量管理達到了數(shù)百TB的數(shù)量級,并且具備較完善的數(shù)據(jù)分析功能。SQL Server2012的版本包括企業(yè)版(Enterprise)、標(biāo)準(zhǔn)版(Standard)和精簡版(Express),該數(shù)據(jù)庫系統(tǒng)在保證了易用性的同時還提供了較高的安全性。
數(shù)據(jù)庫設(shè)計的目的是能夠較好地存儲系統(tǒng)的相關(guān)數(shù)據(jù),針對本系統(tǒng)的具體情況,在數(shù)據(jù)庫中需要保存教師發(fā)布的實訓(xùn)任務(wù),實訓(xùn)任務(wù)需要考慮教師發(fā)布任務(wù)的素材和附件的保存,學(xué)生上機完成的實訓(xùn)作業(yè)需要考慮學(xué)生上傳的文件保存,教師發(fā)布的任務(wù)應(yīng)該便于查詢和修改,學(xué)生提交的作業(yè)附件也需要保存在數(shù)據(jù)庫,并便于檢索,此外數(shù)據(jù)庫還需要保存教師、學(xué)生、班級、課程、專業(yè)、系部等信息,應(yīng)該分別建立數(shù)據(jù)表保存。此外,還需要設(shè)計留言板數(shù)據(jù)表,保存學(xué)生留言和教師對留言的回復(fù),因此數(shù)據(jù)庫設(shè)計需要實現(xiàn)以下的基本要求。
1)教師發(fā)布的實訓(xùn)任務(wù)和學(xué)生根據(jù)實訓(xùn)任務(wù)提交的實訓(xùn)作業(yè)在數(shù)據(jù)庫中應(yīng)該分別建立表存儲,實訓(xùn)任務(wù)的素材和實訓(xùn)作業(yè)的提交文件信息保存在數(shù)據(jù)庫中,但文件本身存儲在服務(wù)器的相應(yīng)目錄下,數(shù)據(jù)庫只保存文件名和路徑信息。
2)系部、專業(yè)、課程信息應(yīng)該分別保存在不同的數(shù)據(jù)表中,通過外鍵關(guān)聯(lián),系部與專業(yè)是一對多的關(guān)系,專業(yè)和課程是多對多的關(guān)系,需要在數(shù)據(jù)表的設(shè)計中實現(xiàn)。
3)教師發(fā)布的實訓(xùn)任務(wù)是針對一門課程的,但實訓(xùn)任務(wù)可能是對授課的多個班級同時還發(fā)布的,因此教師和實訓(xùn)任務(wù)是一對多的關(guān)系,實訓(xùn)任務(wù)和授課班級也是一對多的關(guān)系,在數(shù)據(jù)庫表的設(shè)計中需要考慮。
4)在設(shè)計留言數(shù)據(jù)表的時候,需要考慮學(xué)生發(fā)布的留言后,教師未閱讀和閱讀回復(fù)的不同狀態(tài),教師未閱讀的留言在系統(tǒng)中需要頂置顯示,教師回復(fù)后學(xué)生未閱讀的留言在學(xué)生登陸后也需要頂置顯示,因此需要在數(shù)據(jù)表中設(shè)計多個標(biāo)記。
5)在設(shè)計數(shù)據(jù)庫中的各個數(shù)據(jù)表字段的時候,需要具體分析各個字段的類型、長度,例如學(xué)號字段需要設(shè)置為學(xué)院標(biāo)準(zhǔn)的12位,并且需要對各個表之間建立合理的主外鍵關(guān)系進行約束。
6)設(shè)計實訓(xùn)考試和考試管理中,需要對考試試題、學(xué)生的考試試卷、班級考試成績進行有效保存。
數(shù)據(jù)庫設(shè)計采用SQL Server2012關(guān)系型數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)。SQL Server2012是微軟開發(fā)的大中型數(shù)據(jù)庫,對于學(xué)生上機實訓(xùn)考核管理系統(tǒng)的數(shù)據(jù)庫,采用SQL Server2012數(shù)據(jù)庫系統(tǒng)可以完全滿足需求。通過對用戶的需求進行分析,在數(shù)據(jù)庫中需要保存的實體信息包括下圖所示的8類,如圖1所示。
圖1 數(shù)據(jù)庫結(jié)構(gòu)
在數(shù)據(jù)庫表的設(shè)計過程中,課題組采取了保證未來可擴充性和系統(tǒng)易用的設(shè)計原則,主要體現(xiàn)如下。
1)在數(shù)據(jù)表的設(shè)計中,對未來系統(tǒng)擴充保留余地,例如在實訓(xùn)作業(yè)表的設(shè)計中,教師發(fā)布的作業(yè)要求僅需要保持文本形式的要求,還需要可以保持作業(yè)要求文件和作業(yè)素材,因此在設(shè)計中需要文本字段和其他字段,同時還需要考慮到教師可能會刪除作業(yè),如果在數(shù)據(jù)庫直接刪除作業(yè)記錄,就可能需要刪除相關(guān)聯(lián)的學(xué)生提交作業(yè),這樣的刪除工作會非常麻煩,因此考慮在實習(xí)作業(yè)表總添加validate字段,通過該字段標(biāo)記作業(yè)的有效性,實現(xiàn)系統(tǒng)易用的目標(biāo)。
2)提高數(shù)據(jù)庫的工作效率,在學(xué)生實訓(xùn)作業(yè)表中,學(xué)生每次提交的作業(yè)會創(chuàng)建一條記錄,按照以往的設(shè)計經(jīng)驗,學(xué)生提交的作業(yè)文件的保存方式都是采用將文件轉(zhuǎn)為二進制字節(jié)流保存到二進制類型的字段中,隨著日常的應(yīng)用,數(shù)據(jù)庫的容量會快速增加,不利于數(shù)據(jù)訪問,因此,在本次學(xué)生實訓(xùn)作業(yè)表設(shè)計中,通過將學(xué)生上傳的作業(yè)文件保存到服務(wù)器指定文件夾,將上傳文件的路徑和文件名保存到數(shù)據(jù)庫的方式。
以用戶需求分析得到的數(shù)據(jù)庫保存實體信息,分析各個實體信息之間的關(guān)系,并進行適當(dāng)?shù)年P(guān)系優(yōu)化,在滿足數(shù)據(jù)庫設(shè)計范式的基礎(chǔ)上設(shè)計如下四類數(shù)據(jù)表。
3.1 系部-專業(yè)-課程表設(shè)計
根據(jù)學(xué)院的實際系部專業(yè)設(shè)置,系部包含多個專業(yè),同一專業(yè)包含多門課程,同時還會開設(shè)多個班級??紤]到有部分公共課是多個專業(yè)開設(shè)的,因此專業(yè)和課程的關(guān)系不是一對多的關(guān)系,而是多對多的關(guān)系,在數(shù)據(jù)庫表設(shè)計時,采用多表關(guān)聯(lián)的方式實現(xiàn)。具體實現(xiàn)采用了考慮到一個試題庫可以容納多個系部、不同專業(yè)的多門課程,并且每門課程又包含多個知識點,因此,設(shè)計了相關(guān)的四張數(shù)據(jù)表,分別是系部(department),專業(yè)(specialty),課程(course),專業(yè)課程關(guān)系(SpecialtyCourse),如圖2所示。
圖2 系部-專業(yè)-課程表設(shè)計
在課程信息表中,不包含專業(yè)信息,因此在課程表中不設(shè)置專業(yè)歸屬,專業(yè)歸屬信息保存在專業(yè)課程關(guān)系表(SpecialtyCourse)中,專業(yè)表(specialty)和課程表(course)通過專業(yè)信息表相連接,這樣做可以使一個專業(yè)對應(yīng)于多門課程,還可以使一門課程(公共課)對應(yīng)于多個專業(yè),較好地實現(xiàn)了課程和專業(yè)的關(guān)系管理。
3.2 實訓(xùn)考核相關(guān)表設(shè)計
在設(shè)計實訓(xùn)考核(考試)中,設(shè)計思想是以自動組卷系統(tǒng)數(shù)據(jù)庫中的試卷進行考試,通過考試發(fā)布操作,在本項目數(shù)據(jù)庫中創(chuàng)建考試數(shù)據(jù)表,保存考試內(nèi)容和考試班級信息,學(xué)生完成考試后,考試記錄保存在學(xué)生考試數(shù)據(jù)表中,由于一份試卷可以給多個班級發(fā)布考試,因此在考試表和考試班級表中,是一對多的映射關(guān)系,數(shù)據(jù)表設(shè)計如圖 3所示。
圖3 實訓(xùn)考核數(shù)據(jù)表
3.3 教師-學(xué)生-實訓(xùn)任務(wù)-實訓(xùn)作業(yè)表設(shè)計
這些表包括學(xué)生、班級、教師信息表和實訓(xùn)任務(wù)相關(guān)數(shù)據(jù)表兩類,在系統(tǒng)設(shè)計中用戶分為管理員、教師、學(xué)生三類,實際上管理員也是教師,因此在教師表中添加是否是管理員字段(IsAdmin),標(biāo)記管理員資格。
根據(jù)需求,教師首先需要添加授課任務(wù),然后才能向已有授課任務(wù)的課程發(fā)布實訓(xùn)任務(wù),授課任務(wù)包括講授課程和班級,因此在數(shù)據(jù)表設(shè)計中,添加了教師信息-授課課程-學(xué)生班級數(shù)據(jù)表。具體如圖4所示。
圖4 教師-學(xué)生-實訓(xùn)任務(wù)-實訓(xùn)作業(yè)表
教師發(fā)布的實訓(xùn)作業(yè)是對一門課程的一個或多個班級的,因此在設(shè)計數(shù)據(jù)表的時候需要考慮實訓(xùn)作業(yè)和實訓(xùn)班級的一對多關(guān)系,通過建立實訓(xùn)任務(wù)(teacherWork)-實訓(xùn)任務(wù)班級管理(classWrok)-班級(studentClass)的三級關(guān)系實現(xiàn)一對多的映射。
在需求分析中,還需要考慮表記錄的刪除,對于實際應(yīng)用來說,由于各個表有主外鍵的管理,記錄刪除是一件非常復(fù)雜的事情,例如,如果刪除一條教師信息,就需要先刪除該教師的所有授課課程信息、實訓(xùn)任務(wù),以及所有與發(fā)布實訓(xùn)任務(wù)相關(guān)的學(xué)生作業(yè),為了簡化設(shè)計,在需要刪除數(shù)據(jù)的數(shù)據(jù)表中添加了validate字段,表示記錄有效性,用戶的刪除操作僅僅修改validate字段,并不用物理刪除。
3.4 留言表設(shè)計
留言表保存的是留言板的內(nèi)容,主要包括學(xué)生就某課程向教師提出的問題以及教師的解答等,教師登陸后可以在留言板中看到所有學(xué)生給自己的留言,并且未閱讀回復(fù)的留言頂置,學(xué)生登陸后可以看到自己發(fā)布的留言和教師的回復(fù),教師新的回復(fù)頂置,因此在留言表中設(shè)置了teacherReplay、studentRead字段表示教師回復(fù)標(biāo)記和學(xué)生閱讀教師回復(fù)標(biāo)記,這兩個字段都是bit類型,設(shè)置默認(rèn)值為false。留言板結(jié)構(gòu)和關(guān)系如圖5所示。
圖5 留言表設(shè)計
在學(xué)生上機考核系統(tǒng)數(shù)據(jù)庫設(shè)計中,課題組不僅汲取了以往的設(shè)計經(jīng)驗,而且還根據(jù)實際情況對數(shù)據(jù)庫進行優(yōu)化,目前以該數(shù)據(jù)庫為基礎(chǔ)設(shè)計的學(xué)生上機考核系統(tǒng)已經(jīng)開始在學(xué)院實訓(xùn)中,已經(jīng)于2015年9月開始在學(xué)院各個機房正式投入使用,根據(jù)兩個多月的應(yīng)用情況,系統(tǒng)數(shù)據(jù)庫完全滿足了設(shè)計要求,可以較好地保存各類數(shù)據(jù),系統(tǒng)的應(yīng)用也大大地簡化了教師的工作強度,提高了工作效率。
[1]龔春亞,張國華.基于C#的題庫批量錄入算法研究[J].電腦知識與技術(shù),2010(27):45-47.
[2]黃麗雯,陳渝光,劉巍.一種有效的試題庫框架設(shè)計算法[J].計算機應(yīng)用,2000(1):60-61.
[3]王建忠,張萍,吳倩,等.考試系統(tǒng)中題庫量與試題量的關(guān)系研究[J]計算機應(yīng)用研究,2010,8(2):18-21.
[4]王文發(fā),王文東,劉彥保.試題庫系統(tǒng)建設(shè)中試題質(zhì)量分析與建模[J].延安大學(xué)學(xué)報(自然科學(xué)版),2007,10(4):58-61.
[5]郭敏華,蘭雨晴,金茂忠.一種海量題庫難度系數(shù)和區(qū)分度動態(tài)優(yōu)化模型[J].計算機工程與應(yīng)用,2007(21):246-248.
[6]簡靖韡,吳菊花.高校在線學(xué)評教系統(tǒng)模塊及數(shù)據(jù)庫設(shè)計[J].電子制作,2015,22(5):23-26.
[7]李娟.排課系統(tǒng)中數(shù)據(jù)庫表的設(shè)計[J].科技資訊,2015,13(15):43-46.
[8]容湘萍.學(xué)生檔案管理系統(tǒng)數(shù)據(jù)庫設(shè)計與優(yōu)化[J].軟件導(dǎo)刊,2014,32(12):148-150.
[9]池宗諭,ADO.NET與SQL數(shù)據(jù)庫的連接與訪問研究[J].遼寧高職學(xué)報,2015,14(2):95-96.
[10]唐健.ADO.net數(shù)據(jù)庫訪問技術(shù)及性能優(yōu)化[J].電子技術(shù)與軟件工程,2015,8(21):18-21.
Application of.Net software architecture and design-patterns in automatic test paper system
CHEN Hui,ZHAO Xiao-hua
(Shaanxi College of Communication Technology,Xi′an 710018,China)
In order to Net platform to implement and adapt to a variety of databases on training management system of students of the reusability,adopts the MVC software architecture and design patterns and data access layer,and using the C# language,the system developed.By introducing the ASP.NET MVC design pattern,the system can easily switch database access,enhance maintainability and reusability of the code,effectively improve the efficiency of system development,and easy software upgrades.
ASP.NET;database design;training work;computer test;data optimization
TN919
A
1674-6236(2016)18-0004-03
2015-10-20 稿件編號:201510128
陜西交通職業(yè)技術(shù)學(xué)院院級科研項目(YJ15002);陜西高等教育教學(xué)改革研究項目(15Z26)
陳 輝(1970—),男,陜西藍田人,博士,副教授。研究方向:無線網(wǎng)絡(luò)和軟件開發(fā)。