《讲数据库设计》PPT课件.ppt
第4讲 数据库设计,理解数据库设计基本概念掌握数据库设计步骤理解并掌握数据库设计具体内容熟练掌握数据库需求分析中的数据字典,DFD(重点),6.2 需求分析,具体而言,需求分析阶段的任务包括以下方面:1.分析用户需求,确定系统边界,为建立系统概念模型做准备具体的做法是:(1)调查组织机构情况。包括了解该组织的部门组成情况、各部门的职责及权限等。(2)调查各部门的业务活动情况,包括了解各部门输入和使用什么数据,如何加工处理这些数据?输出什么信息?输出到什么部门?谁可以处理这些信息?输出结果的格式是什么?这是调查的重点,否则会出现不可预计的严重问题。,6.2 需求分析,(3)在熟悉业务的基础上,明确用户对新系统的各种要求,如信息要求,处理要求,完全性和完整性要求,这些内容的明确与否直接决定了数据库系统的功能与要求是否满足用户最终需求。(4)确定系统边界。即确定哪些活动由计算机来完成,哪些只能由人工来完成。由计算机完成的功能是新系统应该实现的功能。这里还要注意,一定要确定哪些是数据库应用系统应该实现的,哪些不是这个系统应该实现的,否则会使数据库设计人员陷入无限的维护与功能扩充的被动局面。,6.2 需求分析,2.编写系统需求分析说明书系统需求分析说明书也称系统需求规范说明书,是系统分析阶段的最后工作,是对需求分析阶段的一个总结,编写系统需求分析说明书是一个不断反复、逐步完善的过程。系统需求分析说明书一般应包括如下内容:(1)数据库系统概况,包括系统的背景、目标、范围、历史和现状及参考资料用户群体等。(2)数据库系统的原理和技术。(3)数据库系统总体结构和子系统结构说明、接口定义。(4)数据库系统总体功能和子系统功能说明。(5)数据库系统数据处理概述、工程项目体制和设计阶段划分。(6)数据库系统方案及技术、经济、实施方案可行性等。(7)系统验收标准。,6.2 需求分析,3.数据字典数据字典是系统中各类数据描述的集合,是各类数据结构和属性的清单。它与数据流图互为解释,数据字典贯穿于数据库需求分析直到数据库运行的全过程,在不同的阶段其内容形式和用途各有区别,在需求分析阶段,它通常包含以下五个部分内容。(1)数据项(2)数据结构(3)数据流(4)数据存储(5)处理过程,6.2 需求分析,以下列出“学生成绩管理系统”的部分数据字典条目:数据项是不可再分的数据单位。,6.2 需求分析,数据结构反映了数据之间的组合关系。,6.2 需求分析,数据流是数据结构在系统内部传输的路径,6.2 需求分析,数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。,6.2 需求分析,处理过程的具体处理逻辑一般用判定表或判定树描述。,6.2 需求分析,4.数据流图数据流图中的基本元素有:(1)圆圈表示处理,输入数据在此进行变换产生输出数据。其中注明处理的名称。(2)矩形描述一个输入源点或输出汇点。其中注明源点或汇点的名称。(3)命名的箭头描述一个数据流。被加工的数据及其流向,流线上注明数据名称,箭头代表数据流动方向。最终形成的数据流图和数据字典为“系统需求分析说明书”的主要内容,这是下一步进行概念设计的基础。,6.2 需求分析,DFD特性 抽象性:在DFD中具体的组织机构、工作场所、物质流等都已经去掉,只剩下信息和数据存储、流动、使用以及加工的情况。故描述的是抽象出来的数据。概括性:它把系统对各种业务的处理过程联系起来考虑,形成一个总体,可反映出数据流之间的概括情况。,6.2 需求分析,DFD用途自顶而下分析系统的信息流程。在图上确定需要计算机处理的部分。向数据库设计过渡。根据数据流向确定存取方式。能够对应一个处理过程。,6.2 需求分析,DFD优缺点总体概念强:每层明确“干什么”、“需要什么”、“给出什么”。可反映出数据流向的处理过程。容易及早发现系统各部分逻辑错误。易与计算机处理对照。不直观。人工绘制太麻烦,工作量较大。,6.2 需求分析,数据流图的步骤对于不同的问题,数据流图可以有不同的画法。一般情况下,应该遵守“由外向里”的原则。即先确定系统的边界或范围,再考虑系统的内部,先画加工的输入和输出,再画加工内部。具体实行时可按下述步骤进行:,6.2 需求分析,(1)识别系统的输入和输出,画出顶层图即确定系统的边界。在系统分析初期,系统的功能需求等还不很明确,为了防止遗漏,不妨先将范围定得大一些。系统边界确定后,那么越过边界的数据流就是系统的输入或输出,将输入与输出用加工符号连接起来,并加上输入数据来源和输出数据去向就形成了顶层图,6.2 需求分析,(2)画系统内部的数据流、加工与文件,画出一级细化图从系统输入端到输出端(也可反之),逐步用数据流和加工连接起来,当数据流的组成或值发生变化时,就在该处画一个“加工”符号。画数据流图时还应同时画上文件,以反映各种数据的存贮处,并表明数据流是流入还是流出文件。最后,再回过头来检查系统的边界,补上遗漏但有用的输入输出数据流,删去那些没被系统使用的数据流。,6.2 需求分析,(3)加工的进一步分解,画出二级细化图同样运用“由外向里”方式对每个加工进行分析,如果在该加工内部还有数据流,则可将该加工分成若干个子加工,并用一些数据流把子加工联接起来,即可画出二级细化图。二级细化图可在一级细化图的基础上画出,也可单独画出该加工的二级细化图,二级细化图也称为该加工的子图。,6.2 需求分析,(4)其它注意事项一般应先给数据流命名,再根据输入/输出数据流名的含义为加工命名。名字含义要确切,要能反映相应的整体。若碰到难以命名的情况,则很可能是分解不恰当造成的。应考虑重新分解。,6.2 需求分析,从左至右画数据流图。通常左侧、右侧分别是数据源和终点,中间是一系列加工和文件。正式的数据流图应尽量避免线条交叉,必要时可用重复的数据源、终点和文件符号。此外,数据流图中各种符号布置要合理,分布应均匀。画数据流图是一项艰巨的工作,要做好重画的思想准备,重画是为了消除隐患,有必要不断改进。,数据流图举例,绘制第0层DFD的时候,将整个系统看成一个加工,然后找出作用于该加工的外部实体,以及相应的数据输入和输出。对于“学生成绩管理系统”而言,整个系统就是一个加工“学生成绩管理”。从用户的需求描述可知,“教务人员”是数据的源点,“学生”是数据的终点。另外,教务人员需要录入学生信息、课程信息和成绩,说明“学生信息”、“课程信息”和“成绩”是数据流;同样,“查询请求”和“查询结果”也是数据流。根据上述分析,得到如图所示的第0层DFD,数据流图举例,第0层DFD图教务人员维护学生信息和课程信息,并登录学生的选课成绩;学生查询自己的成绩单。,数据流图举例,绘制下一层数据流图时,细化第0层的加工“学生成绩管理”,从而描述系统的主要功能。从第0层DFD得知,“学生信息”是教务人员需要录入的一个信息,因此加入一个加工”录入学生信息“,同样得到”录入课程信息“、”登记成绩“两个加工。另外,数据流“查询请求”和“查询结果”应该由加工“查询成绩”来完成。这样,我们用“录入学生信息”、“录入课程信息”、“登记学生成绩”和“查询学生成绩”四个加工代替第0层的“学生成绩管理”,同时增加这些数据流对应的数据存储,即“学生”、“课程”和“成绩”最后得到如图所示的第1层DFD。,第1层DFD图对第0层DFD图中的一个加工学生成绩管理进行展开,数据流图举例,为了继续进行分解,我们分析第1层DFD中的加工“查询学生成绩”。学生查询成绩时需要提供合法性检查,因此,“查询学生成绩”可以分解为“合法性检查”和“查询成绩”两个处理步骤从而形成如图所示的第2层DFD,第2层DFD图对第1层DFD图中的一个加工查询学生成绩进行展开。,数据流图举例,根据以上实例和经验,绘制数据流图应当遵循以下原则:(1)分层时,子图的输入、输出数据流必须和父图中相应加工的输入、输出数据流一致;(2)加工的编号应该唯一且具有层次性;(3)加工不应该只有输入或只有输出,通常既有输入又有输出;(4)数据流图不应反映处理的顺序;(5)加工之间应通过数据存储进行通信,避免从一个加工直接流到另一个加工;(6)数据应通过加工进行流动,避免从一个数据存储直接流到另一个数据存储;(7)数据流图中所有元素的命名应当对客户有意义,且与业务相关;(8)不要在一个图中绘制7个以上的加工,否则难于绘制和理解。,