




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
"學生成績管理"數(shù)據(jù)庫設計文檔0.前言(—些必要的說明。)0.1庫說明數(shù)據(jù)庫名:PXSCJ邏輯名稱:學生成績1數(shù)據(jù)文件:PXSCJ.mdf日志文件:PXSCJ_Log登錄名:admin,密碼:1234560.2表命名說明(3二dbo.CJBdbo.KCBS口dbo.CXBdbo.KCBEl園S口dbo.TJBS勺dbo.XSB02dbo.yhb?2dbo.jsb?3dbo.skbCjb:成績表,保存選課信息Cxb:查詢表,記錄boolean值對應信息,1代表男,0代表女。Kcb:課程表。Tjb:統(tǒng)計表,統(tǒng)計成績段分布。Xsb:學生表。
Yhb:用戶表,保存系統(tǒng)用戶信息。Jsb:教師表。Skb授課表,記錄授課信息。03系統(tǒng)功能模塊圖-IT-I‘T-—1-IT-I‘T-—1管J?LI1學生JA一工-it-1■一-X--T-「用戶薔理一?修改密碼錄入器表「錄入眾入軟師一錄入學生修改密碼一査詢成績一錄入成?査詢成筑修改魯修改篇■査洵成績倏改密碼
學生俑思監(jiān)査詢成絨
修改專業(yè)計劃修改成績1、需求分析階段說明:學生成績管理系統(tǒng)需要實現(xiàn)以下功能:一個學生可以選修多門課程,_門課程可以由多個學生選修,學生選修_門課會有一個成績。一個教I丿帀可以教授多個班級,—個教師也可以教授多門課程,一個班級有多個學生,—門課程也可以由多個老師來上,—個老師給—個班級上一門課有確定的時間和地點。不同的用戶根據(jù)身份不同擁有不同的權限。(1)數(shù)據(jù)流圖
老師…■成績管理,學生信息管理r權限管理…學生成績管理系統(tǒng)一成績查詢—學生(要求:用visio實現(xiàn)第一層數(shù)據(jù)流圖r第二層數(shù)據(jù)流圖.第三層數(shù)據(jù)流圖)pl21—修改密碼一成績査詢學生—修改密碼一成績査詢學生第_層數(shù)據(jù)流圖第二層數(shù)據(jù)流圖第二層數(shù)據(jù)流圖第三層數(shù)據(jù)流圖(略)(2)數(shù)據(jù)字典
(每個實體的詳細說明)數(shù)據(jù)庫編號:pxscj基表編號:fl基表央文名稱:yhb基表中文名稱:用戶表字段編號英文字段名中文字段名字段類型備注1Yhbh用戶編號Char(6)2yhm用戶名Char(8)3sf身份Varcha(20)4mm密碼Char(6)5bz備注Varcha(50)說明:數(shù)據(jù)庫編號:pxscj
基表編號:f2基表央文名稱:cjb基表中文名稱:成績表字段編號英文字段名中文字段名字段類型備注1Xh學號Char(6)2Kch課程號Char(3)3Cj成績Int說明:xh參照學生表的xh;kch參照課程表的kch;cj介于0-100之間。數(shù)據(jù)庫編號:pxscj基表編號:f3基表央文名稱:kcb基表中文名稱:課程表字段編號英文字段名中文字段名字段類型備注1Xh學號Char(6)
2XMChar(8)3XBBit4CSSJ出生時間Datetime5Bj班級Varchar(50)6zy專業(yè)Char(12)7ZXH總學分Int8Lxfs耘方式Varchar(50)9ZP照片Varbinary(MAX)10BZVarchar(500)說明:xh參照學生表的xh;kch參照課程表的kch;cj介于0-100之間。xb參照查詢表的xb數(shù)據(jù)庫編號:pxscj
基表編號:f4基表央文名稱:jsb基表中文名稱:教師表字段編號英文字段名中文字段名字段類型備注1Jsbh教師編號Char(6)2Jsxm教師Char(8)3zy專業(yè)Varchar(30)4Fy分院Varchar(30)5Zc職稱Varchar(20)6Zc職務Varchar(20)7BzVarchar(50)說明:xh參照學生表的xh;kch參照課程表的kch;cj介于0-100之間。
數(shù)據(jù)庫編號:pxscj基表編號:f5基表央文名稱:kcb基表中文名稱:課程表字段編號英文字段名中文字段名字段類型備注1KCH課程號Char(3)2KCM課程名Char(16)3Cj成績Int說明:xh參照學生表的xh;kch參照課程表的kch;cj介于0-100之間。數(shù)據(jù)庫編號:pxscj基表編號:f6基表英文名稱:cjb基表中文名稱:課程表
字段編號英文字段名中文字段名字段類型備注1Xh學號Char(6)2Kch課程號Char(3)3KKXQTinyint4XS學生tinyint5XF學分tinyint說明:xh參照學生表的xh;kch參照課程表的kch;數(shù)據(jù)庫編號:pxscj基表編號:f7基表央文名稱:skb基表中文名稱:授課表字段編號英文字段名中文字段名字段類型備注1Jsbh教師編號Char(6)
2Kch課程號Char(3)3Bj班級Varchar(50)4Sj時間Varchar(50)5dd地點Varchar(50)說明:jsbh參照教師表的jsbh;kch參照課程表的kch;數(shù)據(jù)庫編號:pxscj基表編號:f8基表央文名稱:CXB基表中文名稱:童詢表字段編號英文字段名中文字段名字段類型備注1XB性別Bit2XBM性別名Char(4)尸(1)PER巫(因->?ER明?1)?2)避呂?i?1)(2)ettER巫(田yER函畫氏冰ER函)s(1)表關系圖(看是否可以畫出)(2)表結(jié)構圖甩甩XHXMXBCSSJbjZYZXFBZIxfs數(shù)抿糞型 允許Null值出機6)cha「⑻bitdatetimevarcharCSO)char(12)intvarcharCSOO)varcharCSO)varbinaryCMAX)Xsb結(jié)構列名 敎據(jù)類型 允許Null值Kcb結(jié)構列名數(shù)據(jù)類型允詐Null值??逛1char⑹孚KCHch審⑶CJintCjb結(jié)構列名 數(shù)據(jù)類型 允許列名 數(shù)據(jù)類型 允許Null值yhbh]dw⑹yhmchar⑻sfvarchar(20)mmdw⑹bzvarchar(50)Yhb結(jié)構列名 數(shù)據(jù)類型允許Null值Ghar{6)jsxmc±iar{8)Ghar{6)jsxmc±iar{8)zyvarchar(30)■Fyvarchar(30)zcvarchar(20)2Wvarchar(20)bzvar±ar(50)00回[2]回回[vlnJsb結(jié)構列名jsbhkchbjSj列名jsbhkchbjSjdd數(shù)撮類型char(6)char(3)varcharC50)varchar(20)varchar(50)ft許Null值rlnrls^BSkb結(jié)構列名 數(shù)據(jù)類型允許Null值ttttt*6inin?m?m-mttttt*6inin?m?m-mTjb結(jié)構曲XBM登饌Bbi〔chd「3Cxbf才爭Nu=而□□□(3)(迤彗a->來洲血四襪世3NF?a洱?合冊刖皿用世、昌諜劃潛)湘馮(1202203三離『迤詈S左)Cjb(xhl>rch、cj)甜二xh.kch)J±L番店-0岡進cj冊臉東胃屮(xhTTchL卑L益屮2NF岡甘歲$tm亠能因勞舊、耳益『3NFcxb(xblxbm)站二xbm)-xb岡甘xb冊臉壽(不h)、2NF?耳備4d3nfZJNcn掃異左?屢縊因探.出處心只0ZINCM掃嘎奩2&)掃淙揑湘代zq歹ZOZH總iuxs耳回zqwyzu'ZKrxz.luxsr-坦一^半(qqs三電(zq?/v\zuZH、AZ、UJXSrI^Dqsf亠Ncn掃異亠N0、(⑥勾.圍)掃凜疑4H侏PP-S尺回PSS-些甯需(◎到創(chuàng)二S(PPTS商旨創(chuàng)q>|SZJNmZINQFhBMMs2&)掃嫁住湘侏xsx、bx>l>rlu:?l尺回Jx、sxcrx>l>flu:?l-Tjb(kchfrsl/rs2/rs3/rs4/rs5)碼:(kch)非主屬性:rsljs2rrs3js4frs5因為rsl,rs2,rs3,rs4js5完全依賴于(型),所以屬于2NF因為不存在傳遞函數(shù)依賴,所以屬于3NFXsb(/,xm,xbcssj,bj,zy,zxf,b乙儀fszzp)碼:(xh)非主屬性:xm,xbcssj,bj,zy.zxtb乙lxfs,zp因為xm,xb,cssj,bj,zy,zxf,bzjxfs,zp完全依賴于(/),所以屬于2NF因為不存在傳遞函數(shù)依賴,所以屬于3NFYhb(yhbh/yhm/mm/bz)碼:(yhbh)非主屬性:yhrr\rnm,bz因為yhmmnxbz完全依賴于(yhbh)#所以屬于2NF因為不存在傳遞函數(shù)依賴,所以屬于3NF4、 物理設計選擇合適的DBMS(要求用sqlserver2008)5、 實施(把sql語句貼在下面)(1)創(chuàng)建數(shù)據(jù)庫(把sql語句貼在下面)createdatabasepxscjlon(name='pxscjl_data,rfilename=,f:\pxscjl_data.mdf\size=3mb,filegrowth=10%)logonname=,pxscjl」og:filename='f:\pxscjlJog.ldf:size二4mb,maxsize二6mbfilegrowth=lmb)(2)創(chuàng)建表(把sql語句貼在下面)createtablexsb(xhchar(6)notnullprimarykey,xmchar(8)notnullfxbbit,cssjdatetime,bjvarchar(50)notnull,zychar(12)fzxfint,bzvarchar(500),Ixfsvarchar(50)zzpvarbinary(max))createtablekcb(kchchar(3)notnullprimarykey,kcmchar(16)notnull,kkxqtinyint,xstinyint,xftinyint)createtablecjb(xhchar(6)#kchchar(6),cjint,constraintclprimarykey(xh,kch))createtableyhb(yhbhchar(6)primarykeynotnull,yhmchar?sfvarchar(20),mmchar(6)zbzvarchar(5))createtablejsb(jsbhchar(6)notnuliprimarykey,jsxmchar?zyvarchar(30)ffyvarchar(30),zcvarchar(20),zwvarchar(20)#bzvarchar(50))createtableskb(jsbhchar(6)notnull,kchchar(3)notnull,bjvarchar(50)notnull,sjvarchar(20)#ddvarchar(50)fconstraintc2primarykey(jsbh,kchzbj))createtable1jb(kchchar(3)primarykeynotnull,rs3intrrs5int)createtablecxb(xbbitnotnull,xbmchar(4)notnullprimarykey。0只YJ蘇<R{rb痂'匚只戲益品老qsxfai(寸?g」e-5?「-5M①dnppe—ds.(9)」elp?ix.①dnppe—dsis?—?ttlpJIb^ss^s(m/V\Q>l>IXISXluo」J*1。①-①SJzqsrqs〒ljqsrq>lspuelp>l?q>ls"5>rqppueHu>rqDHHo>l?cp>lpueHX.qDHHX.qsx①」①-CMq>ls、qsrcooaDu>rqsxEo上ExsrJZqsrqsrJXNxowwTe.q&^xIxqsx七①一①sse/V\Q>l>IXISXm①匸①一eao(B?!?lt;R外他?。外?ml'waw濟?nlpaH濟:QIP狐)Bpsx」O40寸nnvzlIJJclmqIwetsuo。pppCPJZ<D-q£」<Dl-e.Ob尺怎蟹y州酣qfjxz」O40nnvdLJJclzqlugsuo。ppeqsx(D_qel」(Dl-eo只怎蘇痂、qx」OJInnvzlIJJcliqIWElsuo。ppeqsx<D-q£」<Dl-e匚只蕃品a-8X9stz3MgqvA。代MZ、BBuz:?w二二尼M44補qsf7只wfo獵、0寸只/蕙Y州酣qfQN」OJie莪nnvzlUJCJ卜qlumnsuooppeqs「3(6、e-sozB」OJfes.£ln<岀09q1U逅二suoupppqs「2q2@(6H」O4nn<岀0sqlugsuouppeqs「2qel」E_P、尼M44Mqsf」x」O4ennvdLLJcl寸q1W21SUO0ppecp>|(D_qel」(ul-e。0只器聲ZW無。altertablejsbaddconstraintb8DEFAULT'無'forzwYhb:mnY123456'altertableyhbaddconstraintb9DEFAULT,123456,formm5)規(guī)則和check約束Xsb:zxf圍在0-160之間。Kcb:kkxq圍在1-8之間,xf在1-15之間Cjb:cj圍在0-100之間Xsb:zxf在0-160之間。altertablexsbaddconstraintpk_lcheck(zxfbetween0and160)Kcb:kkxq在1-8之間,xf在1-15之間altertablekcbaddconstraintpk_2check(kkxqbetween1and8)altertablekcbaddconstraintpk_3check(xfbetween1and15)Cjb:cj在OJOO之間altertablecjbaddconstraintpk_4check(cjbetween0and100)6)參照關系cjb(xh)參照xsb(xh)cjb(kch)參照kcb(kch)yhb(yhbh)參照xsb(xh)和jsb(jsbh)-必須用觸發(fā)器實現(xiàn)skb(jsbh)參照jsb(jsbh)skb(bj)參照xsb(bj)skb(kch)參照kcb(kch)cjb(xh)—xsb(xh)altertablecjbaddconstraintfk_lforeignkey(xh)referencesxsb(xh)cjb(kch)—kcb(kch)altertablecjbaddconstraintfk_2foreignkey(kch)referenceskcb(kch)skb(jsbh)—jsb(jsbh)altertableskbaddconstraintfk_4foreignkey(jsbh)referencesjsb(jsbh)skb(kch)—kcb(kch)altertableskbaddconstraintfk_6foreignkey(kch)referenceskcb(kch)skb(bj)—xsb(bj)一用觸發(fā)器實現(xiàn)createtriggertlonskbforinsertasbeginifnotexists(select*fromxsbwherebj=(selectbjfrominserted))beginprint插入的班級不存在!rollbacktransactionendendyhb(yhbh)—xsb(xh)J[]jsb(jsbh)-必須用觸發(fā)器實現(xiàn)altertriggert2onyhbforinsertbeginifnotexists(select*fromxsbwherexh=(selectyhbhfrominserted))beginifnotexists(select*fromjsbwherejsbh=(selectyhbhfrominserted))beginprint'插入的編號出錯!'rollbacktransact!onendendendend(4) 用戶自定義函數(shù)(把sql語句貼在下面)(5) 用戶自定義存儲過程根據(jù)學號查詢學生的選課情況(把sql語句貼在下面)CREATEPROCEDURExhcxxsxhchar(6)asbegin訐exists(select*fromcjbwherexh=xh)select*fromcjbwherexh=xhelseprint'無此學生選課信息'end根據(jù)課程號查詢課程的選修情況(把sql語句貼在下面)CREATEPROCEDUREkchcxxkkchchar(3)asbeginifexists(select*fromcjbwherekch=kch)select*fromcjbwherekch=kchelseprint'無此課程選課信息'end根據(jù)教師編號查詢授課情況(把sql語句貼在下面)CREATEPROCEDUREjsbhcxskjsbhchar(6)asbegin訐exists(select*fromskbwherejsbh=jsbh)select*fromskbwherejsbh=jsbhelseprint'無此教師授課信息'end根據(jù)班級查詢該班級的授課情況(把sql語句貼在下面)CREATEPROCEDUREbjcxskbjvarchar(50)asbeginifexists(select*fromskbwherebj=bj)select*fromskbwherebj=bjelseprint'無此班級授課信息’end根據(jù)課程號號查看授課情況(把sql語句貼在下面)CREATEPROCEDUREkchcxskkchchar(3)asbegin訐exists(select*fromskbwherekch=kch)selectselect*fromskbwherekch=kchelseprint'無此課程授課信息'end5)課程成績分布統(tǒng)計。存儲過程名稱TJ_CJ。參數(shù):課程號(kch1實現(xiàn)功能:把成績表(CJB)中指走課程按照分數(shù)段人數(shù)進行統(tǒng)計,放入統(tǒng)計表(TJB)中。編寫思路:(1)清空TJB表,插入一行所有分數(shù)段的人數(shù)都為0的所要查找的課程的記錄。(2)判斷所查的課程號在CJB表中是否有記錄,若有則查找出各個分數(shù)段的人數(shù)并且更新到TJB表中。方】i—:createPROCEDURE[dbo].[TJ_CJ](kchchar⑶)astruncatetableTJBinsertintoTJBvalues(kchi00/0r0/0)ifexists(select*fromCJBwhereKCH=kch)beginupdateTJBsetRS1=(selectcount(*)fromCJBwhereCJ>=0andCJ<60andKCH=kch)updateupdateTJBsetRS2=(selectcount(*)fromCJBwhereCJ>=60andCJ<70beginbeginandKCH=kch)updateTJBsetRS3=(selectcount(*)fromCJBwhereCJ>=70andCJ<80andKCH=kch)updateTJBsetRS4=(selectcount(*)fromCJBwhereCJ>=80andCJ<90andKCH=kch)updateTJBsetRS5=(selectcount(*)fromCJBwhereCJ>=90andCJ<=1OOandKCH=kch)endexecTJ^CJlOl1方法二:如果選擇統(tǒng)計的課程在成績表(CJB)已經(jīng)存在,可以采用下列代碼完成統(tǒng)計功能,并且代碼效率較高。但CJB表中沒有所選擇的課程記錄,執(zhí)行的結(jié)果是各個分數(shù)段的人數(shù)為nullocreateprocedure[dbo].[TJ_CJ](KCHvarchar(3))asbeginbegindeletefromTJBinsertintoTJB(KCH,RSl/RS2rRS3/RS4/RS5)selectKCH,sum(casewhenCJ<60then1else0end),sum(casewhenCJ >=60 andCJ <= 69then1else0end),sum(casewhenCJ >=70 andCJ <= 79then1else0end),sum(casewhenCJ >=80 andCJ <= 89then1else0end),sum(casewhenCJ >=90 andCJ <= 100then1else0end)fromCJBwhereKCH=KCHend(6)觸發(fā)器1)實現(xiàn)yhb(yhbh)—xsb(xh)和jsb(jsbh)參照關系3、須用觸發(fā)器實現(xiàn)(把sql語句貼在下面)createtriggert2onyhbforinsertasififnotexists(select*fromxsbwherexh=(selectyhbhfrominserted))beginbeginbeginifnotexists(select*fromjsbwherejsbh=(selectyhbhfrominserted))beginprint插入的編號出錯!'rollbacktransact!onendendend)實現(xiàn)更新學生信息和老師信息的時候用戶表中的信息可以實現(xiàn)級聯(lián)修改。(把sql語句貼在下面)createtriggerxsb_tiggeronxsbforupdateasifupdate(xh)declarenew^numvarchar(6)/old_numvarchar(6)selectnew_num=xhfrominsertedselectold_num=xhfromdeletedupdateyhbsetyhbh=new_numwhereyhbh=old_numendcreatetriggerjsbjiggeronjsbforupdateasifupdate(jsbh)begindeclarenew_numvarchar(6),old_numvarchar(6)selectnew_num=jsbhfrominsertedselectold_num=jsbhfromdeletedupdateyhbsetyhbh=new_numwhereyhbh=old_numend)當刪除學生信息的時候選課記錄同時刪除,同時用戶表的記錄也刪除。(把sql語句貼在下面)createtriggerxsb_dlonxsbfordeletebegindeclarexhvarchar(G)selectxh=xhfromdeleteddeletefromcjbwherexh=xhdeletefromyhbwhereyhbh=xhend)當刪除老師信息的時彳唉授課記錄也同時刪除,同時用戶表中的記錄也刪除。(把sql語句貼在下面)createtriggerjsb_deletiggeronjsbfordeleteasbegindeclarejsbhvarchar(6)selectjsbh=jsbhfromdeleteddeletefromskbwherejsbh=jsbhdeletefromyhbwhereyhbh=jsbhend)增加成績時成績大于60應該給學生總學分加上這門課的學分。刪除成績的時候,如果成績小于60分,應該把學生的總學分去掉這門課的學分。(把sql語句貼在下面)createtriggercjb」nsetiggeroncjbforinsertasbegindeclarexhvarchar(6)declarecjintdeclarexfintdeclarekchchar(3)selectselectxh=xhrcj=cj/kch=kchfromdeletedselectselectxh=xhrcj=cj/kch=kchfrominsertedselectxf=xffromkcbwherekch=kchif(cj>=60)beginupdatexsbsetzxf二zxf+xfwherexh=xhendendcreatetriggercjb^deletiggeroncjbfordeleteasbegindeclarexhvarchar(6)declarecjintdeclarexfintdeclarekchchar(3)
selectxf=xffromkcbwherekch=kchif(cj>=60)beginupdatexsbsetzxf=zxf-xfwherexh=xhendend)通過insteadof觸發(fā)器實現(xiàn)對學生選課情況視圖(學號-課程號.課程名,成績,學分,總學分,教師)的插入數(shù)據(jù)操
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年淮南師范學院單招職業(yè)技能測試題庫新版
- 2025年黑龍江交通職業(yè)技術學院單招職業(yè)適應性測試題庫完美版
- 第七單元《習作:-即景》教學設計-2024-2025學年五年級上冊語文統(tǒng)編版
- 2025年貴陽職業(yè)技術學院單招職業(yè)適應性測試題庫完整
- 2025年河北化工醫(yī)藥職業(yè)技術學院單招職業(yè)適應性測試題庫完整版
- 2025年度電梯門套智能化門禁系統(tǒng)安裝合同
- 2025年度互聯(lián)網(wǎng)行業(yè)勞務派遣與技術研發(fā)合同
- 2025年度房地產(chǎn)投資信托基金房屋回購安排協(xié)議
- 2025年度房屋出售代理市場拓展協(xié)議
- 2025年度公司停車場車輛停放管理及賠償協(xié)議
- 焊接與熱切割作業(yè)實操培訓
- 《學習地圖》課件
- 日本留學中介簽約合同
- 《地區(qū)智能電網(wǎng)調(diào)度技術支持系統(tǒng)應用功能規(guī)范》
- 框架借款協(xié)議書(2篇)
- 物業(yè)防恐防暴演練課件
- DB12-T 3034-2023 建筑消防設施檢測服務規(guī)范
- 銷售人員崗位職責培訓
- 2024-2025學年九年級化學人教版上冊檢測試卷(1-4單元)
- 2024年遼寧省鞍山岫巖滿族自治縣事業(yè)單位招聘(150人)歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 金屬冶煉安全生產(chǎn)實務注冊安全工程師考試(初級)試題與參考答案
評論
0/150
提交評論