ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:178.40KB ,
资源ID:7040989      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7040989.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库原理与技术中学排课系统的数据库实现.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、数据库原理与技术中学排课系统的数据库实现数据库原理与技术,中学排课系统的数据库实现专业:计算机科学与技术年级: 姓名: 成绩: 批改时间: 一、课程设计的目的和要求 通过调查研究和运用Internet,收集和调查有关资料、最新技术信息。 基本掌握撰写小论文的基本步骤和写作方法。 根据课题的要求基本理解和掌握E-R图的设计方法和关系模式的转换。 根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。 创建数据库及各种数据库对象。二、课程设计题目要求:(1)调查分析一个具体的或模拟的实例;(2)描述该实例的业务信息和管理工作的要求;(3)列出实体、联系;(4)指出实体和联系的

2、属性;(5)画出E-R图;(6)将E-R图转换成关系模式,并注明主码和外码;(7)建立数据字典;(8)创建数据库;(9)根据题目的要求写查询、存储过程、触发器等。题目:(11)某中学的排课管理系统实现班级、课程等基本信息的管理;实现学生、教师信息的管理;实现班级课程及课程的任课教师和排课管理;创建存储过程检测指定教师、指定节次是否有课;创建存储过程生成指定班级的课程表;创建存储过程生成指定老师的课程表;建立数据库相关表之间的参照完整性约束。三、说明书(含需求分析、系统数据库的设计、数据字典、数据库及数据库对象创建的SQL语句、其他题目要求完成的查询、视图、存储过程、触发器等的创建代码)。题目为

3、第11题(中学的排课管理系统)1、问题的描述排课系统为了减轻教务人员的工作量,实现教务工作自动化,解决排课这一大难的教务办公软件。尤其针对中学的排课一直都没有很好的解决方法,但是此问题又是每个学校在每个学期都会碰到的必要行政作业。在查阅了有关资料了解后,在分析以往一些排课软件的基础上,提出一个中学通用排课系统的设计方法,并对一些具体的问题给出相应解决方案。但是,由于技术、经验的有限和数据量过大,目前我们很难做出一个满足所有需要的排课系统。因为它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课、单双周课时的资源利用问题;另外由于中学的教学特点,还要处理合班课、分班课、体育课与选修课等特殊

4、课程。针对这些问题,在此专门对数据库设计作了一些探索,并于架构的选择和模块的划分上经过精心调整,在系统的设计上要体现了人性化的操作。该设计贴近用户需求,功能完整,架构合理,并用大量的框图模型体现了系统的规划。每次输入数据后,用手工更改数据库存量和安排课程,另外课表也无法用限制条件自动生成.以及直接导出到EXCLE表中,所以,迫切希望有一套完全适合排课管理应用的软件,以减轻管理人员的工作负担。2需求分析2.1 需求分析 利用计算机实现计算机自动排课管理势在必行。对于教育单位来说,利用计算机支持其高效率完成排课管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而排课

5、管理是一项琐碎、复杂而又十分细致的工作,课表信息录入,教师授课安排,限制条件输入,课表的自动生成等管理,一般不允许出错,如果实行手工操作,须手工填制大量的表格,这就会耗费教育工作人员大量的时间和精力,计算机进行排课工作的管理,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高排课管理的效率,也是教育的科学化、正规化管理,与世界接轨的重要条件。本系统在性能上应达到如下要求:系统软件运行应该速度快、稳定、可靠,具有很高的健壮性和容错、纠错能力;系统软件操作上应简单、方便,界

6、面简洁明了、美观;系统软件应能具有较高的安全性,对内对外都有严格的身份认证和数据保密的措施;系统软件在结构上应具有很好的可扩展性,便于将来的功能扩展和维护;数据计算准确无误,精确度符合业务的需要。2.2 系统结构图2.3 数据流图 学生表 班级课表 教师表 课程表(开课目录) 3逻辑结构设计31 局部E-R图1.教师E-R图 2.班级E-R图3.课程E-R图4.学生E-R图32 全局E-R图33 数据字典1班级表字段名称数据类型可否为空说明班级编号Nvarchar(50)主键班级编号班级人数Int Null本班人数所在教室Nvarchar(50)Not Null班级所在教室年级Nvarchar

