
数据库设计教程.ppt
170页2018/9/10,第六章 数据库设计,1,第六章 数据库设计,6.1 数据库设计概述 6.2 规划和需求分析 6.3 概念结构设计 6.4 逻辑结构设计 6.5 数据库的物理设计 6.6 数据库实施与维护 6.7 小结,2018/9/10,第六章 数据库设计,2,第六章 数据库设计,6.1 数据库设计概述 6.2 需求分析 6.3 概念结构设计 6.4 逻辑结构设计 6.5 数据库的物理设计 6.6 数据库实施与维护 6.7 小结,2018/9/10,第六章 数据库设计,3,数据库设计概述,什么是数据库设计 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求) 在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统2018/9/10,第六章 数据库设计,4,6.1.1 数据库和信息系统,数据库与信息系统的关系 数据库是信息系统的核心和基础 把信息系统中大量的数据按一定的模型组织起来 提供存储、维护、检索数据的功能 使信息系统可以方便、及时、准确地从数据库中获得所需的信息 数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在 数据库设计是信息系统开发和建设的重要组成部分,2018/9/10,第六章 数据库设计,5,软件工程与数据库工程,为了解决软件危机,Fritz Bauer 首次提出了“软件工程”的概念,试图建立并使用正确的工程方法开发出成本低、可靠性好并能在机器上高效运行的软件,从而解决或延缓软件危机。
以数据库为基础的信息系统通常称为数据库应用系统,它一般具有信息的采集、组织、加工、抽取和传播等功能数据库应用系统的开发是一项软件工程,但又有自己特有的特点,所以称为“数据库工程”2018/9/10,第六章 数据库设计,6,软件工程与数据库工程,仿照软件生存周期,可以得到数据库系统生存周期的概念数据库应用系统从开始规划、设计、实现、测试、运行、维护到最后被新的系统取代而停止使用的整个过程,称为数据库系统生存周期 数据库系统生存周期也可划分为规划、需求分析、概念结构设计、逻辑结构设计、数据库物理设计、实施、运行、维护及退役九个阶段2018/9/10,第六章 数据库设计,7,6.1.2 数据库设计的过程,数据库设计开始之前,首先必须选定参加设计的人员,包括系统分析人员、数据库设计人员、程序员、用户和数据库管理员 如果要设计的数据库应用系统比较复杂,还应该考虑是否需要使用数据库设计工具和CASE工具以提高数据库设计质量并减少设计工作量2018/9/10,第六章 数据库设计,8,数据库设计的过程,规划 需求分析阶段 概念结构设计阶段 逻辑结构设计阶段 数据库物理设计阶段 数据库实施阶段 数据库运行和维护阶段,2018/9/10,第六章 数据库设计,9,各阶段的主要任务,1.规划 进行建立数据库的必要性及可行性研究,确定数据库系统在组织和信息系统中的地位,以及各个数据库之间的关系。
2.需求分析阶段 准确了解与分析用户需求(包括数据与处理) 综合各个用户的应用需求 是整个设计过程的基础,是最困难、最耗费时间的一步3.概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型 是整个数据库设计的关键4.逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型 对其进行优化,2018/9/10,第六章 数据库设计,10,数据库设计的基本步骤(续),5.数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法) 6.数据库实施阶段 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果 建立数据库 编制与调试应用程序 组织数据入库进行试运行,2018/9/10,第六章 数据库设计,11,数据库设计的基本步骤(续),7.数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行 在数据库系统运行过程中必须不断地对其进行评价、调整与修改设计一个完善的数据库应用系统往往是上述七个阶段的不断反复2018/9/10,第六章 数据库设计,12,数据库的各级模式,图6.4 数据库的各级模式,2018/9/10,第六章 数据库设计,13,6.1.3 数据库设计的目标,一个良构、可靠的数据库设计,必须达到以下目标:数据库支持特定的和实时的信息提取。
数据库基本表应当正确、有效地构造 数据的完整性加在字段、表和关系级 数据库支持与组织机构有关的业务规则 数据库支持未来的扩充2018/9/10,第六章 数据库设计,14,第六章 数据库设计,6.1 数据库设计概述 6.2 规划和需求分析 6.3 概念结构设计 6.4 逻辑结构设计 6.5 数据库的物理设计 6.6 数据库实施与维护 6.7 小结,2018/9/10,第六章 数据库设计,15,6.2 规划和需求分析,规划阶段的三个步骤 需求分析就是分析用户的需要与要求 常用的获取用户需求的方法 数据流图和数据字典 元数据的概念,2018/9/10,第六章 数据库设计,16,6.2.1 需求分析的任务,需求分析的任务 通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求在此基础上确定新系统的功能新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库,2018/9/10,第六章 数据库设计,17,需求分析的任务(续),需求分析的重点 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
信息要求 用户需要从数据库中获得信息的内容与性质 由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据,2018/9/10,第六章 数据库设计,18,需求分析的任务(续),需求分析的重点(续) 处理要求 对处理功能的要求 对处理的响应时间的要求 对处理方式的要求(批处理 / 联机处理)新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求2018/9/10,第六章 数据库设计,19,需求分析的任务(续),需求分析的难点 用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化 设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求 新的硬件、软件技术的出现也会使用户需求发生变化 解决方法 设计人员必须采用有效的方法,与用户不断深入地进行交流,才能逐步得以确定用户的实际需求,2018/9/10,第六章 数据库设计,20,6.2.2 需求分析的方法,调查清楚用户的实际需求并进行初步分析 与用户达成共识 进一步分析与表达这些需求调查用户需求的步骤 ⑴ 调查组织机构情况组织部门的组成情况各部门的职责等 为分析信息流程做准备,2018/9/10,第六章 数据库设计,21,调查用户需求的步骤(续),⑵ 调查各部门的业务活动情况----调查重点之一各个部门输入和使用什么数据如何加工处理这些数据输出什么信息输出到什么部门输出结果的格式是什么⑶ 在熟悉业务活动的基础上,协助用户明确对新系统的各种要求----调查重点之二。
信息要求处理要求完全性与完整性要求,2018/9/10,第六章 数据库设计,22,调查用户需求的步骤(续),⑷ 对前面调查的结果进行初步分析 确定新系统的边界 确定哪些功能由计算机完成或将来准备让计算机完成 确定哪些活动由人工完成由计算机完成的功能就是新系统应该实现的功能2018/9/10,第六章 数据库设计,23,需求分析的方法(续),做需求调查时,往往需要同时采用多种方法 无论使用何种调查方法,都必须有用户的积极参与和配合 设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用户建立数据库环境下的共同概念,并对设计工作的最后结果共同承担责任,2018/9/10,第六章 数据库设计,24,常用调查方法,常用调查方法 ⑴跟班作业 通过亲身参加业务工作了解业务活动的情况 能比较准确地理解用户的需求,但比较耗时 ⑵开调查会 通过与用户座谈来了解业务活动情况及用户需求 ⑶请专人介绍,2018/9/10,第六章 数据库设计,25,常用调查方法(续),⑷询问 对某些调查中的问题,可以找专人询问 ⑸设计调查表请用户填写 如果调查表设计合理,则很有效,且易于为用户接受 ⑹查阅相关文档 查阅与原系统有关的数据记录,2018/9/10,第六章 数据库设计,26,6.2.3 数据字典,数据字典的用途 数据字典是各类数据描述的集合 数据字典是进行详细的数据收集和数据分析所获得的主要结果 数据字典在数据库设计中占有很重要的地位,2018/9/10,第六章 数据库设计,27,数据字典(续),数据字典的内容 数据项 数据结构 数据流 数据存储 处理过程数据项是数据的最小组成单位若干个数据项可以组成一个数据结构数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
2018/9/10,第六章 数据库设计,28,需求分析小结,需求分析阶段的重要任务之一是收集将来应用所涉及的数据设计人员要充分考虑可能的扩充与改变,使得设计易于修改、系统易于扩充必须强调用户的参与——数据库设计的特点 数据库应用系统与广泛的用户有关, 在数据分析阶段,没有用户的参与寸步难行 设计人员应当与用户取得共同语言,2018/9/10,第六章 数据库设计,29,第六章 数据库设计,6.1 数据库设计概述 6.2 需求分析 6.3 概念结构设计 6.4 逻辑结构设计 6.5 数据库的物理设计 6.6 数据库实施与维护 6.7 小结,2018/9/10,第六章 数据库设计,30,6.3.1 概念结构,什么是概念结构设计 需求分析阶段描述的用户应用需求是现实世界的具体需求 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定 概念结构设计是整个数据库设计的关键 描述概念模型的工具 E-R模型,2018/9/10,第六章 数据库设计,31,概念结构(续),概念结构设计的特点 (1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。
是对现实世界的一个真实模型 (2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键 (3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充 (4)易于向关系、网状、层次等各种数据模型转换2018/9/10,第六章 数据库设计,32,6.3.2 概念结构设计的方法与步骤,设计概念结构的四类方法 自顶向下首先定义全局概念结构的框架,然后逐步细化 自底向上首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构 逐步扩张首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构 混合策略将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构2018/9/10,第六章 数据库设计,33,概念结构设计的方法与步骤(续),自顶向下策略,,2018/9/10,第六章 数据库设计,34,概念结构设计的方法与步骤(续),自底向上策略,,2018/9/10,第六章 数据库设计,35,概念结构设计的方法与步骤(续),,逐步扩张,2018/9/10,第六章 数据库设计,36,概念结构设计的方法与步骤(续),常用策略 自顶向下地进行需求分析 自底向上地设计概念结构自底向上设计概念结构的步骤 第1步:抽象数据并设计局部视图 第2步:集成局部视图,得到全局概念结构,。












