收藏 分享(赏)

题库管理系统.doc

上传人:cjc2202537 文档编号:6583425 上传时间:2019-04-18 格式:DOC 页数:22 大小:185KB
下载 相关 举报
题库管理系统.doc_第1页
第1页 / 共22页
题库管理系统.doc_第2页
第2页 / 共22页
题库管理系统.doc_第3页
第3页 / 共22页
题库管理系统.doc_第4页
第4页 / 共22页
题库管理系统.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

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

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

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

4、:选择表存放的是测验卷和课程习题之间的联系。试卷号和课程号是选择表的唯一标识,设为主码。数据结构:解答 组 成:课程号,试卷号,学号,记录号,成绩说 明:解答表存放的是学生解答测验卷的相关信息。课程号、试卷号和学号可以唯一标识解答信息,设为主码;记录号存放学生解答测验卷的次数;成绩存放每次学生测验的成绩。数据结构:题型组 成:题名,题号,类别名说 明:题型表存放的是学生所做的习题的相关信息。题号可以作为唯一标识解答信息,设为主码。学号 姓名学生性别 系别任课教师职工号号姓名 系别 性别测验卷题量 测验时间 难度 课程时间试卷名试卷号课程习题课程号 章号 知识点 难度 题号 答案3 数据库概念设

5、计3.1、局部概念模式设计在系统界定范围内,将静态数据对象或逻辑上具有独立意义的概念抽象为实体集,如学生、任课教师、课程负责人、测验卷、课程习题、课程等。从数据字典的角度来看,可将数据源点和数据结构作为实体集,而把数据处理抽象为实体间的联系。3.1.1 实体集的属性:节号课程课程号 课程名 章号 节号M3.1.2、E-R 图表示数据库的概念结构下图为课程责任人、任课教师、学生、课程、课程习题、测试卷实体集之间的关系 E-R 图职工号 姓名 性别 系别任课老师设定测试卷试卷号 课程名试卷名 题量 测试时间 难度1任课老师和测试卷的 E-R 图职工号 姓名 性别 系别M姓名 性别 系别任课老师教授

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

7、图3.2 全局概念模式 E-R 图课程习题课程号章号建立日期难度题号答案选择测试卷 设定成绩解答学生任教老师教授课程职工号姓名性别系别课程号课程名设定题型题类别题号题名授课NMNMNMM 1M1M1节号四. 数据库逻辑设计4.1 数据模型映射4.1.1 由 E-R 图导出一般关系模型的四条原则原则 1:E-R 图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。原则 2:E-R 图中的从实体及相应的“的” 联系变换为一个关系,从实体的属性加上主体关系的主码构成这个关系的属性。如果“的”联系是 1:1 的,则以主实体关系的主码(作为外来码)为这个关系的主码;如果“的

8、”联系是 1:M 的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以相互区分的属性组,组成该关系的主码。原则 3:1:M 联系通过在“多”实体关系中增加相联系的“1” 实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。原则 4:M:M 联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。将数据库概念模式映射为数据库逻辑模式,也就是把 E-R 模型转换为关系模型。既分别将每个实体集转换为关系,再将每个联系集也转换为关系。将实体集映射为关系:学生(学号,学生姓名),学号是主码。授课(课程

9、号,职工号,,学号),(课程号,职工号,学号) 是主码。任课教师(职工号,姓名,性别 ),职工号是主码。测验卷(试卷号,试卷名,课程号,题量,测试时间,难度) ,(试卷号,试卷名,课程号)是主码。课程习题(课程号,章号,节号,建立日期,难度,题号,题目内容,答案),(课程代号,章号,节号,建立日期,难度,题号)是主码。选择(试卷号,课程号,题目内容),(试卷号,课程号)是主码。解答(课程号,试卷号,学号,记录号,成绩),(课程号,试卷号,学号,记录号)是主码。题型(题名,题号,题类别),(题名,题号)是主码。章(章号,章名,章内容),(章号)是主码。节(节号,节名,节内容),(节号)是主码包含

10、(章号,节号),(章号,节号)是主码。4.2 建立数据库题库管理系统的数据库表的结构说明表名 学生信息(SB)属性名 别名 类型 长度 是否为空 说明学号 Sno char 12 主码姓名 Sname char 10性别 Sex char 2系别 Sdept char 10表名 授课信息(SK)属性名 别名 类型 长度 是否为空 说明课程号 Cno char 10职工号 Zgno char 10学号 Sno char 10主码表名 任课教师信息(RKJS)属性名 别名 类型 长度 是否为空 说明职工号 Zgno char 10 主码姓名 Zname char 10性别 Sex char 2系别

11、 Sdept char 10表名 课程习题信息(KCXT)属性名 别名 类型 长度 是否为空 说明课程号 Cno char 10章节号 Zno char 10建立日期 Jr datetime难度 Nd char 10题号 Tno char 10主码题目内容 Tn varchar 50答案 Ans varchar 50表名 选择信息(XD)属性名 别名 类型 长度 是否为空 说明试卷号 Sjno char 10课程号 Cno char 10主码试卷内容 Snr varchar 2000表名 解答信息(JD)属性名 别名 类型 长度 是否为空 说明课程号 Cno char 10试卷号 Sjno c

12、har 10学号 Sno char 12主码成绩 Grade int 3表名 题型信息(TD )属性名 别名 类型 长度 是否为空 说明题号 Tno char 10 主码题名 Tname char 10题类别 Tlb char 6表名 测验卷信息(CYJ)属性名 别名 类型 长度 是否为空 说明试卷号 SJno char 10课程号 Cno char 10试卷名 SJname char 2主码题量 T1 int 2测试时间 Ttime char 10难度 Nd char 10表名 题型信息(TX)属性名 别名 类型 长度 是否为空 说明题号 TXno char 10 主码题名 TXname v

