数据库原理与技术中学排课系统的数据库实现.docx

上传人:b****3 文档编号:5956428 上传时间:2023-05-09 格式:DOCX 页数:17 大小:203.70KB
下载 相关 举报
数据库原理与技术中学排课系统的数据库实现.docx_第1页
第1页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第2页
第2页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第3页
第3页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第4页
第4页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第5页
第5页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第6页
第6页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第7页
第7页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第8页
第8页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第9页
第9页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第10页
第10页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第11页
第11页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第12页
第12页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第13页
第13页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第14页
第14页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第15页
第15页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第16页
第16页 / 共17页
数据库原理与技术中学排课系统的数据库实现.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库原理与技术中学排课系统的数据库实现.docx

《数据库原理与技术中学排课系统的数据库实现.docx》由会员分享,可在线阅读,更多相关《数据库原理与技术中学排课系统的数据库实现.docx(17页珍藏版)》请在冰点文库上搜索。

数据库原理与技术中学排课系统的数据库实现.docx

数据库原理与技术中学排课系统的数据库实现

红河学院工学院

设计报告

专业:

计算机科学与技术

年级:

2011级

学号:

姓名:

成绩:

批改时间:

红河学院工学院编制

课程设计的目的和要求

1通过调查研究和运用Internet,收集和调查有关资料、最新技术信息。

2基本掌握撰写小论文的基本步骤和写作方法。

3根据课题的要求基本理解和掌握E-R图的设计方法和关系模式的转换。

4根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。

5创建数据库及各种数据库对象。

二、课程设计题目

要求:

(1)调查分析一个具体的或模拟的实例;

(2)描述该实例的业务信息和管理工作的要求;

(3)列出实体、联系;

(4)指出实体和联系的属性;

(5)画出E-R图;

(6)将E-R图转换成关系模式,并注明主码和外码;

(7)建立数据字典;

(8)创建数据库;

(9)根据题目的要求写查询、存储过程、触发器等。

题目:

(11)某中学的排课管理系统实现班级、课程等基本信息的管理;实现学生、教师信息的管理;实现班级课程及课程的任课教师和排课管理;创建存储过程检测指定教师、指定节次是否有课;创建存储过程生成指定班级的课程表;创建存储过程生成指定老师的课程表;建立数据库相关表之间的参照完整性约束。

三、说明书(含需求分析、系统数据库的设计、数据字典、数据库及数据库对象创建的SQL语句、其他题目要求完成的查询、视图、存储过程、触发器等的创建代码)。

题目为第11题(中学的排课管理系统)

1、问题的描述

排课系统为了减轻教务人员的工作量,实现教务工作自动化,解决排课这一大难的教务办公软件。

尤其针对中学的排课一直都没有很好的解决方法,但是此问题又是每个学校在每个学期都会碰到的必要行政作业。

在查阅了有关资料了解后,在分析以往一些排课软件的基础上,提出一个中学通用排课系统的设计方法,并对一些具体的问题给出相应解决方案。

但是,由于技术、经验的有限和数据量过大,目前我们很难做出一个满足所有需要的排课系统。

因为它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课、单双周课时的资源利用问题;另外由于中学的教学特点,还要处理合班课、分班课、体育课与选修课等特殊课程。

针对这些问题,在此专门对数据库设计作了一些探索,并于架构的选择和模块的划分上经过精心调整,在系统的设计上要体现了人性化的操作。

该设计贴近用户需求,功能完整,架构合理,并用大量的框图模型体现了系统的规划。

每次输入数据后,用手工更改数据库存量和安排课程,另外课表也无法用限制条件自动生成.以及直接导出到EXCLE表中,所以,迫切希望有一套完全适合排课管理应用的软件,以减轻管理人员的工作负担。

2.需求分析

2.1需求分析

利用计算机实现计算机自动排课管理势在必行。

对于教育单位

来说,利用计算机支持其高效率完成排课管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而排课管理是一项琐碎、复杂而又十分细致的工作,课表信息录入,教

师授课安排,限制条件输入,课表的自动生成等管理,一般不允许出错,如果实行手工操作,须手工填制大量的表格,这就会耗费教育工作人员大量的时间和精力,计算机进行排课工作的管理,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工管理所无法比拟的优点.例如:

检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高排课管理的效率,也是教

育的科学化、正规化管理,与世界接轨的重要条件。

本系统在性能上应达到如下要求:

系统软件运行应该速度快、稳定、可靠,具有很高的健壮性和容错、纠错能力;

系统软件操作上应简单、方便,界面简洁明了、美观;系统软件应能具有较高的安全性,对内对外都有严格的身份认证和数据保密的措施;

系统软件在结构上应具有很好的可扩展性,便于将来的功能扩展和维护;数据计算准确无误,精确度符合业务的需要。

