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