




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
在線考試系統(tǒng)數(shù)據(jù)庫分析設(shè)計(jì)與建模2016111323716軟工A3李樂實(shí)驗(yàn)一:在線考試系統(tǒng)需求分析前期的數(shù)據(jù)模型分析是在Execl中建立的,這樣方便隨時(shí)更改。(僅在前期分析實(shí)體屬性以及主碼外碼關(guān)系,不涉及詳細(xì)的數(shù)據(jù)類型,之后的概念模型中會詳細(xì)分析)在線考試系統(tǒng)中的功能龐雜,前期分析,只是分析與設(shè)計(jì)了該系統(tǒng)的普遍功能與該階段可實(shí)現(xiàn)功能,對于較深較難的功能只分析但并未進(jìn)行設(shè)計(jì)。建模過程中設(shè)計(jì)的主要表如下: 試題表可理解為試題庫,教師從中選取一定的試題組成一張?jiān)嚲泶痤}表可理解為學(xué)生的答題試卷,詳細(xì)記錄著學(xué)生的答題情況在線考試系統(tǒng)功能模塊圖教師教師信息管理管理員管理員學(xué)生信息管理 學(xué)生信息管理在線考試在線考試系統(tǒng)組卷功能組卷功能查詢學(xué)生成績教師查詢學(xué)生成績教師題庫管理題庫管理 統(tǒng)計(jì)與分析學(xué)生班級成績統(tǒng)計(jì)與分析學(xué)生班級成績在線考試在線考試學(xué)生學(xué)生學(xué)生成績查詢學(xué)生成績查詢在線考試數(shù)據(jù)流圖分析與設(shè)計(jì)在線考試系統(tǒng)數(shù)據(jù)流圖-1:頂層數(shù)據(jù)流圖分析:主要對象包括了教師、管理員、學(xué)生教師:組卷功能、查詢學(xué)生成績、按照科目、班級統(tǒng)計(jì)學(xué)生的考試成績、分析統(tǒng)計(jì)學(xué)生對知識點(diǎn)的掌握情況。管理員:管理與維護(hù)學(xué)生與教師基本信息。學(xué)生:在線考試功能、查詢成績功能。在線考試系統(tǒng)數(shù)據(jù)流圖-2:數(shù)據(jù)流圖分析:將“在線考試系統(tǒng)”進(jìn)行細(xì)化管理員通過學(xué)生基本信息和教師基本信息數(shù)據(jù)源管理學(xué)生與教師基本信息。教師先通過試題庫數(shù)據(jù)源進(jìn)行組卷,之后管理試卷。并且可以“通過學(xué)生考試成績”數(shù)據(jù)源,教師可進(jìn)行學(xué)生的成績管理學(xué)生通過試題庫進(jìn)行線上考試。最后在線考試系統(tǒng)通過“學(xué)生考試答題情況”和“試題庫”實(shí)現(xiàn)自動閱卷功能。在線考試系統(tǒng)數(shù)據(jù)流圖-3:數(shù)據(jù)流圖分析:細(xì)化“成績管理”模塊,其包括了成績查詢、匯總統(tǒng)計(jì)、卷面分析三個(gè)子功能學(xué)生和教師可以進(jìn)行成績查詢。而匯總統(tǒng)計(jì)和卷面分析由教師進(jìn)行。在線考試系統(tǒng)數(shù)據(jù)流圖-4:數(shù)據(jù)流圖分析:進(jìn)一步細(xì)化“匯總統(tǒng)計(jì)”模塊匯總統(tǒng)計(jì)包括兩部分,即匯總與統(tǒng)計(jì)。教師匯總班級學(xué)生成績總表;教師按照科目、班級統(tǒng)計(jì)學(xué)生的答題情況,以便于了解學(xué)生對具體知識的掌握情況。實(shí)驗(yàn)二:在線考試系統(tǒng)CDM概念結(jié)構(gòu)設(shè)計(jì)此為學(xué)生的答題試卷,其需要和三個(gè)實(shí)體建立聯(lián)系!此為學(xué)生的答題試卷,其需要和三個(gè)實(shí)體建立聯(lián)系!實(shí)驗(yàn)三:在線考試系統(tǒng)生成PDM物理模型之后生成物理數(shù)據(jù)庫,生成表成功:實(shí)驗(yàn)四:函數(shù)設(shè)計(jì)設(shè)計(jì)“應(yīng)得分值轉(zhuǎn)換函數(shù)”此函數(shù)實(shí)現(xiàn)的功能是,將試題庫中的試題答案與學(xué)生答卷中的試題答案進(jìn)行對比,如果答案一致,則返回本題的應(yīng)得分值,否則返回0(即分?jǐn)?shù)為0)入口參數(shù)是:學(xué)生答案、標(biāo)準(zhǔn)答案、該題分值返回值:應(yīng)得分值具體函數(shù)設(shè)計(jì)如下:--@應(yīng)得分值轉(zhuǎn)換函數(shù)createfunctiongradeconvert(@學(xué)生答案varchar(30),@標(biāo)準(zhǔn)答案varchar(30),@該題分值float)returnsfloat--@應(yīng)得分值asbegindeclare@tfloatif@學(xué)生答案=@標(biāo)準(zhǔn)答案set@t=@該題分值elseset@t=0return@tend測試查詢語句如下:select姓名,試卷名稱,答題.試題ID,dbo.gradeconvert(答案,標(biāo)準(zhǔn)答案,分值)得分from學(xué)生,試卷,試題,答題where學(xué)生.學(xué)號=答題.學(xué)號and試卷.試卷ID=答題.試卷IDand試題.試題ID=答題.試題ID因?yàn)榇撕瘮?shù)是對比學(xué)生答案的基礎(chǔ),之后會應(yīng)用到觸發(fā)器與各存儲過程中,故此處將不再單獨(dú)截圖此函數(shù)的運(yùn)行結(jié)果。實(shí)驗(yàn)五:存儲過程1.存儲過程設(shè)計(jì):存儲過程分三類:查詢存儲、統(tǒng)計(jì)存儲、卷面分析存儲查詢存儲可以設(shè)計(jì)多個(gè)不同查詢方式:按照學(xué)號和試題ID查詢學(xué)號查詢(已實(shí)現(xiàn))試卷ID查詢(已實(shí)現(xiàn))學(xué)號查詢存儲過程:供學(xué)生查詢成績使用,即學(xué)生在輸入自己學(xué)號之后,可看到自己所有試卷的成績情況。具體存儲過程設(shè)計(jì)如下:--學(xué)生個(gè)人成績存儲過程CREATEprocedurep_stscore@學(xué)生IDchar(11)--入口參數(shù):學(xué)生IDasbegindeclarestu_cursorcursorforselect姓名from學(xué)生declare@學(xué)生姓名varchar(8)openstu_cursorfetchnextfromstu_cursorinto@學(xué)生姓名print@學(xué)生姓名+'同學(xué)的各科成績?nèi)缦?'select試卷ID,sum(應(yīng)得分值)試卷分?jǐn)?shù)from答題where學(xué)號=@學(xué)生IDgroupby試卷ID--select試卷名稱,sum(應(yīng)得分值)試卷分?jǐn)?shù)from答題,試卷where學(xué)號=@學(xué)生IDand試卷.試卷ID=答題.試卷IDgroupby答題.試卷IDclosestu_cursordeallocatestu_cursorend學(xué)生答題情況:學(xué)生查詢成績?nèi)缦拢簱Q一組測試數(shù)據(jù)瞧瞧:顯示正確:再來一組測試數(shù)據(jù)看看:顯示正確:增加一位學(xué)生,測試數(shù)據(jù)是否正確:正確!試卷ID查詢存儲過程:供教師使用,即教師輸入試卷ID,即可查詢所有答此試卷的學(xué)生的成績。具體存儲過程設(shè)計(jì)如下:CREATEPROCEDUREp_SumScore@試卷IDVARCHAR(10)--入口參數(shù):試卷IDASBEGIN select學(xué)號,sum(應(yīng)得分值)試卷分?jǐn)?shù)from答題where試卷ID=@試卷ID groupby學(xué)號 CLOSE答題_cursor DEALLOCATE答題_cursorEND測試數(shù)據(jù)為兩個(gè)學(xué)生答同一種卷子的兩道試題:結(jié)果即為每一位同學(xué)的答卷成績!實(shí)驗(yàn)六:編寫觸發(fā)器編寫學(xué)生答案修改觸發(fā)器與標(biāo)準(zhǔn)答案修改觸發(fā)器是什么:在線考試系統(tǒng)中,學(xué)生考試結(jié)束后,會產(chǎn)生學(xué)生答卷,即學(xué)生答案。系統(tǒng)在自動閱卷時(shí),需要匹配系統(tǒng)中該試卷的對應(yīng)試卷答案,即標(biāo)準(zhǔn)答案。當(dāng)兩者的答案一致時(shí),學(xué)生獲得該試題的分值。為什么:如果標(biāo)準(zhǔn)答案出錯(cuò),需要手動修改標(biāo)準(zhǔn)答案,則學(xué)生答卷中對應(yīng)的答案分值也應(yīng)該有對應(yīng)的調(diào)整,此時(shí)即需要觸發(fā)器,對學(xué)生答案和標(biāo)準(zhǔn)答案進(jìn)行聯(lián)動控制。怎么做:需要寫兩個(gè)觸發(fā)器。學(xué)生答案修改觸發(fā)器(學(xué)生答案修改后,其應(yīng)得分值發(fā)生變化)、標(biāo)準(zhǔn)答案修改觸發(fā)器(標(biāo)準(zhǔn)答案修改后,學(xué)生該題的應(yīng)得分值發(fā)生改變)觸發(fā)器設(shè)計(jì)具體如下:--@學(xué)生答案修改觸發(fā)器即在學(xué)生的“答卷”表中修改學(xué)生的答案時(shí),其后的“應(yīng)得分值”應(yīng)發(fā)生改變!createtriggerp_應(yīng)得分值on答題forupdateasdeclare@標(biāo)準(zhǔn)答案varchar(30)declare@試題IDvarchar(10)declare@分值floatdeclareupdate_cursorcursorforselect試題IDfrom答題ifupdate(答案)beginopenupdate_cursorfetchnextfromupdate_cursorinto@試題IDset@標(biāo)準(zhǔn)答案=(select標(biāo)準(zhǔn)答案from試題where試題.試題ID=@試題ID)set@分值=(select分值from試題where試題.試題ID=@試題ID)update答題set應(yīng)得分值=dbo.gradeconvert(答案,@標(biāo)準(zhǔn)答案,@分值)where試題ID=@試題IDcloseupdate_cursordeallocateupdate_cursorend觸發(fā)器測試數(shù)據(jù)較多,耐心閱之初始數(shù)據(jù)(試題2010071901的正確答案為A,分值10分)答案為B,錯(cuò)誤,應(yīng)得分值為0:答案為A,正確,應(yīng)得分值為10:多組數(shù)據(jù)測試:--@標(biāo)準(zhǔn)答案修改觸發(fā)器即“試題”表中的“標(biāo)準(zhǔn)答案”手動修改后,學(xué)生的“答題”表中的應(yīng)得分值也應(yīng)該發(fā)生相應(yīng)的改變!createtriggerp2_應(yīng)得分值on試題forupdateasdeclare@標(biāo)準(zhǔn)答案varchar(30)declare@試題IDvarchar(10)declare@分值floatdeclareupdate2_cursorcursorforselect試題IDfrom答題ifupdate(標(biāo)準(zhǔn)答案)beginopenupdate2_cursorfetchnextfromupdate2_cursorinto@試題IDset@分值=(select分值from試題where試題.試題ID=@試題ID)set@標(biāo)準(zhǔn)答案=(select標(biāo)準(zhǔn)答案from試題where試題.試題ID=@試題ID)update答題set應(yīng)得分值=dbo.gradeconvert(答案,@標(biāo)準(zhǔn)答案,@分值)where試題ID=@試題IDcloseupdate2_cursordeallocateupdate2_cursorend測試數(shù)據(jù)如下:(試題表中的標(biāo)準(zhǔn)答案如果修改后,則學(xué)生的答題表中的應(yīng)得分值也會發(fā)生相應(yīng)的改變)即2010071901試題的標(biāo)準(zhǔn)答案為A時(shí),答題表中答案為B,則0分即2010071901試題的標(biāo)準(zhǔn)答案為B時(shí),答題表中答案為B,則10分,其余均為0分!學(xué)習(xí)心得編寫觸發(fā)器遇到的小問題:在填寫數(shù)據(jù)時(shí),第一次初始化填寫數(shù)據(jù)時(shí),觸發(fā)器是不會被“觸發(fā)”的,因?yàn)樵诖a中是用update來判斷觸發(fā)器觸發(fā)的條件,之后也嘗試了其他的方式,但是都只能是先填寫數(shù)據(jù),之后再修改數(shù)據(jù)時(shí),觸發(fā)器才生效。在進(jìn)行數(shù)據(jù)庫分析與建模過程中,其實(shí)前期分析最為重要,前期分析透徹了,之后的模型建立也會相當(dāng)迅速。如果前期分析不透徹,之后的建模過程將會十分痛苦,而且之后的函數(shù)、存儲過程、觸發(fā)器設(shè)計(jì)都建立在一個(gè)良好的分析之下,否則也將是舉步維艱。另外,前期的實(shí)體分析可以在Excel中羅列,方便在分析階段可以隨時(shí)更改:關(guān)于設(shè)計(jì)的函數(shù)與存儲過程的關(guān)系以及區(qū)別:個(gè)人感覺,本質(zhì)上沒區(qū)別,只是函數(shù)有如:只能返回一個(gè)變量的限制。而存儲過程可以返回多個(gè)。而函數(shù)是可以嵌入SQL中使用的,可以在select中調(diào)用,而存儲過程不行。執(zhí)行的本質(zhì)都一樣。但是在設(shè)計(jì)過程中,發(fā)現(xiàn)函數(shù)限制會比較多,比如不能用臨時(shí)表,只能用表變量.還有一些函數(shù)都不可用等等.而存儲過程的限制相對就比較少了一些。而且明顯能感覺到存儲過程實(shí)現(xiàn)的功能要復(fù)雜一點(diǎn),而函數(shù)的實(shí)現(xiàn)的功能針對性就比較強(qiáng)。對于存儲過程來說可以返回參數(shù),而函數(shù)只能返回值或者表對象。而且存儲過程是作為一個(gè)獨(dú)立的部分來執(zhí)行(即可以用EXEC執(zhí)行),而函數(shù)可以作為查詢語句的一個(gè)部分來調(diào)用(SELECT調(diào)用)。本次設(shè)計(jì)中的函數(shù)是作為鑲嵌在存儲過程中的一部分使用的,而函數(shù)的成功設(shè)計(jì)也決定了之后存儲過程的正確執(zhí)行。SQLServer用戶自定義函數(shù)在MicrosoftSQLServerManagermentStudio里面,展開具體需要?jiǎng)?chuàng)建SQLServer用戶自定義函數(shù)的數(shù)據(jù)庫(即每個(gè)用戶自定義函數(shù)只針對具體的一個(gè)數(shù)據(jù)庫有用),然后找到可編程性選項(xiàng),再展開找到函數(shù)選項(xiàng),在具體的函數(shù)選項(xiàng)里面可參照下圖的方式鼠標(biāo)右鍵選擇來添加。對于SQLServer來講,我們聲明一個(gè)變量的方式是用@變量名,而且相對于編程來講,SQLServer聲明的方式是先變量后面才是類型。對于需要傳參跟不需要傳參的方式,其實(shí)跟我們編程的方式一樣。有參數(shù)則是如下方式:CREATEFUNCTIONGetSum(@firstNumint,@secondNumint)在分析與設(shè)計(jì)數(shù)據(jù)庫期間,也極容易將數(shù)據(jù)庫設(shè)計(jì)與系統(tǒng)設(shè)計(jì)混淆。例如:在線考試系統(tǒng)中,學(xué)生在登錄系統(tǒng)之后,系統(tǒng)將自動讀取登錄時(shí)間,以便知道應(yīng)該發(fā)XXX試卷給該生,此過程可以在之后的系統(tǒng)實(shí)現(xiàn)sqlserver中如何理解:isnull(列名,0)和isnull(列名,0)<>0的區(qū)別isnull(參數(shù)1,參數(shù)2),判斷參數(shù)1是否為NULL,如果是,返回參數(shù)2,否則返回參
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)產(chǎn)業(yè)園可行性分析報(bào)告
- 建筑給排水設(shè)計(jì)規(guī)范gb50015
- 商業(yè)街區(qū)商業(yè)規(guī)劃手冊
- 智能生產(chǎn)線設(shè)備維護(hù)指南
- 三農(nóng)文化傳播策略方案
- 重慶高新技術(shù)產(chǎn)業(yè)
- 開題可行性分析報(bào)告模板
- 醫(yī)療設(shè)備操作與使用說明手冊
- 農(nóng)業(yè)產(chǎn)業(yè)鏈協(xié)同發(fā)展方案
- 衛(wèi)星導(dǎo)航定位系統(tǒng)技術(shù)應(yīng)用文檔
- 湖北省司法鑒定機(jī)構(gòu)鑒定檔案管理辦法暫行
- 工業(yè)軟件CAD:研究框架
- 礦山救護(hù)隊(duì)裝備培訓(xùn)課件
- 光伏并網(wǎng)前單位工程驗(yàn)收報(bào)告-2023
- 剪輯拍攝培訓(xùn)課件
- 股權(quán)投資的基本概念與原理
- 自檢記錄表鋼筋
- 壓力容器年度自查表
- 回彈法檢測混凝土強(qiáng)度自動計(jì)算表,測區(qū)混凝土強(qiáng)度換算表,回彈值
- GB/T 2965-2023鈦及鈦合金棒材
- 身份證A4直接打印word模版
評論
0/150
提交評論