7、(50)Null班级所属年级班主任Nvarchar(50)Null班主任姓名2课程表字段名称数据类型可否为空说明课程编号Nvarchar(50)主键课程号课程名称Nvarchar(50)Not Null课程名称每周节数IntNull每周课程节数3教师表字段名称数据类型可否为空说明教师编号Nvarchar(50)主键6位编码教师姓名Nvarchar(50)Not Null教师姓名学历Nvarchar(50)Null教师学历职务Nvarchar(50)Null教师担任职务职称Nvarchar(50)Null教师的职称所任课程Nvarchar(50)Not Null主表为课程表电话Nvarchar(

8、50)Null联系电话邮箱Nvarchar(50)Null联系邮箱5学生表字段名称数据类型可否为空说明学号Nvarchar(50)主键6位编码姓名Nvarchar(50)Not Null姓名性别Char(2)Null男女入学时间datatimeNull时间成绩FloatNull成绩班级编号nvarchar(50)外键三位编码年级Nvarchar(50)Not Null班级所属年级6排课表字段名称数据类型可否为空说明IDNvarchar(50)主键自增1班级课表IDNvarchar(50)外键主表为课程信息学年Nvarchar(50)null排课年份学期Nvarchar(50)null排课月份星

9、期IntNot null星期数节号IntNot null第几节6班级课程表字段名称数据类型可否为空说明班级课表IDInt主键自增1班级编号Nvarchar(50)外键主表为班级信息课程编号Nvarchar(50)外键主表为课程信息教师编号Nvarchar(50)外键任课教师学年Nvarchar(50)null学年学期Nvarchar(50)Null上,下 学期4数据库实现4.1创建表的sql语句1.班级表create table 班级表 (班级编号 nvarchar(50) primary key,班级人数 int ,所在教室 nvarchar(50) not null,年级 nvarchar

10、(50) not null,班主任 nvarchar(50) )2.班级课程表create table 班级课程表 (班级课表ID int primary key,班级编号 nvarchar(50) not null ,课程编号 nvarchar(50) not null,教师编号 nvarchar(50) not null,学年 nvarchar(50),学期 varchar(50) ) 3.教师表create table 教师表 (教师编号 nvarchar(50) primary key,教师姓名 nvarchar(50) not null ,学历 nvarchar(50),职务 nva

11、rchar(50) ,所任课程 nvarchar(50),电话 varchar(50),邮箱 varchar(50) )4.排课表create table 排课表 (ID int primary key,班级课表ID int not null ,学年 nvarchar(50),学期 nvarchar(50) ,星期 int,节号 int )5.学生表create table 学生表 (学号 nvarchar(50) primary key,姓名 nvarchar(50) not null ,入学时间 datatime,成绩 nvarchar(50) ,班级编号 nvarchar(50) not

12、 null,年级 nvarchar(50)6.课程表create table 课程表 (课程编号 nvarchar(50) primary key,课程名称 nvarchar(50) not null ,每周节数 int)4.2创建存储过程检测指定教师、指定节次是否有课1.创建存储过程的代码:create proc up_jssfyk (jsxm nvarchar(50),xq nvarchar(50),jh nvarchar(50)asbegindeclare x nvarchar(50),y nvarchar(50)select x=教师编号 from 班级课程表 where 班级课表ID

13、 = (select 班级课表ID from 排课表 where 星期=xq and 节号= jh)select y=教师编号 from 教师表 where 教师姓名=jsxmif(x=y)beginprint 该教师本时段有课:select distinct 课程名称 from 课程表join 班级课程表 on 班级课程表.课程编号=课程表.课程编号 and 教师编号=xendelse print 该教师本时段没课 end2执行语句:exec up_jssfyk 杨宇,3,43.结果:3.1当教师有课的时候就查询出所上的课程: 3.2当教师没有该时段没有课的时候:例如: exec up_js

14、sfyk 马玉,5,14.删除存储过程的语句:drop proc up_jssfyk4.3创建存储过程生成指定班级的课程表3.1 可以创建视图显示出课表(创建视图是为了显示数据的方便)创建视图的语句:create VIEW V_kb asSELECT TOP (100) PERCENT 班级课程表.班级编号, 排课表.星期,排课表.节号,课程表.课程名称FROM 班级课程表 INNER JOIN 课程表 ON 班级课程表.课程编号 = 课程表.课程编号 INNER JOIN 排课表 ON 班级课程表.班级课表ID = 排课表.班级课表IDORDER BY 班级课程表.班级编号, 排课表.节号,

15、 排课表.星期Go3.2创建存储过程生成指定班级的课程表说明:前面的定义视图生成课表只是查询出了所有的课而已,并没有按一个课表的形式显示出来,下面的查询将查询结果按照我们平常所见的课表的形式显示出来.1.创建存储过程的语句:create proc up_xukb1 (bjbh nvarchar(50)asbeginSELECT 节号,(select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.班级编号=bjbh and c.节号 =x.节号 and c.星期=1) as 星期

16、一, (select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.班级编号=bjbh and c.节号 =x.节号 and c.星期=2)as 星期二,(select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.班级编号=bjbh and c.节号 =x.节号 and c.星期=3) as 星期三, (select 课程名称 from 课程表 a, 班级课程

17、表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.班级编号=bjbh and c.节号 =x.节号 and c.星期=4) as 星期四,(select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.班级编号=bjbh and c.节号 =x.节号 and c.星期=5) as 星期五 FROM 排课表 x group by 节号 order by 节号 end2.执行语句:exec up_xukb1 13

18、.结果:4.4创建存储过程生成指定老师的课程表说明:前面的定义视图的生成课表只是查询出了所有的课而已,并没有按一个课表的形式显示出来,下面的查询将查询结果按照我们平常所见的课表的形式显示出来.1.创建存储过程的代码:create proc up_jskb1 (jsxm nvarchar(50)asbeginSELECT 节号,(select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.教师编号=(select 教师编号 from 教师表 where 教师姓名=jsxm) an

19、d c.节号 =x.节号 and c.星期=1) as 星期一, (select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.教师编号=(select 教师编号 from 教师表 where 教师姓名=jsxm) and c.节号 =x.节号 and c.星期=2)as 星期二,(select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.教师编号=(sele

20、ct 教师编号 from 教师表 where 教师姓名=jsxm) and c.节号 =x.节号 and c.星期=3) as 星期三, (select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and b.班级课表ID = c.班级课表ID and b.教师编号=(select 教师编号 from 教师表 where 教师姓名=jsxm) and c.节号 =x.节号 and c.星期=4) as 星期四,(select 课程名称 from 课程表 a, 班级课程表 b, 排课表 c where a.课程编号=b.课程编号 and

21、 b.班级课表ID = c.班级课表ID and b.教师编号=(select 教师编号 from 教师表 where 教师姓名=jsxm) and c.节号 =x.节号 and c.星期=5) as 星期五 FROM 排课表 x group by 节号 order by 节号 end2.执行语句:exec up_jskb1 杨宇3.结果:4.5.建立数据库相关表之间的参照完整性约束。4.7.结束语(结论)1.本设计中我做的是中学的排课系统,由于中学课程的一些特殊性,每个班级都有固定的教室,在这个数据库设计中就没有考虑教室.2.系统中是按照每天八节课的结构来设计课表的,可能在实际的运用当中,我

22、们还应该考虑早自习,晚自习,所以在具体的运用是该数据库还有待完善.3.创建存储过程的时候,三个存储过程有点不一样,查询班级课表的时候,我们是直接给定班级编号,但是在查询关于的教师的是否有课,或查询课表的时候,我们需要用到教师编号,但是结合实际,我们一般不会去记每个教师的教师编号,而是直接给定其姓名,所以在查询教师的课的时候,给定的是教师姓名,先在教师表中将其的教师编号查出.4.查询出课表,生成课表是在编程中实现的,在数据库中没有实际的意义,但是由于本设计我们只是做数据库的部分,我们要生成课表,就无法像我们所使用的真实课表一样,所以只是按顺序显示出班级的课程,及教师的课程.5.经过查阅资料以及请教老师,能过实现在数据库中像一个基本课表的形式显示出课程信息.像教师课程表中,没有课程的时段全为NULL.6.数据库中的数据只是填充了一些简单的例子数据,例如班级的课表,只是填充了一个班的课表信息.四、数据库的完整备份备份文件附加在缩包中(zxpkxt.bak)

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

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