东部西部北部

排课系

2.3数据流图

学生表

教师表

班级课表

打印

 

3.逻辑结构设计

3.1局部E-R图

1.

教师E-R图

姓名

所任课程

电话

教师编号

2.班级E-R图

3.课程E-R图

4.学生E-R图

3.2全局E-R图

教师

 

3.3数据字典

1班级表

字段名称

数据类型

可否为空

说明

班级编号

Nvarchar(50)

主键

班级编号

班级人数

Int

Null

本班人数

所在教室

Nvarchar(50)

NotNull

班级所在教室

年级

Nvarchar(50)

Null

班级所属年级

班主任

Nvarchar(50)

Null

班主任姓名

2课程表

字段名称

数据类型

可否为空

说明

课程编号

Nvarchar(50)

主键

课程号

课程名称

Nvarchar(50)

NotNull

课程名称

每周节数

Int

Null

每周课程节数

3教师表

字段名称

数据类型

可否为空

说明

教师编号

Nvarchar(50)

主键

6位编码

教师姓名

Nvarchar(50)

NotNull

教师姓名

学历

Nvarchar(50)

Null

教师学历

职务

Nvarchar(50)

Null

教师担任职务

职称

Nvarchar(50)

Null

教师的职称

所任课程

Nvarchar(50)

NotNull

主表为课程表

电话

Nvarchar(50)

Null

联系电话

邮箱

Nvarchar(50)

Null

联系邮箱

5学生表

字段名称

数据类型

可否为空

说明

学号

Nvarchar(50)

主键

6位编码

姓名

Nvarchar(50)

NotNull

姓名

性别

Char

(2)

Null

男女

入学时间

datatime

Null

时间

成绩

Float

Null

成绩

班级编号

nvarchar(50)

外键

三位编码

年级

Nvarchar(50)

NotNull

班级所属年级

6排课表

字段名称

数据类型

可否为空

说明

ID

Nvarchar(50)

主键

自增1

班级课表ID

Nvarchar(50)

外键

主表为课程信息

学年

Nvarchar(50)

null

排课年份

学期

Nvarchar(50)

null

排课月份

星期

Int

Notnull

星期数

节号

Int

Notnull

第几节

6班级课程表

字段名称

数据类型

可否为空

说明

班级课表ID

Int

主键

自增1

班级编号

Nvarchar(50)

外键

主表为班级信息

课程编号

Nvarchar(50)

外键

主表为课程信息

教师编号

Nvarchar(50)

外键

任课教师

学年

Nvarchar(50)

null

学年

学期

Nvarchar(50)

Null

上,下学期

4.数据库实现

4.1创建表的sql语句

1.

班级表

 

6.课程表

createtable课程表(课程编号nvarchar(50)primarykey课程名称nvarchar(50)notnull,每周节数int))

4.2创建存储过程检测指定教师、指定节次是否有课

1.创建存储过程的代码:

createprocup_jssfyk(@jsxmnvarchar(50),@xqnvarchar(50),@jhnvarchar(50))

as

begin

declare@xnvarchar(50),@ynvarchar(50)

select@x=教师编号from班级课程表where班级课表ID=(

select班级课表IDfrom排课表where星期=@xqand节号=@jh)

select@y=教师编号from教师表where教师姓名=@jsxm

if(@x=@y)

begin

print'该教师本时段有课:

'

selectdistinct课程名称from课程表

join班级课程表on班级课程表.课程编号=课程表.课程编号and教师编号=@xend

elseprint'该教师本时段没课'

end

2执行语句:

execup_jssfyk'杨宇',3,4

3.结果:

3.1当教师有课的时候就查询出所上的课程

3.2当教师没有该时段没有课的时候

例如:

4.删除存储过程的语句:

dropprocup_jssfyk

4.3创建存储过程生成指定班级的课程表

3.1可以创建视图显示出课表(创建视图是为了显示数据的方

便)创建视图的语句:

createVIEWV_kbas

SELECTTOP(100)PERCENT班级课程表.班级编号,排课表.星期,排课表.节号,课程表.课程名称

FROM班级课程表INNERJOIN

课程表ON班级课程表.课程编号=课程表.课程编号INNERJOIN排课表ON班级课程表.班级课表ID=排课表.班级课表ID

ORDERBY班级课程表.班级编号,排课表.节号,排课表.星期

Go

3.2创建存储过程生成指定班级的课程表

说明:

前面的定义视图生成课表只是查询出了所有的课而已,并没有按一个课表的形式显示出来,下面的查询将查询结果按照我们平常所见的课表的形式显示出来

1.创建存储过程的语句

createprocup_xukb1(@bjbhnvarchar(50))as

begin

SELECT节号,

