题库管理系统方案.doc

上传人:夺命阿水 文档编号:8776 上传时间:2022-06-22 格式:DOC 页数:21 大小:175KB
返回 下载 相关 举报
题库管理系统方案.doc_第1页
第1页 / 共21页
题库管理系统方案.doc_第2页
第2页 / 共21页
题库管理系统方案.doc_第3页
第3页 / 共21页
题库管理系统方案.doc_第4页
第4页 / 共21页
题库管理系统方案.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《题库管理系统方案.doc》由会员分享,可在线阅读,更多相关《题库管理系统方案.doc(21页珍藏版)》请在课桌文档上搜索。

1、 数据库课程设计题库管理系统1 需求分析学校的题库管理系统l 实现课程、题型等根本信息的管理;l 能管理每一门课程的题型,每门课程的章节;l 实现习题信息的管理,能按题型或章节录入每门课程的习题;l 定义存储过程查询指定课程各种题型和各章节的习题数量;l 定义视图查询各门课程使用的题型;l 设每个习题有一个题号,题号由系统自动生成,要求从1开设编号;l 设每个习题都有习题的建立日期,其值为系统时间,请定义实现用默认实现;l 定义存储过程实现查询各门课程、各种题型的习题数量;l 可以自动抽题组成套题,习题每抽取一次,要使习题的抽取次数加1用触发器实现;l 建立数据库相关表之间的参照完整性约束。2

2、 任务概述2.1、数据字典数据结构:学生组 成:学号,性别,系别说 明:学生表所存放的是学生的信息,学号为学生的用户名,是唯一的,设为主码。数据结构:任课教师组 成:职工号,性别,系别说 明:任课教师表所存放的是任课教师的信息,职工号为任课教师的用户名,是唯一的,设为主码。数据结构:课程组 成:课程名,课程号,章节号说 明:课程表存放课程的相关信息,课程号是课程的唯一标识,设为主码。数据结构:授课组 成:课程号,教师号,学号 说 明:授课表存放任课教师和学生之间的授课关系。课程号,教师号和学号属性组是授课表的唯一标识,设为主码。数据结构:测验卷组 成:试卷号,试卷名,课程号,题量,测试时间,难

3、度说 明:测验卷的详细信息填入此表中。试卷号存放的是对测验卷一个编号,课程号是课程科目的编码,试卷号和课程号的属性组被设为主码;试卷名存放的是测验卷的主题名;题目容存放每一题容,与习题库发生联系;题量存放的是测验卷一共有多少题目。数据结构:课程习题组 成:课程号,章节号,建立日期,难度,题号,答案说 明:课程习题的详细容存放在此表中。课程代号存放的是课程科目的编码;章节号存放的是对章节的编号;建立日期存放的是习题的上传日期;难度存放的是每一题的难度系数;题号存放的是每一道题的题目编号;课程代号,章节号,难度和题号的属性组设为主码。数据结构:选择 组 成:试卷号,课程号,题目容说 明:选择表存放

4、的是测验卷和课程习题之间的联系。试卷号和课程号是选择表的唯一标识,设为主码。数据结构:解答 组 成:课程号,试卷号,学号,记录号,成绩说 明:解答表存放的是学生解答测验卷的相关信息。课程号、试卷号和学号可以唯一标识解答信息,设为主码;记录号存放学生解答测验卷的次数;成绩存放每次学生测验的成绩。数据结构:题型组 成:题名,题号,类别名说 明:题型表存放的是学生所做的习题的相关信息。题号可以作为唯一标识解答信息,设为主码。21 / 213 数据库概念设计3.1、局部概念模式设计在系统界定围,将静态数据对象或逻辑上具有独立意义的概念抽象为实体集,如学生、任课教师、课程负责人、测验卷、课程习题、课程等

