题库管理方案系统docx.docx

上传人:b****5 文档编号:7820342 上传时间:2023-01-26 格式:DOCX 页数:28 大小:22.18KB
下载 相关 举报
题库管理方案系统docx.docx_第1页
第1页 / 共28页
题库管理方案系统docx.docx_第2页
第2页 / 共28页
题库管理方案系统docx.docx_第3页
第3页 / 共28页
题库管理方案系统docx.docx_第4页
第4页 / 共28页
题库管理方案系统docx.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

题库管理方案系统docx.docx

《题库管理方案系统docx.docx》由会员分享,可在线阅读,更多相关《题库管理方案系统docx.docx(28页珍藏版)》请在冰豆网上搜索。

题库管理方案系统docx.docx

题库管理方案系统docx

 

《数据库课程设计》

—题库管理系统

 

1需求分析

学校的题库管理系统

实现课程、题型等基本信息的管理;

能管理每一门课程的题型,每门课程的章节;

实现习题信息的管理,能按题型或章节录入每门课程的习题;

定义存储过程查询指定课程各种题型和各章节的习题数量;

定义视图查询各门课程使用的题型;

设每个习题有一个题号,题号由系统自动生成,要求从1开设编号;

设每个习题都有习题的建立日期,其值为系统时间,请定义实现(用默认实现)

定义存储过程实现查询各门课程、各种题型的习题数量;

可以自动抽题组成套题,习题每抽取一次,要使习题的抽取次数加1(用触发器实现);

建立数据库相关表之间的参照完整性约束。

 

2任务概述

 

2.1、数据字典

 

数据结构:

学生

组成:

学号,姓名,性别,系别

说明:

学生表所存放的是学生的信息,学号为学生的用户名,是唯一的,设为主码。

 

数据结构:

任课老师

组成:

职工号,姓名,性别,系别

说明:

任课老师表所存放的是任课老师的信息,职工号为任课老师的用户名,是唯一的,设为主码。

 

数据结构:

课程

组成:

课程名,课程号,章节号

说明:

课程表存放课程的相关信息,课程号是课程的唯一标识,设为主码。

 

数据结构:

授课

组成:

课程号,教师号,学号

说明:

授课表存放任课老师和学生之间的授课关系。

课程号,教师号和学号属性组是

授课表的唯一标识,设为主码。

 

数据结构:

测验卷

组成:

试卷号,试卷名,课程号,题量,测试时间,难度

说明:

测验卷的详细信息填入此表中。

试卷号存放的是对测验卷一个编号,课程号是课程科目的编码,试卷号和课程号的属性组被设为主码;试卷名存放的是测验卷的主题名;题目内容存放每一题内容,与习题库发生联系;题量存放的是测验卷一共有多少题目。

 

数据结构:

课程习题

组成:

课程号,章节号,建立日期,难度,题号,答案

说明:

课程习题的详细内容存放在此表中。

课程代号存放的是课程科目的编码;章节号存放的是对章节的编号;建立日期存放的是习题的上传日期;难度存放的是每一题的难度系数;题号存放的是每一道题的题目编号;课程代号,章节号,难度和题号的属性组设为主码。

 

数据结构:

选择

组成:

试卷号,课程号,题目内容

说明:

选择表存放的是测验卷和课程习题之间的联系。

试卷号和课程号是选择表的唯一

标识,设为主码。

 

数据结构:

解答

组成:

课程号,试卷号,学号,记录号,成绩

说明:

解答表存放的是学生解答测验卷的相关信息。

课程号、试卷号和学号可以唯一

标识解答信息,设为主码;记录号存放学生解答测验卷的次数;成绩存放每次学生测验的成绩。

 

数据结构:

题型

组成:

题名,题号,类别名

说明:

题型表存放的是学生所做的习题的相关信息。

题号可以作为唯一标识解答信息,设为主码。

 

3数据库概念设计

 

