第6章数据库设计与实施数据库设计与实施•6.1数据库设计概述•6.2数据库规划•6.3需求分析•6.4概念结构设计•6.5逻辑结构设计•6.6物理结构设计•6.7数据库的实施和维护6.1数据库设计概述6.1.1数据库设计概念6.1.2数据库设计步骤6.1.3数据库设计的特点返回6.1.1数据库设计概念(1)•数据库设计(非专业):根据选择的数据库管理系统和用户需求对一个单位或部门的数据进行重新组织和构造的过程。数据库实施:将数据按照数据库设计中规定的数据组织形式将数据装入数据库的过程。6.1.1数据库设计概念(2)•数据库设计(开发者):对一个给定的实际应用环境,如何利用数据库管理系统、系统软件和相关的硬件系统,将用户的需求转化成有效的数据库模式,并使该数据库模式易于适应用户新的数据需求的过程。6.1.1数据库设计概念(3)•数据库设计(理论):根据用户需求和特定数据库管理系统的具体特点,将现实世界的数据特征抽象为概念数据模型表示,最后构造出最优的数据库模式,使之既能正确地反映现实世界的信息及其联系,又能满足用户各种应用需求(信息要求和处理要求)的过程。6.1.1数据库设计概念(4)•数据库设计是一个困难、复杂和费时的过程,因此,数据库设计人员应该具备以下的技术和知识要求:1.数据库的基本知识和数据库设计技术;2.计算机科学的基础知识和程序设计的方法和技巧;3.软件工程的原理和方法;4.应用领域的知识。6.1.2数据库设计步骤(1)数据库系统的生存期:从开始规划、分析,到设计、实施、投入运行后的维护,直到最后被新的系统取代而停止使用的整个期间。对数据库系统生存期的划分,通常将其分为4个时期(或7个阶段):1)规划时期、2)设计时期(需求分析、概念设计、逻辑设计、物理设计)、3)实施时期、4)运行维护时期。•各阶段的主要任务简单叙述如下:6.1.2数据库设计步骤(1)数据库物理结构设计说明书逻辑结构设计说明书概念结构设计说明书需求分析说明书可行性分析报告需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行与维护数据库规划数据库设计时期1)数据库规划时期——建/不建?•这个时期进行建立数据库的必要性和可行性分析。如果是可行的,则要确定建立数据库的总体目标,包括可靠性,安全性等方面的设想,并制定数据库设计与实施计划。通过评审的可行性分析报告是这个时期的结束标记。这个时期的作用和意义与软件工程中可行性研究一致。2)数据库设计时期——如何建?•这个时期一般分为如下的4个阶段:⑴需求分析阶段⑵概念结构设计阶段⑶逻辑结构设计阶段⑷物理结构设计阶段返回(1)需求分析阶段•需求分析是比较费时、复杂和困难的一步,当然也是非常重要的一步。需求分析的好坏直接影响整个数据库的设计,如果需求分析做的不好,将导致数据库设计的返工工作量增大,有时甚至导致整个数据库设计工作重作。需求分析的主要任务:利用数据库设计理论和方法,对用户的现行系统进行详细调查,收集支持系统目标的基础数据及其处理需求。(1)需求分析阶段(a)信息需求:用户对数据及其结构的需求,是数据库的静态特征。从这个信息需求即可导出用户的数据库需求,即在数据库中应该存储哪些数据。(b)处理需求:用户基于数据库的数据处理需求,是对数据库的动态性能需求,如某个处理要求的响应时间,处理的方式是批处理还是联机处理。(c)安全性和完整性等其它需求。(2)概念结构设计阶段在需求分析的基础上,通过对用户需求进行分析、归纳、抽象,形成一个独立于具体DBMS和计算机硬件结构的整体概念结构,即概念模式——一般用E-R图来完整表达用户的需求。(3)逻辑结构设计阶段在概念结构设计的基础上,在一定的原则指导下将概念模式(E-R图)转换为某个具体DBMS支持的数据模型相符合的、经过优化的逻辑结构。如果选择的数据库管理系统是RDBMS,则逻辑结构是关系模式的集合。(4)物理结构设计阶段为逻辑数据结构选取一个最适合应用环境的物理结构,包括存储结构和存取方法等。由于不同DBMS产品所提供的物理环境、存储结构和存取方法有很大差别,提供给设计人员使用的设计变量、参数范围也很不相同。因此,目前还没有一个通用的物理设计方法。3)数据库实施时期设计人员用DBMS提供的数据定义语言(DDL)和其它实用程序将数据库逻辑结构设计和物理设计结构结果用DDL描述严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式,最后将数据装入数据库。4)数据库运行与维护时期主要任务是收集和登记数据库运行的情况记录,这些数据库运行记录将用来评价并改善数据库系统的性能。在数据库运行和维护时期,必须保持数据库的完整性,必须有效地处理数据故障和进行数据库恢复,此外,还必须不断地对数据库进行评价、必要时对数据库进行重组或重构。6.1.3数据库设计的特点(1)1)反复性(Iterative);2)试探性(Tentative);3)多步性(multistage);4)面向数据(Data-Oriented)。导向1)反复性•数据库设计不可能“一气呵成”,需要反复的推敲和修改才能完成。前阶段的设计是后阶段设计的起点和基础,而后阶段设计也会向前阶段反馈,提出新的要求。因此,数据库设计需要反复修改,逐步完善。返回2)试探性•数据库设计不同于求解一个数学问题,它的设计结果一般不是唯一的。设计过程往往是试探性的过程。在设计过程中,有各种各样的要求和制约因素,它们之间往往是矛盾的。数据库的设计很难得到最佳的结果,常常得之于东,而失之于西,最终结果取决于数据库设计者的权衡和决策。返回3)多步性•数据库的设计常常由不同的人员分阶段进行。•这样做的原因有两个:(1)技术分工的需要;(2)分段把关,逐级审查,以保证设计的质量和进度。返回4)面向数据在数据库设计中实施以信息(数据)需求为主,兼顾处理需求的设计策略。计算机应用系统设计按照信息需求和处理需求的主次关系来区分一般有两种方法:(a)面向数据的方法:以信息需求为主,兼顾处理需求;(b)面向过程的方法:以处理需求为主,兼顾信息需求。返回4)面向数据早期的计算机应用系统(如科学计算)设计过程中,由于处理多,数据少,即处理需求多于信息需求,因此采用面向过程的方法。•现在的大型计算机应用系统,由于其数据十分庞大,数据结构复杂,而相应的处理流程却趋于简单,且由于数据库在应用系统中稳定性高而处理变化大,所以,数据库已成为应用系统设计的核心与不动点。返回6.2数据库规划(1)•数据库规划时期应该完成的主要工作是确定数据库系统在企业或部门的计算机系统中的地位以及各个数据库之间的联系,从而对建立数据库的必要性和可行性进行分析。•分析企业的基本业务功能,确定数据库支持的业务范围,建立一个综合的数据库/若干个专门的数据库。6.2数据库规划(2)理论上,可以建立一个支持企业全部活动的包罗万象的大型综合数据库,也可以建立若干个支持范围不同的公用或专用数据库。比较:前者难度较大,效率也不高;后者比较分散,但相对灵巧,必要时可通过联接操作将有关数据联接起来,而数据的全局共享一般可利用建立在数据库上的应用系统来实现。6.2数据库规划(3)数据库规划的结束标记:可行性分析报告和数据库系统规划纲要,内容包括:信息范围、信息来源、人力资源、设备资源、软件及支持工具资源、开发成本估算、开发进度计划、现行系统向新系统转换计划等等。可行性分析报告和数据库系统规划纲要应送交决策部门进行评审。如果可行,要成立设计开发领导小组(一把手任组长),以保证人、财、物和开发进度质量。6.3需求分析6.3.1需求分析的任务6.3.2需求分析的步骤6.3.3数据字典返回6.3.1需求分析的任务通过详细调查用户的现行系统(手工系统或计算机系统)的工作情况1、深入地了解:数据的性质和数据的使用情况;数据的处理流程、流向、流量等;2、仔细地分析:用户在数据格式、数据处理、数据库安全性、可靠性以及数据的完整性方面的需求按一定规范要求写出设计者和用户都能理解的文档——需求分析说明书。6.3.2需求分析的步骤需求分析的任务可分解为以下三个步骤完成:1)需求调查2)分析整理3)评审返回1)需求调查•需求调查又称为系统调查或需求信息的收集。在进行实际调查研究之前,要做好充分的准备工作,明确:(1)需求调查的目的(2)需求调查的内容(3)需求调查的方式返回(1)需求调查的目的•需求调查的目的:•了解企业的组织机构设置;•各个组织机构的职能、工作目标、职责范围,主要业务活动及大致工作流程;•获得各个组织机构的业务数据及其相互联系的信息,为分析整理工作做好前期基础工作。•返回(2)需求调查的内容为了实现调查的目的,需求调查涉及以下内容:(a)组织机构情况(b)业务活动现状(c)外部要求(d)未来规划中对数据的应用需求导向(a)组织机构情况调查了解各个组织机构有哪些部门组成,各部门的职责是什么,各部门数据管理工作存在的问题,各部门中哪些业务适合计算机管理,哪些业务不适合计算机管理。返回(b)业务活动现状•各部门业务活动现状的调查是需求调查的重点,要弄清楚各部门输入和使用的数据,加工处理这些数据的方法,处理结果的输出数据,输出到哪个部门,输入/输出数据的格式等等。•在调查过程中应注意收集各种原始数据资料,如台帐、单据、文档、档案、发票、收据,统计报表等,从而可确定数据库中需要存储哪些数据。返回(c)外部要求调查数据处理的响应时间、频度和如何发生的规则,以及经济效益的要求,安全性及完整性要求。返回(3)需求调查方式•需求调查主要有以下几种方式:个别交谈开座谈会发调查表跟班作业查阅记录(3)需求调查方式需求调查的对象可分为:高层负责人、中层管理人员和基层业务人员三个层次。(a)对高层负责人的调查(b)对中层管理人员的调查(c)对基层业务人员的调查(a)对高层负责人的调查•一般采用个别交谈方式。•在交谈之前,应给他们一份详细的调查提纲,以便他们有所准备。•从交谈中可以获得有关企业高层管理活动和决策过程的信息需求以及企业的运行政策、未来发展变化趋势等与战略规划有关的信息。返回(b)对中层管理人员的调查•可采用开座谈会、个别交谈或发调查表、查阅记录的调查方式;•了解企业的具体业务控制方式和约束条件,不同业务之间的接口,日常控制管理的信息需求并预测未来发展的潜在信息需求。返回(c)对基层业务人员的调查主要采用发调查表、个别交谈或跟班作业的调查方式,有时也可以召开小型座谈会;主要了解每项具体业务的输入输出数据和工作过程、数据处理要求和约束条件等。返回2)分析整理•为了把需求调查阶段收集到的需求信息(如文件、图表、票据、笔记等)转化为下一阶段设计工作可用的形式信息,必须对需求信息做深入细致地分析整理工作,并写出需求说明书。分析整理的工作主要有:(1)业务流程分析与表示(2)需求信息的补充描述(3)撰写需求分析说明书返回(1)业务流程分析与表示•业务流程分析的目的是获得业务流程及业务与数据联系的形式描述。一般采用数据流分析法,分析结果以数据流图(DataFlowDiagram,DFD图)表示。•DFD图是一种自顶向下逐步细化分析描述对象的工具。关于DFD图的符号和画法在一般软件工程教材中都有详细介绍,这里不予赘述。DFD图主要用于数据库应用程序的设计。返回(1)业务流程分析与表示考场安排,考试成绩通知教室安排,教科书成绩教室安排出试卷,评定考试成绩核对选课单学生名单允许参加考试选课单填选课单选修学生上课考试课程介绍教师管理人员教科书考试安排考场安排试卷成绩册平时成绩修课名单(2)需求信息的补充描述•补充信息主要有以下内容:⑴数据字典:数据的详细描述信息。比如,选修课名单中包括的每个数据项及其说明信息。主要用于数据库概念模式设计,即概念模式设计。数据字典的内容在6.3.3节介绍。⑵业务活动清单:列出每一部门中最基本的工作任务,包括任务的定义、操作类型、执行频度、所属部门及涉及的数据项以及数据处理响应时间要求。⑶其它需求清单:如完整性、一致性要求,安全性要求以及预期变化的影响需求等。返回(3)撰写需求