5、。从数据字典的角度来看,可将数据源点和数据结构作为实体集,而把数据处理抽象为实体间的联系。:任课教师性别姓名学号系别学生性别系别姓名职工号号课程时间难度测验时间题量试卷名试卷号测验卷课程习题答案题号难度知识点章号课程号节号节号课程名章号课程号课程、E-R图表示数据库的概念结构下列图为课程责任人、任课教师、学生、课程、课程习题、测试卷实体集之间的关系E-R图M职工号姓名性别系别任课教师设定测试卷试卷号课程名试卷名题量测试时间难度1 任课教师和测试卷的E-R图节号姓名性别系别任课教师教授课程课程号章号职工号课程名1M任课教师和课程的E-R图M职工号性别姓名系别任课教师教授学生学号姓名性别系别N任课

6、教师和学生的E-R图节号课程号试卷名题量测试时间难度试卷号测试卷选择课程习题课程号章号建立日期难度题号答案MN 测试卷和课程习题的E-R图题 量难 度测试时间课程号题量试卷号试卷名学号姓名系别姓名 解答 测试卷NM 学生学生和测试卷的E-R图1职工号姓名性别系别任教教师设定题型题名题号类别名M任教教师和题型的E-R图章内容章名章号 章1 包含M节内容节名节号 节 章和节的E-R图3.2全局概念模式E-R图节号题目内容系别性别姓名学号难度测试时间题量课程号试卷号试卷名课程习题课程号章号建立日期难度题号答案选择测试卷设定成绩解答学生任教教师教授课程职工号姓名性别系别课程号课程名设定题型题类别题号题

7、名授课NMNMNMM1M1M1四. 数据库逻辑设计4.1数据模型映射原那么1:E-R图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。原那么2:E-R图中的从实体与相应的“的联系变换为一个关系,从实体的属性加上主体关系的主码构成这个关系的属性。如果“的联系是1:1的,那么以主实体关系的主码作为外来码为这个关系的主码;如果“的联系是1:M的,那么以主实体关系的主码加上同一主实体个体联系的不同附属实体个体赖以相互区分的属性组,组成该关系的主码。原那么3:1:M联系通过在“多实体关系中增加相联系的“1实体关系的主码与联系本身的属性来表达。其中“1实体主码为外来码。原那

8、么4:M:M联系转换成一个独立的关系,被联系实体关系的主码作为外来码和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。将数据库概念模式映射为数据库逻辑模式,也就是把E-R模型转换为关系模型。既分别将每个实体集转换为关系,再将每个联系集也转换为关系。将实体集映射为关系:学生(学号,学生),学号是主码。授课(课程号,职工号,,学号),(课程号,职工号,学号)是主码。任课教师(职工号,性别),职工号是主码。测验卷(试卷号,试卷名,课程号,题量,测试时间,难度),试卷号,试卷名,课程号是主码。课程习题课程号,章号,节号,建立日期,难度,题号,题目容,答案,课程代号,章号,节号,建立

9、日期,难度,题号是主码。选择试卷号,课程号,题目容,试卷号,课程号是主码。解答课程号,试卷号,学号,记录号,成绩,课程号,试卷号,学号,记录号是主码。题型题名,题号,题类别,题名,题号是主码。章章号,章名,章容,章号是主码。节节号,节名,节容,节号是主码包含章号,节号,章号,节号是主码。4.2建立数据库题库管理系统的数据库表的结构说明表名学生信息(SB)属性名别名类型长度是否为空说明学号Snochar12主码Snamechar10性别Sexchar2系别Sdeptchar10表名授课信息(SK)属性名别名类型长度是否为空说明课程号Cnochar10主码职工号Zgnochar10学号Snocha

10、r10表名任课教师信息(RKJS)属性名别名类型长度是否为空说明职工号Zgnochar10主码Znamechar10性别Sexchar2系别Sdeptchar10表名课程习题信息(KCXT)属性名别名类型长度是否为空说明课程号Cnochar10主码章节号Znochar10建立日期Jrdatetime难度Ndchar10题号Tnochar10题目容Tnvarchar50答案Ansvarchar50表名选择信息XD)属性名别名类型长度是否为空说明试卷号Sjnochar10主码课程号Cnochar10试卷容Snrvarchar2000表名解答信息(JD)属性名别名类型长度是否为空说明课程号Cnoch