(select

课程名称from课程表a,

班级课程表

b,

排课表c

where

a.课程编号=b.课程编号and

b.班级课表

ID

=c.班级课表

ID

and

b.

班级编

=@bjbh

andc.节号=x.节号and

c.星期=1)

as

星期一

(select课程名称from课程表

a,班级课程表

b,排课表c

where

a.课程编号=b.课程编号and

b.班级课表

ID

=c.班级课表

ID

and

b.

班级编

=@bjbh

andc.节号=x.节号and

c.星期=2)as星期二,

(select

课程名称from课程表a,

班级课程表

b,

排课表c

where

a.课程编号=b.课程编号and

b.班级课表

ID

=c.班级课表

ID

and

b.

班级编

=@bjbh

andc.节号=x.节号and

c.星期=3)

as

星期三,

(select

课程名称from课程表a

班级课程表

b,

排课表c

where

a.课程编号=b.课程编号and

b.班级课表

ID

=c.班级课表

ID

and

b.

班级编

=@bjbh

andc.节号=x.节号and

c.星期=4)

as

星期四,

(select

课程名称from课程表a,

班级课程表

b,

排课表c

where

a.课程编号=b.课程编号and

b.班级课表

ID

=c.班级课表

ID

and

b.

班级编

=@bjbh

andc.节号=x.节号and

c.星期=5)

as

星期五

FROM排课表x

groupby节号orderby节号end

2.执行语句:

execup_xukb1'1

3.结果:

4.4创建存储过程生成指定老师的课程表

说明:

前面的定义视图的生成课表只是查询出了所有的课而已,并没有按一个课表的形式显示出来,下面的查询将查询结果按照我们平常所见的课表的形式显示出来.

1.创建存储过程的代码

createprocup_jskb1(@jsxmnvarchar(50))asbegin

SELECT节号

(select课程名称from课程表a,班级课程表b,排课表c

wherea.课程编号=b.课程编号andb.班级课表ID=c.班级课表IDandb.教师编号=(select教师编号from教师表where教师姓名=@jsxm)

andc.节号=x.节号andc.星期=1)as星期一

(select课程名称from课程表a,班级课程表b,排课表c

wherea.课程编号=b.课程编号andb.班级课表ID=c.班级课表IDandb.教师编号=(select教师编号from教师表where教师姓名=@jsxm)

andc.节号=x.节号andc.星期=2)as星期二,

(select课程名称from课程表a,班级课程表b,排课表c

wherea.课程编号=b.课程编号andb.班级课表ID=c.班级课表IDandb.教师编号

=(select教师编号from教师表where教师姓名=@jsxm)

andc.节号=x.节号andc.星期=3)as星期三,

(select课程名称from课程表a,班级课程表b,排课表c

wherea.课程编号=b.课程编号andb.班级课表ID=c.班级课表IDandb.教师编号

=(select教师编号from教师表where教师姓名=@jsxm)andc.节号=x.节号andc.星期=4)as星期四,

(select课程名称from课程表a,班级课程表b,排课表c

wherea.课程编号=b.课程编号andb.班级课表ID=c.班级课表IDandb.教师编号=(select教师编号from教师表where教师姓名=@jsxm)

andc.节号=x.节号andc.星期=5)as星期五

FROM排课表x

groupby节号

orderby节号

end

2.执行语句:

execup_jskb1'杨宇

3.结果:

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

4.7.结束语(结论)

1.本设计中我做的是中学的排课系统,由于中学课程的一些特殊性,每个班级都有固定的教室,在这个数据库设计中就没有考虑教室.

2.系统中是按照每天八节课的结构来设计课表的,可能在实际的运用当中,我们还应该考虑早自习,晚自习,所以在具体的运用是该数据库还有待完善.

3.创建存储过程的时候,三个存储过程有点不一样,查询班级课表的时候,我们是直接给定班级编号,但是在查询关于的教师的是否有课,或查询课表的时候,我们需要用到教师编号,但是结合实际,我们一般不会去记每个教师的教师编号,而是直接给定其姓名,所以在查询教师的课的时候,给定的是教师姓名,先在教师表中将其的教师编号查出.

4.查询出课表,生成课表是在编程中实现的,在数据库中没有实际的意义,但是由于本设计我们只是做数据库的部分,我们要生成课表,就无法像我们所使用的真实课表一样,所以只是按顺序显示出班级的课程,及教师的课程.

5.经过查阅资料以及请教老师,能过实现在数据库中像一个基本课表的形式显示出课程信息.像教师课程表中,没有课程的时段全为NULL.

6.数据库中的数据只是填充了一些简单的例子数据,例如班级的课表,只是填充了一个班的课表信息.

四、数据库的完整备份备份文件附加在缩包中(zxpkxt.bak)

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2