1、数据库设计的典型案例数据库设计的典型案例 1/27 第八章 数据库设计的典型案例 本章要点 ? 学生选课管理系统的数据库设计 本章学习目标 ? ? ? ? 学生选课管理系统的需求分析 学生选课管理系统的ER图 学生选课管理系统的关系数据库模式 学生选课管理系统数据库的建立 1 数据库设计的典型案例 2/27 在第7章里我们已经学习了有关数据库设计的基本理论和方法。本章通过学生选课管理系统数据库设计案例,实际讲授数据库的设计方法,加深对第七章的理解,提高我们的综合设计的能力。 8.1 案例的系统需求简介 8.1.1总体需求简单介绍 需求分析阶段是数据库应用系统开发的最重要阶段。需求分析要求应用系
2、统的开发人员按照系统的思想,根据收集的资料,对系统目标进行分析,对业务的信息需求、功能需求以及管理中存在的问题等进行分析,抽取本质的、整体的需求,为设计一个结构良好的数据库应用系统的逻辑模型奠定坚实的基础。 高等学校的学生选课管理系统,在不同的学校会有不同的特点,因为作为教务工作部分它和学校本身的行政制度有关。本章的目的在于,作为数据库设计和应用开发的运用对象,对业务进行适度的简化,突出比较核心的成分,如院系算作一个级别的概念而且直接管理班(跳过专业一级的设置),学生的免修重修等情况处理、教师的管理没有细化等。 8.1.2用户总体业务构造 学生选课管理业务,包括4个主要部分:学生的学籍及成绩管
3、理、制定教学计划、学生选课管理以及教学调度。各部分具体的内容: (1) 学籍及成绩管理包括:各院系的教务员完成学生学籍注册、毕业、转学等处理, 各授课教师完成所讲授课成绩的录入,然后教务员进行学生成绩的审核认可。 (2) 制定教学计划包括:由教务部门完成指导性教学计划、培养方案的确定,开设 课程的注册和调整。 (3) 学生选课包括:学生根据开设课程和培养计划(和自己的状况)选择自己本学期 所选修课程,教务员对学生所选修课程的确认处理。(注意:一般的必修课程是由教务员统一处理,只有辅修的课程才经过学生的选择过程) (4) 执行教学调度包括:教务员根据本学期所开设的课程、教师上课的情况以及学 生选
4、课情况完成排课、调课等。 8.1.3其它要求 如安全性,系统环境要求(根据现有的设备情况进行系统运行)等,这些不是本章的核心内容,所以就不再进一步叙述。 2 数据库设计的典型案例 3/27 8.1.4系统功能设想 这里的功能划分,是根据第一阶段需求调查基础上进行的初步划分。随着需求调查的深入,功能模块随着对需求了解的明确得到调整。 教务管理业务的4个主要部分,可以将系统应用程序划分为对应得4个子模块:包括学籍及成绩管理子系统、教学计划管理子系统、学生选课管理子系统以及教学调度子系统。根据各业务子系统所包括业务内容,还可以将各个子系统继续细化划分为更小的功能模块。划分的准则主要遵循模块的内聚性要
5、求和模块间的低聚合性。如图所示表示一个教务管理系统功能模块结构图。 应用系统基础数据和辅助管理用户登录及其验证登出及退出系统教学计划管理学籍和成绩管理学生选课管理教学调度录教入学和计修划改的课入程和资修料改的录学籍注册成绩管理及学毕生业转处理学选和课调输整入选课数据审核教学安排教学调整 图8. 1选课管理系统功能结构图 8.1.5业务流程分析 一个简化的选课系统业务流程如图8.2所示: 3 数据库设计的典型案例 4/27 教学计划 各院系 教务处 教学计划编辑 教学计划 原始开课生成 原始开课 学生选课(选课情况) 任课教师名单 实际开课生成 实际开课 教师 成绩录入 学生成绩细表 学生信息审
6、核 毕业、转学休学等 图8. 2 选课管理系统业务流程 8.2 需求描述 本阶段的成果的内容形式主要包括数据流图(Data Flow Diagram)和数据字典(Data Dictionary)。数据流图和数据字典是描述用户需求的重要工具以及阶段成果表达形式。它作为需求分析的成果和用户交流的主要手段和依据,是后续数据库设计的前提。设计人员从数据流图中可以比较充分地了解软件的结构,所以也是软件设计的重要依据。 调查了解用户的需求后,需要进一步表达用户的需求,分析和表达用户需求的方法很多,目前最常用的还是结构化分析法。该方法是基于数据流的需求分析方法,它 4 数据库设计的典型案例 5/27 利用了
7、图形的方式进行表达,容易学习和运用。 结构化分析法采用的是自顶向下、逐层分解的方式分析系统,即将系统的功能从宏观层面逐渐细化,达到最终的结构化分析方法主要使用以下几个工具:数据流图(Data Flow Diagram简称DFD)、数据字典(Data Dictionary简称DD)、判定表和判定树等。 数据流图描述了数据的来源和去向,以及所经过的处理;而数据字典是对数据流图中的数据流、数据存储和处理的明细描述。判定树和判定表用来描述据加工的逻辑构造。 不同的应用环境,对数据描述的细化程度会有所不同,常常应实际情况而定。下面就使用这两种工具来描述本例的用户需求,体现他们在实际中的应用方法。 8.2
8、.1 数据流图 数据流图是通过系列符号及其组合来描述系统功能的输入、输出、处理或加工构造。 数据流图中使用的符号在各种书籍和资料上表达不尽相同,目前许多常用的一些流行的数据库辅助设计工具如Microsoft Visio、Sybase PowerDesigner、Oracle Designer、Rational Rose、Erwin等符号都不统一,我们这里以比较容易上手的Visio工具为例,针对Gane-Sarson模板中的符号作为参考: 数据源点或终点 ,或者外部实体数据流加工或处理数据存储 图8. 3 Gane-Sarson模板中数据流图的基本元素 注意:DFD表示数据被加工或处理的过程,箭头只是表示数据流动的方向,不能有分支、循环的情况。 数据流图命名规则之一:数据流图的中加工、处理过程一般采用动词及其短语;数据源点或终点、数据存储(数据文件或表单形式)、数据流(一项或多项数据)等一般为名词或名词短语。 数据流图命名规则之二:流图中的命令所使用的语言要基本上反映实际的情况,在整个DFD中必须要唯一,尽量避免含有像加工、处理、存储这样的元名称。 1。系统的全局数据流图 系统的全局数据流图,在具体的设计工具中往往也称为第0层或顶层数据流图, 5 4 / 4