1
数据库原理与应用技术
1.5.4.4 4.4.4 概念模型设计案例:学院教学管理数据库
4.4.4 概念模型设计案例:学院教学管理数据库

前面讲的需求分析中,虽然通过数据分析可得到一些数据的描述,如数据流图,但它们是无结构的,必须在此基础上转换为有结构的、易于理解的精确表述,这部分工作便是概念设计。概念设计主要是概念模型的设计,是数据库系统设计阶段很关键的一步,它独立于数据库的逻辑结构,也独立于具体的DBMS。

前面已经对学院教学管理系统进行了功能分析及数据字典的描述。根据前面的需求分析,我们可以抽取出相关的信息。学院里有若干个系,每个系有若干个教师,开设若干个专业。每个专业每年招收的学生被编成若干个班集体,通常每个班都有一名教师做班主任。整个教学管理工作包括:组织制订各专业培养计划,编制教师各学期的教学工作内容,登记学生各门课程的成绩。

由于该系统只关心在校学生及其相关信息,所以毕业生的信息将移至另外的数据库。整个教学管理系统是一个客户/服务器系统,我们要设计的数据库将驻留在教务处的一个SQL服务器上。

根据需求分析的结果进行业务主题的抽象,大致可将系统分成两个范围:制订专业培养计划和日常教学工作。

1. 制订专业培养计划

制订专业培养计划工作由教务处组织各系的主任及教授完成。一份专业培养计划规定了该专业学生应学习的各门课程。对于本科生和本科教学而言,这是一份四年计划,是指导日常教学工作的重要文件。表4-1所示是一份较典型的专业培养计划的实例。

表4-1 《计算机科学与技术》专业培养计划

根据前面的说明,我们可以抽取相关的实体系、专业、班级、学生。在一个系里,有多个专业,每个专业有多个班级,班级里有多个学生。每个专业都有自己的培养计划。同一个专业的教学计划也在不断修订,以反映学科的进步和市场的需要,所以同一专业、不同年级的培养计划可能是不同的。

表4-1所示是实践中常见的复杂表格。通过对该表格的分析,可知“培养计划”是一个明显的实体。表格中的每一行(一门课)也是一个实体。培养计划中有多门课程,所以要考虑哪些教师能讲哪些课,因此“教师”实体也是所关心的。教师属于一个系,教师讲授不同的课程,以进一步确定实体属性和实体间的联系,由此可得此范围的局部E-R模型(chen模型),如图4-18所示。

图4-18 制订专业培养计划(chen模型)

在概念模型中,还有一种表达方式就是crow的foot模型,此模型中对实体的表达更为细致,每一个实体的属性及实体与实体之间的关系描述与实际应用系统更加贴近。

在概念模型设计中,如果出现实体中的属性有一对多的关系,如培养计划表中有多行的课程信息,则应单独抽出一个实体培养计划项来表达为每一行代表的课程。由于培养计划项是必须依托于培养计划而存在的,所以它们之间是一种依赖关系。同时每一门单独的课程则被培养计划项所采用。同样,对于每一门课程,有理论课和实践课的区别,它们继承课程的数据,但是又有自己独有的数据属性。由此得到另外一种使用Power Designer软件画出的crow的foot模型图,如图4-19所示。

2. 日常教学工作

需求分析中已经详细说明了日常的教学活动,此基础上做进一步分析,可发现每个学期的教学计划来源于培养计划,同时要参考教师、课程和学生的相关信息,从中我们可以抽取学生实体、教师实体和课程实体。由于教学工作还要根据教学计划安排去登记学生各门课程的成绩,所以学生学习课程后还要有相应的成绩。

毕业设计(论文)是一门特殊的课程,每个学生应有一名指导教师、一个题目,最后要进行论文答辩。

图4-19 制订专业培养计划(foot模型)

同一届、同一个专业的学生被编成一个或多个学生班(集体),原则上每个班指定了一名教师做班主任。

通过以上活动所需数据的分析,我们可以在抽取学生实体、教师实体和课程实体的基础上增加毕业设计实体。这些实体之间存在对应的关系,如学生学习课程,教师讲授课程;学生选做毕业设计,教师指导毕业设计;由于每一门课都在教室里上,所以增加了抽取教室实体。通过反复的设计与调整,可得到反映日常教学活动的E-R图,如图4-20所示。

在日常的教学工作中,学校存在各种形式的课程表:教室门口张贴的课程表、任课教师手中的课程表、班集体的课程表……各种课程表的形式和内容不同,而数据库设计的一个重要特点就是将应用系统中不同用户对数据的不同视图进行抽象,所以,对于课程表,其本质是要描述“课程”与“教室”、“教师”及听课的学生“班集体”之间的联系。教务处的人员要根据教师给学生上课来进行课程表的编制,课程表中有对应的课程信息,以及上课的教室、时间等信息,所以应抽取教室实体和课程表实体。建立日常教学管理的foot模型如图4-21所示。

图4-20 日常教学工作E-R图(chen模型)

图4-21 日常教学工作(foot模型)

3. 概念模式汇总

模式汇总就是要将多个局部概念模式合并成一个统一的全局概念模式。模式汇总是一个手工的过程,它要求设计人员对应用领域的业务规划和应用需求有全面的理解,能识别和消除局部模式之间存在的冲突和不一致性。模式汇总过程中的核心工作是冲突消除。图4-22所示为模式汇总后的全局概念模式。

图4-22 模式汇总后的全局概念模式(chen模型)

对图4-22所示的全局模型再次进行分析,由于教务处在具体排课过程中除了给出课程、教师、学生、班级、教室之间的信息外,还要考虑到不同课程的学时数和前后课程的衔接等关系,所以应增加一个排课实体。排课实体引用课程表,课程表中记录每一门课程在每一周的上课时间、节次等信息。

教职工除了指导学生的毕业设计、上课外,部分教职工还可能要做班主任、系主任,应在汇总图中增加对应的联系和属性。同时每个班上还有班长,班长也是一名普通学生,应在学生实体增加是否班长属性。

对应的foot模型如图4-23所示,读者可对照图4-19及图4-21,仔细比较它们之间的差别。

图4-23 模式汇总后的全局概念模式