来源于网络《数据库课程设计》—题库管理系统1需求分析学校的题库管理系统实现课程、题型等基本信息的管理;能管理每一门课程的题型,每门课程的章节;实现习题信息的管理,能按题型或章节录入每门课程的习题;定义存储过程查询指定课程各种题型和各章节的习题数量;定义视图查询各门课程使用的题型;设每个习题有一个题号,题号由系统自动生成,要求从1开设编号;设每个习题都有习题的建立日期,其值为系统时间,请定义实现(用默认实现);定义存储过程实现查询各门课程、各种题型的习题数量;可以自动抽题组成套题,习题每抽取一次,要使习题的抽取次数加1(用触发器实现);建立数据库相关表之间的参照完整性约束。2任务概述2.1、数据字典数据结构:学生组成:学号,姓名,性别,系别说明:学生表所存放的是学生的信息,学号为学生的用户名,是唯一的,设为主码。数据结构:任课老师组成:职工号,姓名,性别,系别说明:任课老师表所存放的是任课老师的信息,职工号为任课老师的用户名,是唯一的,设为主码。数据结构:课程组成:课程名,课程号,章节号说明:课程表存放课程的相关信息,课程号是课程的唯一标识,设为主码。数据结构:授课组成:课程号,教师号,学号说明:授课表存放任课老师和学生之间的授课关系。课程号,教师号和学号属性组是授课表的唯一标识,设为主码。数据结构:测验卷来源于网络组成:试卷号,试卷名,课程号,题量,测试时间,难度说明:测验卷的详细信息填入此表中。试卷号存放的是对测验卷一个编号,课程号是课程科目的编码,试卷号和课程号的属性组被设为主码;试卷名存放的是测验卷的主题名;题目内容存放每一题内容,与习题库发生联系;题量存放的是测验卷一共有多少题目。数据结构:课程习题组成:课程号,章节号,建立日期,难度,题号,答案说明:课程习题的详细内容存放在此表中。课程代号存放的是课程科目的编码;章节号存放的是对章节的编号;建立日期存放的是习题的上传日期;难度存放的是每一题的难度系数;题号存放的是每一道题的题目编号;课程代号,章节号,难度和题号的属性组设为主码。数据结构:选择组成:试卷号,课程号,题目内容说明:选择表存放的是测验卷和课程习题之间的联系。试卷号和课程号是选择表的唯一标识,设为主码。数据结构:解答组成:课程号,试卷号,学号,记录号,成绩说明:解答表存放的是学生解答测验卷的相关信息。课程号、试卷号和学号可以唯一标识解答信息,设为主码;记录号存放学生解答测验卷的次数;成绩存放每次学生测验的成绩。数据结构:题型组成:题名,题号,类别名说明:题型表存放的是学生所做的习题的相关信息。题号可以作为唯一标识解答信息,设为主码。来源于网络学号姓名学生性别系别任课教师职工号号姓名系别性别测验卷题量测验时间难度课程时间试卷名试卷号课程习题课程号章号知识点难度题号答案课程课程号课程名章号3数据库概念设计3.1、局部概念模式设计在系统界定范围内,将静态数据对象或逻辑上具有独立意义的概念抽象为实体集,如学生、任课教师、课程负责人、测验卷、课程习题、课程等。从数据字典的角度来看,可将数据源点和数据结构作为实体集,而把数据处理抽象为实体间的联系。:节号节号来源于网络M3.1.2、E-R图表示数据库的概念结构下图为课程责任人、任课教师、学生、课程、课程习题、测试卷实体集之间的关系E-R图任课老师和测试卷的E-R图职工号姓名性别系别任课老师设定测试卷试卷号课程名试卷名题量测试时间难度1姓名性别系别任课老师教授课程课程号章号职工号课程名1M节号来源于网络职工号姓名性别系别M试卷号课程号题量题量测试时间难度任课老师和课程的E-R图任课老师和学生的E-R图测试卷和课程习题的E-R图任课教师教授学生学号姓名性别系别N课程号试卷名题量测试时间难度试卷号测试卷选择课程习题课程号章号建立日期难度题号答案MN节号来源于网络1试卷名测试卷解答学生学号姓名姓名系别N学生和测试卷的E-R图任教老师和题型的E-R图章和节的E-R图3.2全局概念模式E-R图职工号姓名性别系别任教老师设定题型题名题号类别名MM章号章名章内容章包含节节号节名节内容1M来源于网络试卷名试卷号课程号题量测试时间难度学号姓名性别系别题目内容课程习题课程号章号建立日期难度题号答案选择测试卷设定成绩解答学生任教老师教授课程职工号姓名性别系别课程号课程名设定题型题类别题号题名授课NMNMNMM1M1M1节号来源于网络四.数据库逻辑设计4.1数据模型映射4.1.1由E-R图导出一般关系模型的四条原则原则1:E-R图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。原则2:E-R图中的从实体及相应的“的”联系变换为一个关系,从实体的属性加上主体关系的主码构成这个关系的属性。如果“的”联系是1:1的,则以主实体关系的主码(作为外来码)为这个关系的主码;如果“的”联系是1:M的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以相互区分的属性组,组成该关系的主码。原则3:1:M联系通过在“多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。原则4:M:M联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。将数据库概念模式映射为数据库逻辑模式,也就是把E-R模型转换为关系模型。既分别将每个实体集转换为关系,再将每个联系集也转换为关系。将实体集映射为关系:学生(学号,学生姓名),学号是主码。授课(课程号,职工号,,学号),(课程号,职工号,学号)是主码。任课教师(职工号,姓名,性别),职工号是主码。测验卷(试卷号,试卷名,课程号,题量,测试时间,难度),(试卷号,试卷名,课程号)是主码。课程习题(课程号,章号,节号,建立日期,难度,题号,题目内容,答案),(课程代号,章号,节号,建立日期,难度,题号)是主码。选择(试卷号,课程号,题目内容),(试卷号,课程号)是主码。解答(课程号,试卷号,学号,记录号,成绩),(课程号,试卷号,学号,记录号)是主码。题型(题名,题号,题类别),(题名,题号)是主码。章(章号,章名,章内容),(章号)是主码。节(节号,节名,节内容),(节号)是主码包含(章号,节号),(章号,节号)是主码。4.2建立数据库来源于网络题库管理系统的数据库表的结构说明表名学生信息(SB)属性名别名类型长度是否为空说明学号Snochar12主码姓名Snamechar10性别Sexchar2系别Sdeptchar10表名授课信息(SK)属性名别名类型长度是否为空说明课程号Cnochar10主码职工号Zgnochar10学号Snochar10表名任课教师信息(RKJS)属性名别名类型长度是否为空说明职工号Zgnochar10主码姓名Znamechar10性别Sexchar2系别Sdeptchar10表名课程习题信息(KCXT)属性名别名类型长度是否为空说明课程号Cnochar10主码章节号Znochar10建立日期Jrdatetime难度Ndchar10题号Tnochar10题目内容Tnvarchar50答案Ansvarchar50表名选择信息(XD)属性名别名类型长度是否为空说明试卷号Sjnochar10主码课程号Cnochar10试卷内容Snrvarchar2000表名解答信息(JD)属性名别名类型长度是否为空说明课程号Cnochar10主码试卷号Sjnochar10来源于网络学号Snochar12成绩Gradeint3表名题型信息(TD)属性名别名类型长度是否为空说明题号Tnochar10主码题名Tnamechar10题类别Tlbchar6表名测验卷信息(CYJ)属性名别名类型长度是否为空说明试卷号SJnochar10主码课程号Cnochar10试卷名SJnamechar2题量T1int2测试时间Ttimechar10难度Ndchar10表名题型信息(TX)属性名别名类型长度是否为空说明题号TXnochar10主码题名TXnamevarchar50类别名LBMchar20五.物理设计5.1建立数据库createdatabase题库管理5.2建表1.学生表createtableSB(Snochar(10)primarykey,Snamechar(10),Sexchar(2),Sdeptchar(10),)2.任课老师createtableRKJS(Tnochar(10)primarykey,Tnamechar(10),来源于网络Sexchar(2),Sdeptchar(10))3.课程表createtableKc(kcnochar(10),primarykey,knamechar(10),kzhangchar(10),)4.课程习题表createtableKCXT(Cnochar(10),Znochar(10),Jrdatetime,Ndchar(10),Tnointidentity(1,1),Tnvarchar(50),Answerchar(50),primarykey(Cno,Zno,Nd,Jr,Tno),foreignkey(KCno)referencesKC(KCno))5测试卷表createtableCYJ(SJnochar(10),Cnochar(10),SJnamechar(10),Tlchar(2),Ttimechar(10),Ndchar(10),primarykey(SJno,Cno,SJname),foreignkey(KCno)referencesKC(KCno))6授课表createtableSK(kcnochar(10),Tnochar(10),Snochar(10),primarykey(kcno,Tno,Sno),来源于网络foreignkey(kcno)referencesKC(kcno),foreignkey(Tno)referencesRKJS(Tno),foreignkey(Sno)referencesSB(Sno))7.选择表createtableXD(SJnochar(10),Kcnochar(10),Tmnrchar(20),primarykey(SJno,Cno,),foreignkey(Kcno)referencesKC(Kcno))8.解答表createtableJD(Kcnochar(10),SJnochar(10),Snochar(10),Gradechar(4),primarykey(Kcno,SJno,Sno,JLno),foreignkey(Kcno)referencesKC(Kcno),foreignkey(Sno)referencesSB(Sno))9.题型createtableTX(TXnochar(10)primarykey,TXnamevarchar(50),LBMchar(20))5.3建立索引和进行数据操作createindexindex_SBonSB(Sno);createindexindex_RKJSonRKJS(Zgno);createindexuniqueindex_CYJonCYJ(SJno,Cno,SJname);查询学生成绩:selectGradefromJD查询题目的答案:selectAns来源于网络fromKCXTwhereCno=1andZno=第一章andZsddh=1andNd=简单andTno=1查询测验卷:select*fromCYJ,KCXTwhereCYJ.Cno=KCXT.CnoandSJno=2009001andCno=1and5.4定义存储过程createprocedurefindType@Tnochar(10)@Tnamechar(10)@Tlbchar(6)asselect@Tno=Tno,@Tname=Tname,@Tlb=TlbfromTDdeclare@Tno@Tname@TlbcreateprocedurefindNum@Cnochar(10)@Znocha