《数据库设计与应用开发》
课程设计
课程名称 数据库设计与应用开发
设计题目 排课管理系统
专业班级 1106
学生姓名 16、卢琼 17、王倩倩
20、陈思佳 21 马英娇
引言:
由于当下大学学校班级及专业较多,我们学校的实用的帮助班级排课的一个
系统也有迫切需求。基于用 SQL Server 设计的数库的排课系统也有很大的需要,
在本实训作业中,将会针对该实际情况,对我校江西农业大学的学生上课排课系
统的数据库进行设计。
该设计工作由双人合作的形式完成,对一个学期以来数据库系统概论的学习
进行巩固和联系。该排课系统主要设计流程工作大概分为三个阶段:需求分析,
概念结构设计,逻辑结构设计,也将设计的物理结构和数据库实施维护从略讲述,
着重在需求分析上的收集数据形成实体及其联系的数据字典完成,在需求分析的
基础上完成数据流图的基本设计;在概念结构设计上完成数据的抽象形成各子系
统的 E-R 图,最后在解决冲突的分析下完成基本总实体-联系(E-R 图);在逻辑结
构设计阶段中完成数据的抽象及实体的形成,实体的规范分析及完整性约束,以
及设计阶段的有关触发器的创建分析和实现……最后简要对数据库设计的步骤
的物理设计和实施阶段简要概述。
课程设计为实验周两天完成,使用流行的 SQL Server 2005 数据库系统完成
基本设计工作,通过数据库管理系统(DBMS)、T/SQL 基本语句实现数据库表的
创建,表的完整性约束,表的视图及触发器的创建,基本工作都按照实训题要求
基本完成。
2
一、需求分析
需求分析是数据库设计的必要和首要设计阶段,将会影响以后数据库设计的
延续和质量,需求分析方法也很多,最重要是形成有实用价值的实际性的数据字
典和数据流图。在该排课系统的需求分析阶段,主要是通过询问和自己所掌握的
关于该系统的数据联系方式和工作方式,形成了关于该系统的数据字典和数据流
图。
1.1 需求表述
1.1.1 基本功能描述
排课系统的数据库设计主要完成工作有:
1、数据库管理员对数据的录入和相关完整性条件约束的建立,
2、数据库相关的触发器与存储过程对数据库中数据的联系的管理;
3、执行程序能够高效率地完成数据处理和调用;
4、能够通过 DBMS 建立一系列视图来更方便的操作数据库。
1.1.2 开发技术描述
开发工具:Microsoft SQL Server 2005
SQL Server 2005 是 microsoft 公司推出的数据库管理系统,该版本继承了
SQL Server 2000 版本的优点,同时又比它增加了许多更先进的功能。具有使用
方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行 Microsoft Windows
2000 电脑到运行 Microsoft Windows XP 的大型多处理器的服务器等多种平台使
用。本实验中最终将使用 Microsoft SQL Server 2005 数据库管理系统将我
们设计的数据库实现。
1.2 分析形成初步数据字典
数据字典(Data Dictionary,DD)是数据库设计需求分析阶段后通过科学的处
理方法得到的该系统中各类数据描述的集合,也是进行详细数据收集和数据分析
所获得的主要成果,它在数据库设计中占有恨重要的地位。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程 5 个部
分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,
以下将把分析收集的数据及其结构列出:
3
1、 课程相关数据(表 1)
字段名称
课程号
说明
课程代号
功能
表示该课程
数据类型
int
的一个代号
课程名
课程名
这个课程的
名称
上课类别
课程类别
该课程的上
课形式(教室类)
char
tinyint
宽度
8
注:教室类别中的 tinyint 从 1~4 分别代表取值为普通教室、多媒体教室、半
多媒体教室、实验机房,也可以由具体其它教师类别进行扩充。
2、 班级数据(表 2)
字段名称
班号
说明
班级代号
功能
代表这个班
级的号码(表示
院系)
数据类型
int
宽度
班名
人数
班级名称
表示这个班
级的名字
班级人数
该班级包括
char
int
的人数
3、 教师数据(表 3)
说明
字段名称
教师号
教师名
专业
教师代号
教师姓名
教师职称
功能
老师的代码
教师的名字
反映了这个
老师的职称
数据类型 宽度
int
char
char
性别
教师性别
表示老师的
char
8
10
10
2
字段名称
教室号
4、教室数据(表 4)
说明
教室代
号
教室规
模
教 室 规
模
教室类
教室类
别
性别
功能
表示这个教
室位置
表示这个教
室可以容纳的人
户
表示是否有
多媒体设置
4
数据类型 宽度
int
int
tinyint
注:教室类别中的 tinyint 从 1~4 分别代表取值为普通教室、多媒体教室、半
多媒体教室、实验机房,也可以由具体其它教师类别进行扩充。
5、班级课程数据(表 5)
字段名称
班号
说明
班级代号
功能
表示这个班
课程号
课程代号
表示该班级
级
课时数
课时数目
周数
课时周数
的该课程
表示该班级
该课程的课时数
目
表示该班级
该课程的上课周
数目
6、班级课时数据(表 6)
字段名称
班号
课程号
时间号
说明
班级代号
课程代号
时间代号
功能
班级的代号
课程的代号
该班级上该
课程的时间点
教师号
教师代号
上课老师的
教室号
教室代号
代号
教室
上该次课的
数据类型 宽度
int
int
int
int
数据类型 宽度
int
int
int
int
int
注:星期的属性值范围 tinyint 中从 1~5 分别代表值是周一到周五;节次的
属性值范围 tinyint 中从 1~4 分别代表值是 1~2 节,3~4 节,5~6 节,7~8 节。
7、授课数据(表 7)
字段名称
教师号
课程号
说明
教师代
课程代
号
号
功能
数据类型 宽度
int
int
注:一个老师可能教授多门课程的情况也存在。
8、教室使用状态数据分析(表 8)
5
字段名称
说明
功能
数据类型 宽度
教室号
时间号
教室的代号
时间代号
是否空
使用情况
哪个时间点
教室在用状态
该教室在时
间段内是否被使
用
int
int
char
2
注:标注教室使用情况,以便于进行排课时不至于冲突。
9、学期的时间分配数据(表 9)
字段名称
说明
功能
数据类型 宽度
int
时间号
时间代号
时间周
时间星期
周次
星期
节次
注:星期的属性值范围 tinyint 中从 1~5 分别代表值是周一到周五;节次的属
tinyint
inyint
tinyint
节次
性值范围 tinyint 中从 1~4 分别代表值是 1~2 节,3~4 节,5~6 节,7~8 节。
以上各是需求分析后形成的数据的部分数据字典,基本描述了各种数据及其
结构,没有对数据的数据存储进行较多的描述。
1.3 基本数据流图
通过以上的分析和各类数据的形成,也将在以下画出该系统的基本简单数据
流图,数据流图(Data Flow Diagram,DFD)为概念结构设计和形成初步基本
E-R 图做好准备。
下图为得到的基本数据流程图:
6
人数
班 级
教 室
人数
可用教室
分析教室
教室状态
班级课程
课程号
班级号
排课处理
教室类别
课 程
老
师
号
课程号
教师授课
时间点
数
据
流
出
班级上课时段
基本数据流程图(图 1)
注:在该数据流程图中简要将系统的数据流向标示,在排课处理中综合所有
的相关数据,最后得到一个班级一门课程在一个时间点的上课地点和任课老师。
7
二、概念结构设计
将以上需求分析阶段得到的数据字典及数据流程图整合为对应得到实体联
系图,为下一步逻辑结构设计中创建关系代数模型和建立相应得表做最后的分析
准备。
2.1 数据各实体及其属性
以下各图将系统所有实体的属性集合表示如下:
教 师
班 级
教师号
性别
姓名
专业
班号
班 名
名
人 数
教 室
课 程
教室号
教 室 类
教室规模
课程号
课程名
上课类别
班级课
授课
课程号
班级号
课时数
周数
教师号
课程号
8