# 1.2需求分析
## 1.2.1 功能需求
系统的用户有三个不同的角色,分别是教务教师,管理人员,学生,角色不同,需求不同。通过分析,各用户的需求如下:
### 1.2.1.1 教师用户需求
教师可以通过系统录入成绩,查看课表、培养计划、学期计划的教学信息。查询空闲教室,打印学生点名册,办理调课申请、教室申请等教学业务
### 1.2.1.2 教务管理人员用户需求
教务管理人员可以进行学生信息管理,包括录入、查看、修改及删除学生,处理并审核学生休学、退学、退学试读、交流、保留学籍等学籍异动信息。可进行成绩管理,包括维护、生成学生成绩名单,管理成绩录入错误的修改、审批,打印学习成绩一览表、学期成绩单、毕业成绩单、成绩存挡单,提供平均学分绩、单科课程成绩、综合成绩排名信息。可进行教师管理,包括录入、查看、修改及删除教师,根据教师的职称、学历、年龄、毕业院校进行结构分析。
### 1.2.1.3 学生用户需求
学生可以进行教师考评,查询教师,查看成绩、成绩单、课表、培养计划等信息。
### 1.2.1.4基本功能分析
#### 教师管理系统(基本功能):
1 成绩录入:用于教师网上录入学生成绩,确定相应的课程信息。成绩录入成功后提交审核,审核通过打印成绩单。
2 教学信息查询:教师可以通过本模块查看计划、任务及课表,查看与打印学生点名册。
3 教学业务办理:包括调课申请、公共教室申请、空闲教室申请,需要调课时填写调课申请单并提交管理人员审核,符合要求审核通过打印通知单,完成调课,审核不通过返回修改或取消:可以按照周数、节数等信息查询某教学楼是否有空闲教室,使用教室需要填写教室使用申请单并提交管理人员审核,符合要求审核通过打印通知单,完成占用,审核不通过返回修改或取消
#### 学生管理系统(基本功能):
1 教师考评:学生用户登陆系统后,选择教师考评链接,首先判断当学期教师考评模块是否开启,如果没有开启,则跳转页面无信息:如果开启,会进行第二次判断是否己进行考评,如果己完成,则跳转提示页面,提示"已完成考评";否则进入教师考评界面,输入考评结果,点击提交完成教师考评操作。
2 教学信息查询:包括培养计划、课表、成绩查询、毕业成绩单。
3 空闲教室查询:可以按照周数、节数等信息查询某教学楼是否有空闲教室。
#### 教务管理人员管理系统(基本功能)
1.学籍管理:管理学生的学籍信息,各种类型学籍异动的处理,主要功能包括:管理学籍信息、维护学生综合异动、审核学生异动。
2.成绩管理:管理全校学生所有的在校成绩,主要功能包括;系统设置、学生名单维护、成绩修改单管理、报表管理 。
3.教师管理: 用于教师基本资料的管理、维护,通过多种方式分析和统计师资力量。主要功能包括:信息维护、结构分析。
## 1.2.2 性能需求
保证数据的准确性,实时性,共享性、独立性,完整性和一致性。
# 2、概念设计
## 2.1、概念数据库设计
教务管理系统全局E-R图如图2-1所示:
![](https://img.kancloud.cn/93/22/93223acc0fc380e1b36125847efbd3ab_692x531.png)
## 2.2教务管理系统实体及所辖属性定义表
表2-1教务管理系统应用实体所辖属性定义表
序号 实体 所辖属性
1 专业 专业名称,专业编号,所属院系 专业编号
2 班级 班级名称,专业编号,人数,班级编号 班级编号
3 学生 院系,学号,姓名,班级,出生日期,入学时间,性别,专业,民族 学号
4 用户 类型,姓名,密码,账号,用户编号 用户编号
5 教师 职称,入职时间,民族,姓名,性别,最后学位,最后学历,出生日期,教师编号,政治面貌 教师编号
6 课程 教研室,实验学时,课程类型,考核方式,周学时,理论学时,课程编号,课程名称,学分,上级学时,总学时,院系,授课对象,课程性质 课程编号
# 3、逻辑数据库设计
## 3.1教务管理系统关系模式序号 关系名
1 学生-班级(组成)
2 学生-课程(选修)
3 教师-课程(任课)
4 专业-课程(开设)
5 班级-专业(隶属)
## 3.2教务管理系统关系模式定义表
经数据分析后该系统需建立八张表。
序号 表名 中文名
1 UPC_STUDENT 学生表
2 UPC_TEACHER 教师表
3 UPC_SPECIALITY 专业表
4 UPC_CLASSES 班级表
5 UPC_COURSE 课程表
6 UPC_GRADE 成绩表
7 UPC_MCOURSE 专业课程设置表
8 UPC_USER 用户表
表3-1:学生表
序号 属性名 字段名 类型 宽度 约束
1 学号 XH VARCHAR 50 主键
2 姓名 XM VARCHAR 50 无
3 性别 XB CHAR 2 无
4 出生日期 CSRQ DATE 无
5 民族 MZ VARCHAR 50 无
6 院系 YX VARCHAR 50 无
7 专业 ZY VARCHAR 50 外键
8 班级 BJ VARCHAR 50 外键
9 入学时间 RXRQ DATE 无
表3-2:教师表
序号 属性名 字段名 类型 宽度 约束
1 教师编号 JSBH VARCHAR 50 主键
2 姓名 XM VARCHAR 50 无
3 性别 XB CHAR 2 无
4 出生日期 CSRQ DATE 无
5 民族 MZ VARCHAR 50 无
6 政治面貌 ZZMM VARCHAR 50 无
7 最后学历 ZHXL VARCHAR 50 无
8 最后学位 ZHXW VARCHAR 50 无
9 职称 ZC VARCHAR 50 无
10 聘任时间 PRSJ DATE 无
表3-3:专业表
序号 属性名 字段名 类型 宽度 约束
1 专业编号 ZYBH VARCHAR 20 主键
2 专业名称 ZYMC VARCHAR 50 无
3 所属院系 SSYX VARCHAR 50 无
表3-4:班级表
序号 属性名 字段名 类型 宽度 约束
1 班级编号 BJBH VARCHAR 20 主键
2 班级名称 BJMC VARCHAR 50 无
3 人数 RX INT 无
4 专业编号 ZYBH VARCHAR 50 外键
表3-5:课程表
序号 属性名 字段名 类型 宽度 约束
1 课程编号 KCBH VARCHAR 50 主键
2 课程名称 KCMC VARCHAR 50 无
3 学分 XF NUMBER 50 无
4 总学时 ZXS NUMBER 5 无
5 理论学时 LLXS NUMBER 5 无
6 实验学时 SYXS NUMBER 5 无
7 上级学时 SJXS NUMBER 5 无
8 周学时 ZXS NUMBER 5 无
9 考核方式 KHFS VARCHAR 10 无
10 课程性质 KHXZ VARCHAR 50 无
11 课程类型 KHLX VARCHAR 50 外键
12 授课对象 SKDX VARCHAR 50 无
13 院系 YX VARCHAR 50 无
14 教研室 JYS VARCHAR 50 无
表3-6:成绩表
序号 属性名 字段名 类型 宽度 约束
1 学年学期 XNXQ VARCHAR 20 无
2 课程编号 KCBH VARCHAR 50 外键
3 课程名称 KCMC VARCHAR 100 无
4 学号 XH VARCHAR 50 外键
5 姓名 XM VARCHAR 20 无
6 期中成绩 QZCJ VARCHAR 20 无
7 平时成绩 PSCJ VARCHAR 20 无
8 期末成绩 QMCJ VARCHAR 20 无
9 总成绩 ZCJ VARCHAR 20 无
10 学分 XF VARCHAR 20 无
11 学时 XS VARCHAR 50 无
12 成绩类型 CJLX VARCHAR 50 无
13 课程性质 KCXZ VARCHAR 50 无
14 考核方式 KHFS VARCHAR 50 无
15 课程类型 KCLX VARCHAR 50 无
16 开课院系 KKYX VARCHAR 50 无
17 班级名称 BJMC VARCHAR 50 无
18 专业名称 ZYMC VARCHAR 50 无
19 学生院系 XSYX VARCHAR 50 无
20 任课教师 RKJS VARCHAR 50 无
表3-7:专业课程设置表
序号 属性名 字段名 类型 宽度 约束
1 专业编号 ZYBH VARCHAR 20 外键
2 课程编号 KCBH VARCHAR 50 外键
3 开课学期 KKXQ VARCHAR 50 无
表3-8:用户表
序号 属性名 字段名 类型 宽度 约束
1 编号 BH NUMBER 10 主键
2 账号 ZH VARCHAR 20 无
3 密码 MM VARCHAR 20 无
4 姓名 XM VARCHAR 10 无
5 类型 LX VARCHAR 20 无
- 空白目录
- 1、数据库概述及数据准备
- 1.1、SQL概述
- 1.2、什么是数据库
- 1.3、MySql概述
- 1.4、MySql的安装
- 1.5、表
- 1.6、SQL的分类
- 1.7、导入演示数据
- 1.8、表结构描述
- 2、常用命令
- 2.1、查看msyql版本
- 2.2、创建数据库
- 2.3、查询当前使用的数据库
- 2.4、终止一条语句
- 2.5、退出mysql
- 3、查看“演示数据”的表结构
- 3.1、查看和指定现有的数据库
- 3.2、指定当前缺省数据库
- 3.3、查看当前使用的库
- 3.4、查看当前库中的表
- 3.5、查看其他库中的表
- 3.6、查看表的结构
- 3.7、查看表的创建语句
- 4、简单的查询
- 4.1、查询一个字段
- 4.2、查询多个字段
- 4.3、查询全部字段
- 4.4、计算员工的年薪
- 4.5、将查询出来的字段显示为中文
- 5、条件查询
- 5.1 概述
- 5.2 等号操作符
- 5.3不等号操作符
- 5.4 between … and …操作符
- 5.5 is null
- 5.6 and
- 5.7 or
- 5.8 表达式的优先级
- 5.9 in
- 5.10 not
- 5.11 like
- 6、排序数据
- 6.1、单一字段排序
- 6.2、手动指定排序顺序
- 6.3、多个字段排序
- 6.4、使用字段的位置来排序
- 7、分组函数/聚合函数/多行处理函数
- 7.1、count
- 7.2、sum
- 7.3、avg
- 7.4、max
- 7.5、min
- 7.6、组合聚合函数
- 7.7 函数总结(了解内容)
- 7.1数据处理函数(单行处理函数)
- 8、分组查询
- 8.1、group by
- 8.2、having
- 8.3、select语句总结
- 9、连接查询
- 9.1、SQL92语法
- 9.2、SQL99语法
- 10、子查询
- 10.1、在where语句中使用子查询,也就是在where语句中加入select语句
- 10.2、在from语句中使用子查询,可以将该子查询看做一张表
- 10.3、在select语句中使用子查询
- 11、union
- 11.1、union可以合并集合(相加)
- 12、limit 的使用
- 12.1、取得前5条数据
- 12.2、从第二条开始取两条数据
- 12.3、取得薪水最高的前5名
- 13、表
- 13.1、创建表
- 13.2、增加/删除/修改表结构
- 13.2.1、添加字段
- 13.2.2、修改字段
- 13.2.3、删除字段
- 13.3、添加、修改和删除
- 13.3.1、insert
- 13.3.2、update
- 13.3.3、delete
- 总结
- 13.4、创建表加入约束
- 13.4.1、非空约束,not null
- 13.4.2、唯一约束,unique
- 13.4.3、主键约束,primary key
- 13.4.4、外键约束,foreign key
- 13.4.5、级联更新与级联删除
- 13.4.5.1、on update cascade;
- 13.4.5.2、on delete cascade;
- 13.5、t_student和t_classes完整示例
- 14、存储引擎(了解)
- 14.1、存储引擎的使用
- 14.2、常用的存储引擎
- 14.2.1、MyISAM存储引擎
- 14.2.2、InnoDB存储引擎
- 14.2.3、MEMORY存储引擎
- 14.3、选择合适的存储引擎
- 15、事务
- 15.1、概述
- 15.2、事务的提交与回滚演示
- 15.3、自动提交模式
- 15.4、事务的隔离级别
- 15.4.1、隔离级别
- 15.4.2、四个隔离级别
- 15.4.3、隔离级别与一致性问题的关系
- 15.4.4、设置服务器缺省隔离级别
- 15.4.5、隔离级别的作用范围
- 15.4.6、查看隔离级别
- 15.4.7、并发事务与隔离级别示例
- 16、索引
- 16.1、索引原理
- 16.2、索引的应用
- 16.2.1、创建索引
- 16.2.2、查看索引
- 16.2.3、使用索引
- 16.2.4、删除索引
- 17、视图
- 17.1、什么是视图
- 17.2、创建视图
- 17.3、修改视图
- 17.4、删除视图
- 18、DBA命令(了解)
- 18.1、新建用户
- 18.2、授权
- 18.3、回收权限
- 18.4、导出导入
- 18.4.1、导出
- 18.4.1.1、导出整个数据库
- 18.4.1.2、导出指定库下的指定表
- 18.4.2、导入
- 19、数据库设计的三范式
- 19.1、第一范式
- 19.2、第二范式
- 19.3、第三范式
- 19.4、三范式总结
- 作业
- 1、取得每个部门最高薪水的人员名称
- 2、哪些人的薪水在部门的平均薪水之上
- 3、取得部门中(所有人的)平均的薪水等级
- 4、不准用组函数(Max),取得最高薪水
- 5、取得平均薪水最高的部门的部门编号
- 6、取得平均薪水最高的部门的部门名称
- 7、求平均薪水的等级最低的部门的部门名称
- 8、取得比普通员工(员工代码没有在mgr字段上出现的)的最高薪水还要高的领导人姓名
- 9、取得薪水最高的前五名员工
- 10、取得薪水最高的第六到第十名员工
- 11、取得最后入职的5名员工
- 12、取得每个薪水等级有多少员工
- 13、面试题
- 14、列出所有员工及领导的姓名
- 15、列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称
- 16、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门.
- 17、列出至少有5个员工的所有部门
- 18、列出薪金比"SMITH"多的所有员工信息.
- 19、列出所有"CLERK"(办事员)的姓名及其部门名称,部门的人数.
- 20、列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数.
- 21、列出在部门"SALES"<销售部>工作的员工的姓名,假定不知道销售部的部门编号.
- 22、列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,雇员的工资等级.
- 23、列出与"SCOTT"从事相同工作的所有员工及部门名称.
- 24、列出薪金等于部门30中员工的薪金的其他员工的姓名和薪金.
- 25、列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金.部门名称.
- 26、列出在每个部门工作的员工数量,平均工资和平均服务期限.
- 27、列出所有员工的姓名、部门名称和工资。
- 28、列出所有部门的详细信息和人数
- 29、列出各种工作的最低工资及从事此工作的雇员姓名
- 30、列出各个部门的MANAGER(领导)的最低薪金
- 31、列出所有员工的年工资,按年薪从低到高排序
- 32、求出员工领导的薪水超过3000的员工名称与领导名称
- 33、求出部门名称中,带'S'字符的部门员工的工资合计、部门人数.
- 34、给任职日期超过30年的员工加薪10%.
- 教务管理系统(项目)