3.1、局部概念模式设计

 

在系统界定范围内,将静态数据对象或逻辑上具有独立意义的概念抽象为实体集,如学生

、任课教师、课程负责人、测验卷、课程习题、课程等。

从数据字典的角度来看,可将数

据源点和数据结构作为实体集,而把数据处理抽象为实体间的联系。

 

3.1.1实体集的属性:

 

学生

任课教师

 

职工号姓名系别性别

学号姓名性别系别

 

测验卷

 

试卷号试卷名题量测验时间难度课程时间

 

课程习题

 

课程号章号知识点难度题号答案节号

 

课程

 

课程号课程名章号节号

 

3.1.2、E-R图表示数据库的概念结构

下图为课程责任人、任课教师、学生、课程、课程习题、测试卷实体集之间的关系E-R图

 

职工号姓名性别系别

 

任课老师

 

1

 

设定

M

 

测试卷

 

试卷号

试卷名

课程名

题量

测试时间

难度

 

任课老师和测试卷的E-R图

 

职工号姓名性别系别

 

任课老师

 

M

教授

 

1

 

课程

 

课程号课程名章号节号

 

任课老师和课程的E-R图

 

职工号姓名性别系别

 

任课教师

 

M

 

教授

 

N

 

学生

 

学号姓名性别系别

 

任课老师和学生的E-R图

 

课程号试卷号试卷名题量测试时间难度

 

测试卷

 

M

 

选择

 

N

 

课程习题

 

课程号章号建立日期难度题号答案节号

 

测试卷和课程习题的E-R图

 

试卷名

试卷号

课程号

题量

测试时间

难度

 

测试卷

 

N

 

解答

 

M

 

学生

 

学号姓名姓名系别

 

学生和测试卷的E-R图

 

职工号姓名性别系别

 

任教老师

 

1

 

设定

M

 

题型

 

题名题号类别名

 

任教老师和题型的E-R图

 

章号章名章内容

 

 

1

 

包含

 

M

 

 

节号节名节内容

 

章和节的E-R图

 

3.2全局概念模式E-R图

 

课程习题

 

N

 

题目内容选择

 

试卷名M

 

试卷号

测试卷

课程号

 

节号

 

课程号

 

章号

 

建立日期

题型

难度

M

题号

设定

答案

M

1

1

设定任教老师

 

题名

 

题号

 

题类别

 

职工号

 

姓名

 

题量

N

M

M

 

性别

测试时间

解答

 

难度

M

 

学号

成绩教授

 

授课1

系别

 

课程号

学生

姓名

 

性别

 

系别

N

课程

课程名

 

四.数据库逻辑设计

 

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)

属性名

别名

类型

长度

是否为空

说明

学号

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

系别

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

char

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

varchar

50

类别名

LBM

char

20

 

五.物理设计

 

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测试卷表

create

table

CYJ

