数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)第十二章数据库设计步骤1.2数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)数据库设计不同阶段不同人员的角色数据库设计阶段系统分析员数据库设计人员应用开发人员部分用户代表需求分析阶段负责核心人员参与概念结构设计阶段核心人员负责参与逻辑结构设计阶段核心人员负责物理结构设计阶段核心人员负责数据库实施阶段核心人员负责参与数据库运行和维护阶段核心人员负责参与参与1.3数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)第十二章数据库设计步骤12.1需求分析12.2概念结构设计12.3逻辑结构设计12.4数据库的物理设计12.5数据库实施12.6数据库运行与维护12.7小结1.4数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)12.1需求分析12.1.1需求分析的任务和过程12.1.2数据流图12.1.3数据字典12.1.4需求分析的注意点1.5数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)12.1需求分析(续)需求分析就是分析用户的需要与要求需求分析是设计数据库的起点。需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设,并影响到设计结果是否合理和实用。1.6数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)12.1.1需求分析的任务和过程一、需求分析的任务二、需求分析的重点三、需求分析的难点四、需求分析的工作过程1.7数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)一、需求分析的任务调查应用领域,对各种应用的信息要求和操作要求进行详细分析,形成需求说明书。详细调查现实世界要处理的对象(组织、部门、企业等),了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求。确定新系统的功能。新系统必须考虑可能的扩充和改变,不能按当前需求来设计数据库。1.8数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)二、需求分析的重点调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。信息要求用户需要从数据库中获得信息的内容与性质。数据库中存储哪些数据。处理要求对处理功能的要求、响应时间的要求、处理方式的要求(批处理/联机处理)。对数据安全性与完整性的要求。1.9数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)三、需求分析的难点确定用户最终需求的难点用户缺少计算机知识,无法确定计算机能为做什么,不能做什么,无法一次准确地表达需求,因此需求往往不断变化。设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。新的硬件、软件技术的出现也会使用户需求发生变化。解决方法与用户不断交流,确定用户的实际需求。1.10数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)四、需求分析的工作过程1.11数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)四、需求分析过程(续)1.调查组织机构情况目的:宏观地了解给定应用领域的组织机构。结果:组织机构图。方法:与该组织的有关领导座谈,由这些领导提供组织机构组成情况。或者提供组织机构图和部门职责的文档。1.12数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)四、需求分析过程(续)2.熟悉各部门的业务活动情况目的:调查各部门的业务活动情况,对现行系统的功能和所需信息有明确的认识。内容:包括了解各个部门输入和使用什么数据;如何加工处理这些数据;输出什么信息,输出到什么部门;输出结果的格式是什么,这是调查的重点。1.13数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)常用的调查方法跟班作业:亲身参加业务工作了解业务活动的情况,此方法较准确了解用户需求,但耗费时间。开调查会:与用户座谈了解业务活动情况及用户需求。可以相互启发。询问:对某些调查中的问题,找专人询问。设计调查表请用户填写:如果调查表设计合理,此方法很有效,易于为用户接受。查阅记录:查阅与原系统有关的数据记录。四、需求分析过程(续)1.14数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)四、需求分析过程(续)3.分析用户需求信息要求处理要求安全性与完整性要求结构化系统分析和设计方法(StructuredAnalysisandDesignTechnique,简称SADT方法)SADT采用自顶向下、最上层的系统组织机构入手,逐层分解的方式分析系统。数据流图和数据字典描述系统。1.15数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)四、需求分析过程(续)4.确定新系统的边界对前面调查的结果进行初步分析;确定哪些功能由计算机或准备让计算机完成;哪些活动由人工完成;由计算机完成的功能就是新系统实现的功能。5.形成需求说明书作为以后各个阶段设计的依据。1.16数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)12.1需求分析12.1.1需求分析的任务和过程12.1.2数据流图12.1.3数据字典12.1.4需求分析的注意点1.17数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)12.1.2数据流图一、功能分解二、数据流图三、处理过程定义四、数据存储定义五、数据处理定义六、数据库操作的定义1.18数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)一、功能分解SADT(结构化系统分析与设计技术)中心问题是把功能逐层分解成多个子功能,同时进行相应数据分析与分解。P4第二层分解顶层P1P0第一层分解P41P42P3P21.19数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)二、数据流图数据流图用来表示现行系统的信息流动和加工处理的详细情况,是现行系统的一种逻辑抽象,独立于系统的实现。数据流图的绘制建立在SADT的基础上,采取自上而下的的方法。数据流图使用符号数据处理数据存储数据流数据源点或终点1.20数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)二、数据流图(续)1.首先把任何一个系统都抽象为:数据流数据流数据存储信息要求数据来源处理数据输出处理要求1.21数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)二、数据流图(续)2.分解处理功能和数据(1)分解处理功能:将处理功能的具体内容分解为若干子功能,将子功能继续分解,直到把工作过程表达清楚为止。(2)分解数据:在处理功能的同时,其所用的数据也逐级分解,形成数据流图,数据流图表达了数据和处理过程的关系。(3)表达方法:处理过程:用判定表或判定树来描述。数据:用数据字典来描述。1.22数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)三、处理过程定义(1)考察数据流图中的每个数据处理:确定设计的数据库系统是否应该而且可能支持这个处理过程。如果支持,列入支持应用的范围。(2)对每个处理过程进行严格定义:包括处理过程名、处理功能描述、处理要求、输人数据、输出数据等。1.23数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)三、处理过程(续)处理功能描述简要说明该处理过程用来做什么(而不是怎么做)。处理要求的描述包括处理频度要求,如单位时间里处理多少事务、处理数据量、响应时间等。这些处理要求是后面物理设计的输入及性能评价的标准。编号处理过程名处理功能描述处理要求输人数据输出数据处理过程定义表1.24数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)四、数据存储目的:确定最终数据库需要存储哪些信息。数据存储定义以数据流图为基础。(1)考察数据流图中每个数据存储信息,确定其是否应该而且可能由数据库存储(2)定义每个数据存储。编号数据存储名数据项说明建立该数据存储的处理过程存取该数据存储的处理过程数据量…数据存储定义表1.25数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)五、数据处理/数据存储矩阵定义用来定义处理过程与数据存储之间的关系。创建、插入、更新、删除、查询和无关系。这些关系可以用图或矩阵表示。横栏:数据处理过程名,竖栏:数据存储名字。处理过程1处理过程2处理过程3处理过程4…数据存储1CIURU数据存储2CUD数据存储3RCIUD………………CRUD表1.26数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)六、数据库操作的定义一个处理过程中通常包括一个或多个数据库操作。在一个数据处理中每一个操作的输入数据项和输出数据项、操作的数据对象、类型、操作的功能、数据操作的选择条件、连接条件、操作的数据量、使用频率、要求的响应时间等。可用图表的形式表示数据库操作的定义。1.27数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)DBIPO图任务名:编号:所属应用号:输入数据项:输出数据项:功能:数据库操作定义注释:响应时间:使用频率;操作记录数:1.28数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)需求分析例子实例一:假设我们要开发一个学校管理系统。1.经过可行性分析和初步需求调查,抽象出该系统最高层数据流图,该系统由教师管理子系统、学生管理子系统、后勤管理子系统组成,每个子系统分别配备一个开发小组。2.进一步细化各个子系统:学生管理子系统开发小组通过进行需求调查,明确该子系统的主要功能是学籍管理和课程管理,包括学生报到、入学、毕业的管理,学生上课情况的管理。通过信息流程分析和数据收集后,他们生成了该子系统的数据流图。1.29数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)学校管理系统最高层数据流图…某学校管理信息系统教师管理子系统学生管理子系统后勤管理子系统学籍管理课程管理…….1.30数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)学籍管理系统(a)第一层数据流图学生招生办公室1.0报到2.0入学3.0毕业体检表新生名单教师档案班主任宿舍描述学生档案离校手续毕业生名单分配工作学生档案核对通知书检查体检结果工作安排学生名单宿舍分配清单同意/不同意接收报到证体检结果名单录取通知书新生登记表宿舍地址、班级、班主任毕业证书、派遣证记录已毕业毕业生名单工作分配清单离校手续清单毕业生登记表学生基本情况宿舍分配宿舍描述教师描述同意/不同意入学1.31数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)报到证学籍管理系统数据流图(b)报到学生1.1核对录取通知书1.2核对体检结果1.3同意入学招生办公室体检表新生名单审核同意或不同意同意/不同意已核对的录取通知书已核对的体检结果体检结果名单录取通知书1.32数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)学籍管理系统数据流图(c)入学学生2.1填登记表2.2分配班级2.3分配宿舍班主任教师档案学生档案宿舍分配清单已登好的登记表报到证、班级号教师描述学生情况报到证学生基本情况宿舍描述宿舍分配学生名单宿舍描述1.33数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)学籍管理系统数据流图(d)毕业学生3.1发毕业证书3.2退宿舍3.3办理离校手续3.4领派遣证毕业生名单成绩册办公室宿舍描述学生档案离校手续分配工作毕业证书毕业证毕业证退宿舍证明离校手续单准备工作分配细节工作分配情况离校手续清单记录已毕业宿舍安排清单能否获得学位毕业生名单1.34数据库系统原理李瑞改(lirg751@mail.nefu.edu.cn)课程管理的数据流图学生教师1.0选课2.0上课3.0考试教师档案课程介绍学生描