馬 華,張西學(xué),張念華,李 聰,張海東
(泰山醫(yī)學(xué)院,山東 泰安 271016)
在互聯(lián)網(wǎng)大發(fā)展和教育信息化蓬勃開(kāi)展的今天,考試無(wú)紙化和網(wǎng)絡(luò)化因其方便、快捷、公平、公正等特點(diǎn),成為高等教育領(lǐng)域的研究熱點(diǎn)。各種考試系統(tǒng)被開(kāi)發(fā)出來(lái)并應(yīng)用于各類考試,有的考試系統(tǒng)能通用于多門(mén)課程的考試,如基于XML技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)[1]、基于Web的網(wǎng)考平臺(tái)[2]、基于Web服務(wù)的智能考試平臺(tái)[3]、基于Web的在線考試管理系統(tǒng)[4]、考易網(wǎng)絡(luò)題庫(kù)與考試系統(tǒng)[5]等;有的只用于單一課程的考試,如基于Web的在線英語(yǔ)考試系統(tǒng)[6]、基于asp.net的醫(yī)學(xué)在線考試與教學(xué)輔助系統(tǒng)[7]等??荚囅到y(tǒng)的核心都是考試數(shù)據(jù)庫(kù)的設(shè)計(jì)。對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì),以上文獻(xiàn)甚少提及。文獻(xiàn)《基于JSP技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)》[8]、《網(wǎng)絡(luò)考試系統(tǒng)中數(shù)據(jù)庫(kù)的設(shè)計(jì)及架構(gòu)》[9]專門(mén)對(duì)考試數(shù)據(jù)庫(kù)進(jìn)行了設(shè)計(jì),也不太適合我??荚嚨膶?shí)際情況。
經(jīng)過(guò)對(duì)我校考試實(shí)際進(jìn)行大量分析,并兼顧考試通用情況,本文詳細(xì)介紹了網(wǎng)絡(luò)考試系統(tǒng)中數(shù)據(jù)的關(guān)系模型設(shè)計(jì),該模型既適合我??荚噷?shí)際情況,也考慮到考試通用情況。
采用數(shù)據(jù)庫(kù)設(shè)計(jì)方法設(shè)計(jì)考試數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)的設(shè)計(jì)一般分為四個(gè)階段——需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)。本文在需求分析后,主要對(duì)考試數(shù)據(jù)的概念模型和邏輯模型進(jìn)行設(shè)計(jì)。
網(wǎng)絡(luò)考試系統(tǒng)主要完成教師創(chuàng)建課程、課程管理、導(dǎo)入題庫(kù)、組卷、批卷和試卷分析,學(xué)生在線登錄考試、交卷,管理員對(duì)學(xué)生和教師用戶進(jìn)行管理,完成數(shù)據(jù)備份、試卷和考卷備份等功能。教師出卷后,由教研室、院系和學(xué)校對(duì)試卷進(jìn)行三級(jí)審核。當(dāng)學(xué)生、教師和課程的數(shù)據(jù)量很大時(shí),為了高效管理這些數(shù)據(jù),需要通過(guò)學(xué)校、學(xué)院、專業(yè)、年級(jí)、學(xué)歷對(duì)學(xué)生進(jìn)行組織,通過(guò)學(xué)校、學(xué)院和教研室對(duì)教師進(jìn)行組織。課程包含三級(jí)知識(shí)點(diǎn),題目屬于第三級(jí)知識(shí)點(diǎn)。數(shù)據(jù)庫(kù)都放在服務(wù)器中,各用戶通過(guò)網(wǎng)考系統(tǒng)遠(yuǎn)程登錄訪問(wèn)。
概念模型就是從現(xiàn)實(shí)世界到信息世界的第一層抽象,以確定領(lǐng)域?qū)嶓w屬性關(guān)系,用E-R圖表示。E-R圖主要是由實(shí)體、屬性和聯(lián)系三個(gè)要素構(gòu)成的。
根據(jù)需求分析,網(wǎng)考系統(tǒng)中用來(lái)存儲(chǔ)數(shù)據(jù)的實(shí)體應(yīng)該包含學(xué)校、學(xué)院、專業(yè)、教師、學(xué)生、課程、題目、試卷等。各實(shí)體之間的聯(lián)系如下:一個(gè)學(xué)校包含多個(gè)學(xué)院、一個(gè)學(xué)院包含多個(gè)專業(yè)、一個(gè)專業(yè)包含多個(gè)學(xué)生;一個(gè)學(xué)院擁有多名教師,一名教師教授多門(mén)課程,一門(mén)課程包含多個(gè)一級(jí)知識(shí)點(diǎn)(章)、一個(gè)一級(jí)知識(shí)點(diǎn)包含多個(gè)二級(jí)知識(shí)點(diǎn)(節(jié)),一個(gè)二級(jí)知識(shí)點(diǎn)包含多個(gè)三級(jí)知識(shí)點(diǎn),一個(gè)三級(jí)知識(shí)點(diǎn)包含多個(gè)題目,一個(gè)題目包括一個(gè)或多個(gè)題干、0個(gè)或多個(gè)選項(xiàng)和對(duì)應(yīng)的正確答案 (題目類型決定題干和選項(xiàng)的數(shù)目);從一門(mén)課程的題庫(kù)可以組多份試卷,一份試卷可以選定多名學(xué)生考試,并保存學(xué)生對(duì)每個(gè)題的答案。
概念模型通常使用ER圖來(lái)表達(dá),ER圖分為傳統(tǒng)的和現(xiàn)代的ER圖,這兩種圖形工具各具特點(diǎn)。為了使數(shù)據(jù)模型更清楚和更好理解,本文分別設(shè)計(jì)了考試數(shù)據(jù)的傳統(tǒng)ER圖和現(xiàn)代ER圖。繪制ER圖的工具軟件較多,本文使用微軟Office中的visio作為繪制工具。
(1)傳統(tǒng)ER圖設(shè)計(jì)
在傳統(tǒng)ER圖的圖形符號(hào)中,矩形框表示實(shí)體,橢圓表示實(shí)體的屬性特征,菱形表示實(shí)體之間的聯(lián)系。聯(lián)系有三種類型:1∶1、1∶n(或 n∶1)、m∶n,分別表示一對(duì)一、一對(duì)多(或多對(duì)一)、多對(duì)多。為使ER圖看起來(lái)簡(jiǎn)潔,只在圖中列出實(shí)體名稱及實(shí)體之間的聯(lián)系,并未列出實(shí)體的屬性。圖1為考試數(shù)據(jù)的傳統(tǒng)ER圖。
為便于說(shuō)明圖1中的實(shí)體及其聯(lián)系,以下給出試卷、考卷和考題的概念。
①試卷:一門(mén)課程的一次考試前,從題庫(kù)中抽題后組成的試卷,相當(dāng)于傳統(tǒng)考試中教師所出的試卷模板,是將要進(jìn)行大規(guī)模印刷的那份試卷。試卷信息包括試卷名稱、考試時(shí)間、考試地點(diǎn)、包含的題目、試卷總分等。
②考卷和考題:印刷后分發(fā)給學(xué)生的每一份試卷中,分為卷頭和卷體。卷頭包括試卷名稱和學(xué)生信息(學(xué)號(hào)、姓名和班級(jí)),卷體包含各題目以及留給學(xué)生寫(xiě)答案的空間。卷頭定義為“考卷”,卷體定義為“考題”。
圖1 考試數(shù)據(jù)的傳統(tǒng)ER模型
在圖1(a)中,第一、二行為系統(tǒng)中的組織機(jī)構(gòu)和人物實(shí)體,包括學(xué)校、院系、專業(yè)、教研室、教師和學(xué)生;中間一行的實(shí)體為試卷、考卷、考題和題目;最后一行中的一級(jí)、二級(jí)和三級(jí)知識(shí)點(diǎn),可以對(duì)應(yīng)為章、節(jié)和知識(shí)點(diǎn)。
試卷、考卷和考題與教師、學(xué)生、課程之間的聯(lián)系較為復(fù)雜,對(duì)圖1(a)中的各個(gè)聯(lián)系從左向右進(jìn)行具體說(shuō)明如下:
①教師與學(xué)生考題間的批改聯(lián)系為一對(duì)多聯(lián)系。即一個(gè)學(xué)生可以答多份考卷(即多門(mén)課程的考卷),一門(mén)課程的試卷可以由多名考生作答。一名教師可以批改多個(gè)考題,一個(gè)考題只能由一名教師批改,即一份答卷中的主觀題由多名教師分工批改,所以教師和考題之間的批改聯(lián)系是一對(duì)多聯(lián)系。
②學(xué)生與考卷之間的解答聯(lián)系為一對(duì)多聯(lián)系。一名學(xué)生可以在不同的時(shí)間解答多份考卷 (多門(mén)課程的考卷),而一份考卷只能由一名學(xué)生解答。
③試卷和考卷之間是一對(duì)多(或一對(duì)一)聯(lián)系。該聯(lián)系表明,用一份試卷可以復(fù)制生成多份考卷,也可以生成一份考卷,而一份考卷只能屬于一份試卷的復(fù)制品。在一門(mén)課程的一次考試中,如果一份試卷對(duì)應(yīng)多份考卷,則表示一個(gè)課程班的學(xué)生用相同試卷考試,或用A、B、C等多份試卷考試;如果一份試卷對(duì)應(yīng)一份考卷,表示該課程班每個(gè)學(xué)生的考卷是隨機(jī)產(chǎn)生的,即一人一卷。
④試卷和題目間的組卷關(guān)系為多對(duì)多聯(lián)系。在一門(mén)課程的組卷過(guò)程中,一份試卷可以由多個(gè)題目組成,一個(gè)題目也可組入多份試卷,如一個(gè)題目可以出現(xiàn)在A卷,也可以出現(xiàn)在B卷中,但要控制各卷的題目重復(fù)率。
⑤題目、題型類別、小題及選項(xiàng)之間的聯(lián)系。題目所屬的題型為兩大類別,即客觀題和主觀題。
一是當(dāng)題目屬于客觀串題時(shí)(類似英語(yǔ)的一篇閱讀理解),則該題目包含多個(gè)小題(小題也是客觀題);當(dāng)題目屬于客觀非串題時(shí),該題目只對(duì)應(yīng)一個(gè)小題。以上兩種情況下,小題都包含多個(gè)選項(xiàng)。
二是當(dāng)題目屬于主觀串題時(shí),題目包含多個(gè)小題,小題也均為主觀題;題目是主觀非串題時(shí),只對(duì)應(yīng)一個(gè)小題。這兩種情況下,小題均不包含選項(xiàng)。
為使ER圖簡(jiǎn)潔,把教研室、院系和學(xué)校對(duì)試卷的“審核”聯(lián)系單獨(dú)摘出來(lái),見(jiàn)圖 1(b)。
(2)考試數(shù)據(jù)的現(xiàn)代ER圖設(shè)計(jì)
圖1中的傳統(tǒng)ER圖能夠清晰表達(dá)各實(shí)體之間的聯(lián)系及聯(lián)系的類型,但如果添加實(shí)體的屬性后,則ER圖會(huì)變得復(fù)雜凌亂。因此在設(shè)計(jì)傳統(tǒng)ER圖后,本文又設(shè)計(jì)了現(xiàn)代ER圖(見(jiàn)圖2)。
圖2 考試數(shù)據(jù)的現(xiàn)代ER圖
在現(xiàn)代ER圖中,矩形框表示實(shí)體,實(shí)體間的連接線表示實(shí)體之間的聯(lián)系。矩形框的第一行為實(shí)體名稱,第二行pk為主鍵屬性,其余行表示實(shí)體的其他屬性。從圖2可以看出,現(xiàn)代ER圖只有矩形和連接線,整體比較規(guī)整,但無(wú)法看出連接線所表示聯(lián)系的意義。
圖2(a)中增加了“組卷”實(shí)體,用來(lái)保存每個(gè)組卷信息,該次組卷含題號(hào)、各題分值(可以保存題目的新設(shè)分值)、組卷策略(手動(dòng)組卷或自動(dòng)組卷)、組卷時(shí)間等。該實(shí)體對(duì)應(yīng)圖1中的題目和試卷間的“組卷”聯(lián)系。
概念模型設(shè)計(jì)完成后,由現(xiàn)代ER圖轉(zhuǎn)換為相應(yīng)的邏輯模型,目前最流行的邏輯模型是關(guān)系模型。該階段的任務(wù)是將ER圖中的實(shí)體及實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系,并確定這些關(guān)系的屬性和碼。將每一個(gè)實(shí)體設(shè)計(jì)為一個(gè)關(guān)系,實(shí)體之間的一對(duì)一和多對(duì)一聯(lián)系設(shè)計(jì)為外鍵聯(lián)系,多對(duì)多的聯(lián)系設(shè)計(jì)為一個(gè)關(guān)系。以下是由ER圖導(dǎo)出的關(guān)系模式,一個(gè)關(guān)系對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)中的一張表,其中雙下畫(huà)線標(biāo)注的是主鍵,單下劃線標(biāo)出的是外鍵,表示與其他表的聯(lián)系。
學(xué)校(學(xué)校編號(hào),學(xué)校名稱)
院系(院系編號(hào),院系名稱,學(xué)校編號(hào))
專業(yè)(專業(yè)編號(hào),專業(yè)名稱,院系編號(hào))
教研室(教研室編號(hào),教研室名稱,院系編號(hào))
學(xué)生(學(xué)號(hào),姓名,年級(jí),班次,專業(yè)編號(hào),學(xué)歷編號(hào))
教師(教師號(hào),姓名,性別,職稱,qq號(hào),電話,教研室編號(hào))
課程(課程號(hào),課程名,學(xué)時(shí),學(xué)分,教師號(hào))
一級(jí)知識(shí)點(diǎn)(知識(shí)點(diǎn)id1,名稱,課程號(hào))
二級(jí)知識(shí)點(diǎn)(知識(shí)點(diǎn)id2,名稱,知識(shí)點(diǎn)id1)
三級(jí)知識(shí)點(diǎn)(知識(shí)點(diǎn)id3,名稱,知識(shí)點(diǎn)id2)
題型(題型編號(hào),題型名稱)
題目(題目id,題干內(nèi)容,題型編號(hào),知識(shí)點(diǎn)id3)
小題(小題id,題干內(nèi)容,答案,難度,分值,認(rèn)知程度,題目id)
選項(xiàng)(選項(xiàng)id,選項(xiàng)內(nèi)容,小題id)
試卷(試卷號(hào),試卷名稱,試卷總分,開(kāi)考時(shí)間,考試地點(diǎn),審核狀態(tài),課程號(hào))
組卷(組卷號(hào),所含題號(hào),各題分值,組卷策略,組卷時(shí)間,試卷號(hào))
考卷(考卷號(hào),客觀題成績(jī),主觀題成績(jī),總成績(jī),開(kāi)答時(shí)間,交卷時(shí)間,答題進(jìn)度,考卷狀態(tài),組卷號(hào),學(xué)號(hào))
考題(考題號(hào),學(xué)生答案,答題時(shí)間,得分,批改時(shí)間,考卷號(hào),教師號(hào))
根據(jù)前文的邏輯模型設(shè)計(jì)出物理數(shù)據(jù)庫(kù)的關(guān)系表,這里采用Sql Server數(shù)據(jù)庫(kù)。限于篇幅,僅列出題目表的結(jié)構(gòu)設(shè)計(jì)。 (詳見(jiàn)表 1、2、3)
表1 Question(題目表)
表2 QuestionChild(小題表)
表3 Option(選項(xiàng)表)
當(dāng)題型為非串題時(shí),表1中題目表的題干內(nèi)容為空;當(dāng)題目題型為客觀題時(shí),該題不存在選項(xiàng),即表3中不存在該題的選項(xiàng)。
該考試數(shù)據(jù)庫(kù)使用sql server 2008 r2設(shè)計(jì),以該數(shù)據(jù)庫(kù)為核心,輔以memcached緩存技術(shù),利用Asp.net MVC為開(kāi)發(fā)和運(yùn)行環(huán)境,設(shè)計(jì)了基于B/S模式的高校網(wǎng)絡(luò)考試系統(tǒng)。該網(wǎng)考系統(tǒng)已連續(xù)4年應(yīng)用于泰山醫(yī)學(xué)院的期末考試中,學(xué)期期末網(wǎng)考課程6門(mén),考試班級(jí)300多個(gè),網(wǎng)考人次多達(dá)10多萬(wàn)。該網(wǎng)考系統(tǒng)允許多門(mén)課程同時(shí)在線考試,并發(fā)人數(shù)多達(dá)2000人,此時(shí)系統(tǒng)運(yùn)行仍然流暢。
本文在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)經(jīng)過(guò)了需求分析、概念模型設(shè)計(jì)、邏輯模型設(shè)計(jì)等步驟,在設(shè)計(jì)概念模型時(shí)利用了傳統(tǒng)ER圖、現(xiàn)代ER圖工具,這種設(shè)計(jì)方法體現(xiàn)了自頂向下的設(shè)計(jì)思想,逐層遞進(jìn),由粗到細(xì),由簡(jiǎn)到繁。
(1)通過(guò)需求分析,設(shè)計(jì)出傳統(tǒng)ER圖。傳統(tǒng)ER圖中只有實(shí)體名稱和含義明確的實(shí)體間聯(lián)系,這樣的ER圖簡(jiǎn)潔清晰。
(2)通過(guò)傳統(tǒng)ER圖,設(shè)計(jì)出現(xiàn)代ER圖?,F(xiàn)代ER圖能詳細(xì)展示實(shí)體的主鍵屬性及其他屬性。
(3)在現(xiàn)代ER圖基礎(chǔ)上,設(shè)計(jì)出關(guān)系模式。將現(xiàn)代ER圖中的實(shí)體轉(zhuǎn)化為關(guān)系模式,并通過(guò)實(shí)體間聯(lián)系的類型,設(shè)置實(shí)體的外鍵屬性。
(4)在關(guān)系模式基礎(chǔ)上,選用某種關(guān)系數(shù)據(jù)庫(kù),設(shè)計(jì)出關(guān)系表。關(guān)系表的表名、字段名均采用字母表示,并設(shè)計(jì)出字段類型、字段寬度,從而完成考試關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)。
設(shè)計(jì)步驟中使用的多個(gè)工具相互結(jié)合,優(yōu)勢(shì)互補(bǔ),很好地完成了考試數(shù)據(jù)庫(kù)的設(shè)計(jì)。
(1)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)潔,數(shù)據(jù)冗余小。
(2)該數(shù)據(jù)庫(kù)有效地支持網(wǎng)考系統(tǒng)的功能??梢灾С侄嚅T(mén)課程、多個(gè)班級(jí)的考試,支持多種組卷方式、多級(jí)試卷審核、多人同卷、一人一卷。多人同卷時(shí),各卷題目順序隨機(jī),同一客觀題選項(xiàng)順序隨機(jī)。