教务管理系统数据表关系图_某中学的排课管理系统(SQL的简单应用)

  • Post author:
  • Post category:其他


一、系统分析

需求功能分析

需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。重点是调查,收集与分析用户在数据管理中的信息要求,处理要求,数据的安全性与完整性要求。

为了完成需求分析的任务,要详细调查待开发的数据库应用部门的情况,了解原系统工作概况,分析用户的各种需求,在此基础上确定新系统的功能。新系统必须考虑今后的扩充和改变,不能仅仅按当前应用需求来设计数据库。

排课管理系统需要实现对学校教师、教室、班级、及课程的信息管理,对高校排课,都有智能的管理,主要实现如下的一些功能:

班级各种信息的输入,包括班级号,班级名称,班级人数。

教师各种信息的输入,包括教师号,教师姓名,职称,性别。

学校课程的增加,删除,修改。

学校课程计划的制定。

检测指定教师、指定节次是否有课;

生成指定班级的课程表;

生成指定老师的课程表;

生成指定学生的课程表;

二、系统数据库设计

1.概念设计

排课管理系统涉及的实体有4个,分别是需要学生、班级、教师、课程。

其中班级与学生是一对多的关系;

班级与课程是多对多的关系;

班级与教师是多对多的关系;

课程与教师是多对多的关系;

89ad35ea15cb9df3d53aaa5604019258.png
图1 学生实体E-R图
6ee3d5dd17ae3ea69f9af0aefecd7da4.png
图2 班级实体E-R图
66b0a126a2d92e7ac5bf6849db0f4b3e.png
图3 教师实体E-R图
afdeb8e0bf550f195da0660650946a5c.png
图4 课程实体E-R图
4b0d92c8a3549cbf0948d1dee1055483.png
图5 E-R总图
  • 学生具有4个属性:学生ID、姓名、性别、班级ID。

    学生ID是主键,班级ID是外键。
  • 教师具有4个属性:教师ID、姓名、性别、年龄。

    教师ID是主键。
  • 班级具有2个属性:班级ID、班级名称。

    班级ID是主键。
  • 课程具有2个属性:课程ID、课程名称。

    课程ID是主键。
  • 联系有1个,联系也可以转换为实体。故排课产生课程表。
  • 课程表具有6个属性:班级ID、教师ID、课程ID、星期、节次、备注。

    星期+节次为主键,班级ID、教师ID、课程ID为外键。

2.逻辑设计

写出上述几个实体的关系模式,实现E-R图向关系模型的转变。

dbaf7d6b0dd8bf8eb307a7da2e580e0b.png

3.物理设计

将上述的实体转换为关系。

8c13fb709be28aba1e94080685a6ca8b.png


三、系统数据库实施

1.写出创建数据库、表、视图、存储过程、函数、触发器的SQL语句

--创建数据库
create database lesson
go
use lesson
go
--创建class表
create table class
(
	classID int primary key,
	classname char(20)
)
Go
--创建student表
create table student
(
	studentID int primary key,
	name	  char(10) not null,
	sex		  char(2)  not null check(sex='F' or sex='M'),
	classID   int references class(classID)
)
Go
--创建teacher表
create table teacher
(
	teacherID int primary key,
	name	  char(10) not null,
	sex		  char(2)  not null check(sex='F' or sex='M'),
	age		  int	   not null	
)
Go
--创建course表
create table course
(
	courseID   int primary key,
	coursename char(20)
)
--创建class_schdule表
use lesson
go
create table course_schdule
(
   classID    int,
   teacherID  int,
   courseID   int,
   weeks      int not null check(weeks>0 and weeks<8),
   lessons    int not null check(lessons>0 and lessons<9),
   remark     char(100),
   constraint pk_schdule primary key(classID,teacherID,courseID,weeks,lessons),
   constraint fk_classID foreign key (classID) references class(classID),
   constraint fk_teacherID foreign key (teacherID)references teacher(teacherID),
   constraint fk_courseID foreign key  (courseID)references course(courseID)
)

2.系统数据表结构关系

数据表结构的关系如图6所示。

c9491fea60846462f0b4ebd025cad4f2.png
图6 系统数据表结构关系图


四、系统数据查询与数据维护

1.插入测试数据(用Insert语句实现)

--向class表中添加数据
use lesson
go
insert into class values('01','物联网')
insert into class values('02','市场营销')
insert into class values('03','机电')
insert into class values('04','电气')
insert into