11、ar10主码试卷号Sjnochar10学号Snochar12成绩Gradeint3表名题型信息TD属性名别名类型长度是否为空说明题号Tnochar10主码题名Tnamechar10题类别Tlbchar6表名测验卷信息(CYJ)属性名别名类型长度是否为空说明试卷号SJnochar10主码课程号Cnochar10试卷名SJnamechar2题量T1int2测试时间Ttimechar10难度Ndchar10表名题型信息TX属性名别名类型长度是否为空说明题号TXnochar10主码题名TXnamevarchar50类别名LBMchar20五物理设计5.1建立数据库 create database 题库

12、管理5.2建表1.学生表createtable SB (Sno char(10)primarykey,Sname char(10),Sex char(2),Sdept char(10),)2.任课教师createtable RKJS (Tno char(10)primarykey,Tname char(10),Sex char(2), Sdept char(10)3.课程表createtable Kc (kcno char(10),primarykey, kname char(10), kzhang char(10),)4.课程习题表createtable KCXT ( Cno char(10

13、), Zno char(10),Jr datetime,Nd char(10),Tno int identity(1,1),Tn varchar(50),Answer char(50),primarykey(Cno,Zno,Nd,Jr,Tno),foreign key(KCno) references KC(KCno) )5测试卷表createtable CYJ ( SJno char(10), Cno char(10), SJname char(10),Tl char(2), Ttime char(10), Nd char(10),primarykey(SJno,Cno,SJname),fo

14、reign key(KCno) references KC(KCno) )6授课表createtable SK (kcno char(10), Tno char(10), Sno char(10),primarykey(kcno,Tno,Sno),foreignkey(kcno)references KC(kcno),foreignkey(Tno)references RKJS(Tno),foreignkey(Sno)references SB(Sno)7.选择表create table XD( SJno char(10), Kcno char(10),Tmnr char(20), prima

15、ry key(SJno,Cno,), foreign key (Kcno) references KC(Kcno) ) 8.解答表create table JD ( Kcno char(10), SJno char(10), Sno char(10), Grade char(4), primary key (Kcno,SJno,Sno,JLno), foreign key (Kcno) references KC(Kcno), foreign key (Sno) references SB(Sno) ) 9.题型create table TX(TXno char(10) primarykey,

16、TXname varchar(50),LBM char(20)5.3建立索引和进展数据操作create index index_SB on SB(Sno); create index index_RKJS on RKJS(Zgno); create index unique index_CYJ on CYJ( SJno, Cno,SJname);查询学生成绩:select Grade from JD where Cno=1 and Sjno=0203040506 and Sno=0 and Jlno=1 查询题目的答案:select Ans from KCXT where Cno=1 and

17、Zno=第一章and Zsddh=1 and Nd=简单and Tno=1 查询测验卷:select * from CYJ,KCXT where CYJ.Cno=KCXT.Cno and SJno=2009001 and Cno=1 and SJname=第一次测卷and Ttime=200906125.4定义存储过程create procedure findType Tno char(10) Tname char(10) Tlb char(6) as select Tno=Tno,Tname=Tname,Tlb=Tlb from TD declare Tno Tname Tlbcreate

18、procedure findNum Cno char(10) Zno char(10) as begin if(select count(*) from SK where Cno=Cno)0 begin if(select count(*) from KCXT where Cno=Cno and Zno=Zno)0 select count(Zno) from SK,KCXT where Cno=Cno and Zno=Zno and SK.Cno=KCXT.Cno else print章节号+Zno不存在 end else print课程号+Cno+不存在 end5.5创立视图与查询crea

19、teviewtxasselectCno,Tno,Tname,TlbfromKCXT,TDwhereKCXT.Tno=TD.Tnoselect*fromtxwhereCno=15.7每个习题都有习题的建立日期,其值为系统时间习题增加建立日期insertintoKCXTvalues(03,01,GETDATE(),简单,1+1,2)5.8触发器可以自动抽题组成套题,习题每抽取一次,要使习题的抽取次数加1用触发器实现;抽题属于select操作,没有对应的触发器,所以可以建立一个表记录抽取的套题,利用这个表的insert触发器更新习题库表中习题被抽取的次数。触发器:所有的习题存放在表XTbank(nu

20、m,XT)中,(num)为抽取的题号,XT为(num)抽取的题型,被抽取的习题存放在表new XTbank(nums)中Create trigger addXTbankOn newXTbankFor insertAs Begin transaction /开场检查Update XTbankSet XT=XT+1Where num in(selset nums From inserted)Commit transaction /执行Go 5.9参照完整性约束alter table SBadd constraint un_Sno unique(Sno);alter table RKJSadd co

21、nstraint un_Zgno unique(Zgno);alter table KCXTadd constraint un_Cno unique(Cno);alter table CYJadd constraint un_Sjno unique(Sjno);alter table SBadd constraint pk_SB primary key(Sno)alter table SKadd constraint pk_SK primary key(Cno)alter table RKJSadd constraint pk_RKJS primary key(Sno,Cno)alter ta

22、ble KCXTadd constraint pk_KCXT primary key(Cno,Zno)alter table TDadd constraint pk_TD primary key(Tno)alter table CYJadd constraint pk_CYJ primary key(Sjno,Cno)alter table SKadd constraint fk_Sno foreign key (Sno) references SB(Sno);alter table SKadd constraint fk_Cno foreign key (Cno) references KC

23、XT(Cno);alter table SKadd constraint fk_Zgno foreign key (Zgno) referencesRKJS(Zgno);alter table XDadd constraint fk_Sjno foreign key (Sjno) references CYJ(Sjno);alter table XDadd constraint fk_Cno foreign key (Cno) references KCXT(Cno);alter table JDadd constraint fk_Cno foreign key Cno) references

24、 KCXT(Cno);alter table JDadd constraint fk_Sjno foreign key (Sjno) references CYJ(Sjno);alter table JDadd constraint fk_Sno foreign key (Sno) references SB(Sno);alter table SBadd cconstraint ck_Sex check(Sex=男);alter table RKJSadd cconstraint ck_Sdept check(Sdept=数学系);alter table KCXTadd cconstraint

25、 ck_Nd check(Nd=难);alter table SBadd cconstraint ck_Sex check(Sex in (男,女);alter table RKJSadd cconstraint ck_Sdept check(Sdept in(数学系,计算机系,物理系);alter table KCXTadd cconstraint ck_Nd check(Nd in(难,较难,简单);alter table SB add constraint ck_Sname check(Sname like %王);alter table RKJSadd constraint ck_Zn

26、ame check(Zname like %王);alter table SBadd constraint ck_Sex_default default (男) for Sex;alter table RKJSadd constraint ck_Sdept_default default (计算机系) for Sdept;六心得体会一星期半的数据库课程设计很快就过去了,虽然只有短短一星期半的时间但是自己学会了很多东西,特别复习了自己所学过的相关数据库知识,进一步了解了数据库的应用过程,增强了自己的动手能力。当然也遇到了很多问题,到现在都还有些不清楚。数据库设计主要讨论数据库设计的方法和步骤,每个设计阶段都有各自的目标、方法和应注意的事项。王冲的负责局部主要为数据字典的编写,存储结构和参照完整性约束三局部,其中,数据字典是此次设计的根底,需要对课题进展分析,确认其实体和属性,存储过程也是按教师上课讲的,完整性约束那么是参照教师给的文件进展编写,有的地方我也还是不清楚。吕瑞负责的是ER图和建表,触发器局部,根据数据字典分析之间的关系,做出ER图,根据所创立的数据库表,创立数据库,由触发器实现去更加完善题库。高飞宏负责的是创立数据库表,建立索引以与数据的操作,和视图的建立,以与题号从一自动排序和建立日期的实现。总之,这次的课程设计让我们学到了很多有用的东西。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号