文档介绍:第十一章一个数据库应用系统的设计与实现
应用背景与需求说明
在单机上实现一个教学管理系统的例子,并且可以很容易地把它移植到C/S结构中,只涉及教学管理中的对学生、课程和教师的管理部分:
项目的具体要求是:
.运行环境是Windows 95/98操作系统,数据库的前端开发环境是VB 。
一门课程可由多名教师来讲授。
一个教师可讲授多门课程。
一个学生可以选修多门课程。
需产生的报表有
.每学期开学时要生成学生修课情况表,内容包括学号、姓名、课程名、修课类别,其中修课类别分为必修、选修、重修。
.每学期结束时要生成学生修课成绩表,内容包括学号、姓名、课程名、修课类别、平时成绩、卷面成绩、总评成绩。
生成教师授课服务表,内容包括教师号、教师名、课程名、授课类别、学时数、班数,授课类别分为主讲、辅导、带实验。
安全性要求
本门课程的主讲教师才具有对其所讲授课程的成绩的修改权,教学秘书和系主任才有修改教师授课服务表中的内容的权力。其它人只有查询有关信息的权力。
数据库设计
概念设计
核心活动:是系统中的其它活动都是围绕这个活动展开的或与此活动是密切相关的活动
确定系统的核心活动:对现实系统分析的关键
该教学管理系统中,核心活动就是授课,学生与课程之间是通过授课发生联系的,教师与课程之间是通过教师授课发生联系的。系统所包含的实体:
课程:元素为由一个主讲教师负责且教学内容相同的教学活动
单位,用课程号来标识此实体。
学生:元素为一个学生,由学号来标识。
教师:元素为一个教师,由教师号来标识。
初步E-R图:
课程号、课程名、讲授学期、学时数
学号、姓名、系、专业、班级
教师号、教师名、系、教研室
数据库设计
设计关系模式
设计基本关系模式主要就是从E-R图出发,将其直接转换为关系模式。转换的规则为:
。实体的属性就是关系的属性,实体的主码就是关系的主码。
,该关系模式的属性由与该联系相连的各个实体的主码及该联系的属性组成,该联系的主码分三种情况:
. 若联系是1:1的,则每个实体的主码即是该联系的候选码。
. 若联系是1:n的,则此联系的主码是n端实体的主码。
. 若联系是m:n的,则此联系的主码是各个实体的主码的并。
此E-R图的关系模式为:
(1)课程(课程号,课程名,讲授学期,学时数),主码为课程号。
(2)学生(学号、姓名、系、专业、班),主码为学号。
(3)教师(教师号、教师名、系、教研室),主码为教师号。
(4)修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主码为(学号,课程号)。
(5)授课(课程号,教师号,授课类别,班数),主码为(课程号,教师号)。
设计关系模式确定表中各属性的详细信息
(1)课程表
课程号:字符串型,10字节,主码
课程名:字符串型,20字节,非空
讲授学期:字符串型,2字节,非空
学时数:整型,非空
(2) 学生表
学号:字符串型,10字节,主码
姓名:字符串型,20字节,非空
系:字符串型,20字节,非空
专业:字符串型,20字节,非空
班:字符串型,10字节,非空
(3) 教师表
教师号:字符串型,10字节,主码
教师名:字符串型,20字节,非空
系:字符串型,20字节
教研室:字符串型,10字节
(4) 修课表
学号:字符串型,10字节,主码,学生表的外码
课程号:字符串型,10字节,主码,课程表的外码
修课类别:字符串型,4字节,非空
平时成绩:浮点型,大于等于0,小于等于100
卷面成绩:浮点型,大于等于0,小于等于100
总评成绩:浮点型,大于等于0,小于等于100
(5) 授课表
课程号:字符串型,10字节,主码,课程表的外码
教师号:字符串型,10字节,主码,教师表的外码
授课类别:字符串型,10字节
班数:浮点型,大于0。假设选修课有半个班的情况,因此取浮点型。
确定数据库应用的功能
最常用的功能就是对数据的增、删、改、查及生成报表
(增加)
本例三张报表:
(1) 学生修课表(学号,姓名,课程名,修课类别)
(2) 学生成绩表(学号,姓名,课程名,修课类别,平时成绩,卷面成绩,总评成绩)
(3) 教师授课服务表(教师号,教师名,课程名,授课类别,学时数,班数)
创建视图的SQL语句可描述为:
CREATE VIEW 学生修课表(学号,姓名,课程名,修课类别)AS
SELECT ,,, FROM 学生,课程,修课 WHE