-
1
-
2
3.6数据库应用示例
“学生选课管理系统”数据库是本节使用的简化数据库示例,通过一个具体的数据库示例来说明数据库应用系统的查询设计和实现过程,了解如何使用MySQL实现数据管理。
3.6.1 需求分析
本节在“学生选课管理系统”数据库中只涉及对学生、课程和教师的数据管理,因此系统要求录入学生、课程、教师的基本信息和学生的选课情况、教师的授课情况。
1.系统业务
]一门课程可以由多名教师讲授。
]一名教师可讲授多门课程,但在同一个学期对一门课程只能讲授一次。
]一名学生可以选修多门课程,但对同一门课程只能修一次。
]一门课程可以被多名学生选修。
]对学生选课情况,要录入学生的学年、学期、选课课程和考试成绩。考试成绩的取值范围0~100分之间。学年用年份表示:如2014;学期取值为:(1,2);1表示上半年学期;2表示下半年学期。
]一个学生对一门课程最多有3次考试机会,第一次为正常考试,以后两次为补考。
]教师授课时,要录入教师在每个学年和学期对每一门课程的授课时数的授课类别,其中授课类别为:主讲、辅导和实验。假设一名教师一次最多只能担任一门课程的主讲、辅导和实验工作中的某一项工作。
2.系统的基本信息
]学生基本信息:学号,姓名,性别,所在系,专业,专业编号。
]课程基本信息:课程编号,课程名称,学分,开课学期,课程性质,考试形式,授课时数,实验时数。其中课程性质为:必修和选修。考试形式为:考试和考查;学分整数为范围1~8。开课学期整数范围为l~20;授课时数正整数为0~98。
]教师基本信息:教师编号,教师名称,性别,职称,学历,出生日期,所在部门。其中学历为:本科,硕士,博士,博士后;职祢为:助教,讲师,副教授,教授。
3.系统查询
]学生选课情况查询:每个学期开学初以专业为单位,生成一份该学年和学期某专业学生的选课情况表,内容包括:专业编号、学号、姓名、课程名称。
]学生考试成绩查询:每个学期结束时以专业为单位,生成一份该学年和学期某班学生的考试成绩表,内容包括:专业编号、学号,姓名、课程名称、考试成绩。
]学生累计修课总学分查询:每个学生生成累计修课的总学分,内容包括:学号、姓名、专业编号、总学分。说明:只有考试成绩及格的课程才获得学分。
]教师授课查询:每个学期在确定好教师授课任务后,以所在部门为单位,生成一份该学年和学期某部门的教师授课情况表,内容包括:所在部门、教师名、课程名、授课类别,授课时数。
3.6.2 数据库结构设计
1. 概念结构设计
概念结构设计是根据需求分析的结果,生成概念结构设计的E-R模型。由于这个系统比较简单,因此采用自顶向下的设计方法。此系统包含的实体有:
]学生:用于描述学生的基本信息,用学号标识。
]课程:用于描述课程的基本信息,用课程编号标识。
]教师:用于描述教师的基本信息,用教师编号标识。
由于一名学生可以选修多门课程,并且一门课程可以被多个学生选修。因此学生和课程之间是多对多的联系。由于一门课程可由多名教师讲授,而且一名教师可以讲授多门课程,因此教师和课程之间也是多对多联系。基本E-R模型如图所示。学生、课程和教师E-R模型分别如图3-29所示。
2.逻辑结构设计
(1)设计关系模式
设计关系模式主要是从上述的E-R模型出发,将其直接转换为关系模式。将上述E-R模型转换出关系模式,其中主键用下划线标识:
]学生(学号,姓名,性别,所在系,专业,专业编号)
]课程(课程编号,课程名称,学分,开课学期,课程性质,考试形式,授课时数,实验时数)
]教师(教师编号,教师名称,性别,职称,学历,出生日期,所在部门)
]选课(学号,课程编号,考试次数,选课学年,选课学期,考试成绩),其中学号是参照“学生”关系模式的外键;课程编号是参照“课程”关系模式的外键。
]授课(课程编号,教师编号,学年,学期,授课类别,授课时数),其中课程编号为参照“课程”关系模式的外键,教师编号为参照“教师”关系模式的外键。
(2)设计外模式
在数据库应用系统中,用户需要大量的查询查看有用信息,而查询的内容均来自数据库中的关系模式。我们可以将查询看成是满足不同用户需求的外模式,而且在实际实现过程中,查询也常常用外模式来定义。在设计关系模式阶段定义的“学生选课管理系统”数据库包含的全部关系模式的结构,下面根据这些关系模式确定查询的需求,因此设计外模式如下。
“学生选课管理系统”数据库基本要求4个查询:学生选课情况查询、学生选课成绩查询、学生累计修课总学分查询和教师授课查询:
]学生选课情况查询:专业编号、学号、姓名、课程名称。
其中,“专业编号”,“学号”,“姓名”由“学生”关系模式得到;“课程名称”由“课程”关系模式得到。
]学生考试成绩查询:专业编号、学号、姓名、课程名称、考试成绩。
其中,这些信息从“学生”、“课程”和“选课”3个关系模式得到。
]学生累计修课总学分查询:学号、姓名、专业编号、总学分。
其中,“学号”,“姓名”,“专业编号”从“学生”关系模式得到,但“总学分”在所有关系模式中都没有,可从“课程”关系模式中的“学分”累计得到。
]教师授课查询:所在部门、教师名称、授课课程名称、授课类别、授课时数。
其中,“所在部门”,“教师名称”可从“教师”关系模式得到,“授课类别”和“授课时数”可从“授课”关系模式得到,“授课课程名”从“课程”关系模式中得到。
3.6.3 数据库行为设计
数据库应用系统常用的功能是安全控制功能、数据的增加、删除,修改和查询功能。本系统包含这些基本的操作。
1.安全控制
假设将“学生选课管理系统”数据库的用户分为如下几类:
]系统管理员:具有系统的全部操作权限。
]教务部门:具有对学生基本信息、课程基本信息和教师授课信息的维护权。
]人事部门:具有对教师基本信息的维护权。
]各个系:具有对学生的选课信息的维护权。
]普通用户:具有对数据的查询权。
在实现应用系统时,将每一类用户定义为一个角色,这样在授权时只需对角色授权,而无需对每个具体的用户授权。
2.数据操作功能
数据操作功能包括对这些数据的录入、删除、修改功能。具体如下:
(1)数据录入
包括对系统涉及到的6张表数据的录入,只有具有相应权限的用户才能录入相应表中的数据。
(2)数据删除
(3)数据修改
(4)数据查询
以上“学生选课管理系统”数据库简化示例,可以参照本节介绍的方法完成管理系统功能。