13、archar 50类别名 LBM char 20五物理设计5.1 建立数据库create database 题库管理5.2 建表1.学生表create table SB (Sno char(10) primary key, Sname char(10), Sex char(2), Sdept char(10), ) 2.任课老师create table RKJS (Tno char(10) primary key, Tname char(10), Sex char(2), Sdept char(10) ) 3.课程表create table Kc (kcno char(10), primary

14、 key,kname char(10), kzhang char(10), )4.课程习题表create table KCXT ( Cno char(10), Zno char(10),Jr datetime,Nd char(10), Tno int identity(1,1),Tn varchar(50),Answer char(50), primary key (Cno,Zno,Nd,Jr,Tno), foreign key(KCno) references KC(KCno) ) 5 测试卷表create table CYJ ( SJno char(10), Cno char(10), S

15、Jname char(10), Tl char(2), Ttime char(10), Nd char(10), primary key(SJno,Cno,SJname), foreign key(KCno) references KC(KCno) ) 6 授课表create table SK (kcno char(10), Tno char(10), Sno char(10), primary key(kcno,Tno,Sno), foreign key (kcno) references KC(kcno), foreign key (Tno) references RKJS(Tno) ,

16、foreign key (Sno) references SB(Sno) ) 7.选择表create table XD( SJno char(10), Kcno char(10),Tmnr char(20), primary 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 (K

17、cno) references KC(Kcno), foreign key (Sno) references SB(Sno) ) 9.题型create table TX(TXno char(10) primary key,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

18、Grade from JD where Cno=1 and Sjno=0203040506 and Sno=201406070120 and Jlno=1 查询题目的答案:select Ans from KCXT where Cno=1 and 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 定义存储过程5.4.1 查询指定课程各

19、种题型create procedure findTypeTno char(10) Tname char(10) Tlb char(6)as select Tno=Tno,Tname=Tname,Tlb=Tlbfrom TDdeclare Tno Tname Tlb5.4.2 查询各章节的习题数量create procedure findNumCno char(10) Zno char(10)asbeginif(select count(*) from SK where Cno=Cno)0beginif(select count(*) from KCXT where Cno=Cnoand Zno

20、=Zno)0select count(Zno) from SK,KCXT where Cno=Cno and Zno=Znoand SK.Cno=KCXT.Cno elseprint章节号+Zno 不存在endelseprint课程号+Cno+ 不存在 end5.5 创建视图及查询create view txasselect Cno,Tno,Tname,Tlbfrom KCXT,TDwhere KCXT.Tno=TD.Tnoselect*from txwhere Cno=15.7 每个习题都有习题的建立日期,其值为系统时间习题增加建立日期insert into KCXTvalues(03,01

21、,GETDATE(),简单 ,1+1,2)5.8 触发器可以自动抽题组成套题,习题每抽取一次,要使习题的抽取次数加 1(用触发器实现);抽题属于 select 操作,没有对应的触发器,所以可以建立一个表记录抽取的套题,利用这个表的 insert 触发器更新习题库表中习题被抽取的次数。触发器:所有的习题存放在表 XTbank(num,XT)中,(num)为抽取的题号,XT 为(num)抽取的题型,被抽取的习题存放在表 new XTbank(nums)中Create trigger addXTbankOn newXTbankFor insertAs Begin transaction /开始检查U

22、pdate XTbankSet XT=XT+1Where num in(selset nums From inserted)Commit transaction /执行Go 5.9 参照完整性约束5.9.1 添加唯一值约束alter table SBadd constraint un_Sno unique(Sno);alter table RKJSadd constraint un_Zgno unique(Zgno);alter table KCXTadd constraint un_Cno unique(Cno);alter table CYJadd constraint un_Sjno u

23、nique(Sjno);5.9.2 添加主键约束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 table KCXTadd constraint pk_KCXT primary key(Cno,Zno)alter table TDadd constraint pk_TD primary key(Tno)alter

24、 table CYJadd constraint pk_CYJ primary key(Sjno,Cno)5.9.3 添加外键约束alter table SKadd constraint fk_Sno foreign key (Sno) references SB(Sno);alter table SKadd constraint fk_Cno foreign key (Cno) references KCXT(Cno);alter table SKadd constraint fk_Zgno foreign key (Zgno) referencesRKJS(Zgno);alter tabl

25、e 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 KCXT(Cno);alter table JDadd constraint fk_Sjno foreign key (Sjno) references CYJ(Sjno);alter t

26、able JDadd constraint fk_Sno foreign key (Sno) references SB(Sno);5.9.4 为属性添加范围约束alter table SBadd cconstraint ck_Sex check(Sex=男);alter table RKJSadd cconstraint ck_Sdept check(Sdept=数学系);alter table KCXTadd cconstraint ck_Nd check(Nd=难);5.9.5 为属性添加集合约束alter table SBadd cconstraint ck_Sex check(Sex

27、 in (男,女);alter table RKJSadd cconstraint ck_Sdept check(Sdept in(数学系, 计算机系,物理系);alter table KCXTadd cconstraint ck_Nd check(Nd in(难,较难,简单);5.9.6 为属性添加 like 约束alter table SB add constraint ck_Sname check(Sname like %王) ;alter table RKJSadd constraint ck_Zname check(Zname like %王) ;5.9.7 为属性添加默认值alte

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

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报