(SJno

char

(10),

Cno

char(10),

SJname

char

(10),

Tl

char

(2),

Ttime

char

(10),

Nd

char

(10),

primary

key(SJno,Cno,SJname),

foreignkey(KCno)referencesKC(KCno)

 

6授课表

createtableSK

(kcnochar(10),

Tnochar(10),

Snochar(10),

primarykey(kcno,Tno,Sno),

foreign

key

(kcno)

references

KC(kcno),

foreign

key(Tno)references

RKJS(Tno),

foreign

key

(Sno)

references

SB(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

whereCno=1andSjno=0203040506andSno=201406070120andJlno=1查询题目的答案:

 

selectAns

fromKCXT

whereCno=1andZno=第一章andZsddh=1andNd=简单andTno=1查询测验卷:

select*

fromCYJ,KCXT

where

CYJ.Cno=KCXT.Cnoand

SJno=2009001and

Cno=1

and

SJname=第一次测卷andTtime=20090612

 

5.4定义存储过程

 

5.4.1查询指定课程各种题型

 

createprocedurefindType

@Tnochar(10)@Tnamechar(10)@Tlbchar(6)

as

select@Tno=Tno,@Tname=Tname,@Tlb=Tlb

fromTD

declare@Tno@Tname@Tlb

 

5.4.2查询各章节的习题数量

 

createprocedurefindNum

@Cnochar(10)@Znochar(10)

as

begin

if(selectcount(*)fromSKwhereCno=@Cno)>0

begin

if(selectcount(*)fromKCXTwhereCno=@Cno

andZno=@Zno)>0

selectcount(Zno)fromSK,KCXTwhereCno=@CnoandZno=@ZnoandSK.Cno=KCXT.Cno

else

print'章节号'+@Zno'不存在'

 

end

else

print'课程号'+@Cno+'不存在'

end

 

5.5创建视图及查询

 

createviewtx

as

selectCno,Tno,Tname,Tlb

fromKCXT,TD

whereKCXT.Tno=TD.Tno

 

select*fromtx

whereCno=1

 

5.7每个习题都有习题的建立日期,其值为系统时间

 

习题增加建立日期

insertintoKCXT

values(03,01,GETDATE(),'简单','1+1','2')

 

5.8触发器

可以自动抽题组成套题,习题每抽取一次,要使习题的抽取次数加1(用触发器实现);

抽题属于select操作,没有对应的触发器,所以可以建立一个表记录抽取的套题,利用这个

表的insert触发器更新习题库表中习题被抽取的次数。

 

触发器:

 

所有的习题存放在表XTbank(num,XT)中,(num)为抽取的题号,

抽取的习题存放在表newXTbank(nums)中

 

XT为(num)抽取的题型,被

CreatetriggeraddXTbank

OnnewXTbank

Forinsert

As

Begintransaction//开始检查

UpdateXTbank

SetXT=XT+1

Wherenumin(selsetnums

Frominserted)

Committransaction//执行

Go

 

5.9参照完整性约束

 

5.9.1添加唯一值约束

 

altertableSB

addconstraintun_Snounique(Sno);

 

altertableRKJS

addconstraintun_Zgnounique(Zgno);

 

altertableKCXT

addconstraintun_Cnounique(Cno);

 

altertableCYJ

addconstraintun_Sjnounique(Sjno);

 

5.9.2添加主键约束

 

altertableSB

addconstraintpk_SBprimarykey(Sno)

 

altertableSK

addconstraintpk_SKprimarykey(Cno)

 

altertableRKJS

addconstraintpk_RKJSprimarykey(Sno,Cno)

 

altertableKCXT

addconstraintpk_KCXTprimarykey(Cno,Zno)

 

altertableTD

addconstraintpk_TDprimarykey(Tno)

 

altertableCYJ

addconstraintpk_CYJprimarykey(Sjno,Cno)

 

5.9.3添加外键约束

 

altertableSK

addconstraintfk_Snoforeignkey(Sno)referencesSB(Sno);

altertableSK

addconstraintfk_Cnoforeignkey(Cno)referencesKCXT(Cno);altertableSK

addconstraintfk_Zgnoforeignkey(Zgno)referencesRKJS(Zgno);

 

altertableXD

addconstraintfk_Sjnoforeignkey(Sjno)referencesCYJ(Sjno);altertableXD

addconstraintfk_Cnoforeignkey(Cno)referencesKCXT(Cno);

 

altertableJD

addconstraintfk_CnoforeignkeyCno)referencesKCXT(Cno);altertableJD

addconstraintfk_Sjnoforeignkey(Sjno)referencesCYJ(Sjno);altertableJD

addconstraintfk_Snoforeignkey(Sno)referencesSB(Sno);

 

5.9.4为属性添加范围约束

 

altertableSB

addcconstraintck_Sexcheck(Sex=男’);’

 

altertableRKJS

 

addcconstraintck_

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1