第3章 · 播客 第5集

数据库系统 · 数据库设计四阶段

🎙️ 本集播客第5集:四类设计方法与 1978 年新奥尔良会议的出处,需求分析、概念结构设计、逻辑结构设计、物理设计四阶段各自的输入输出,元数据与数据字典,以及基于 3NF 设计方法的五步——练习题第 7、10 题的原句都在这里。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第3章播客 第5集
⬇ 下载本集 点击播放
阿明
小雅姐,数据库设计这节东西又多又碎,先给我个总框架好不好?
小雅
先记一个排序,练习题第 10 题直接考顺序:需求分析、概念结构设计、逻辑结构设计、物理设计,先后不能乱。这句原文叫分步设计法遵循自顶向下、逐步求精的原则,将数据库设计过程分解为若干相互独立又相互依存的阶段,每一阶段采用不同的技术与工具,解决不同的问题,从而将问题局部化。用产物记忆最稳:需求分析产出需求说明书,概念结构设计产出 E-R 图,逻辑结构设计把 E-R 图转换成关系模型,物理设计确定存储结构和存取路径。
阿明
第 10 题四个选项全是这四步的乱序,比如概念设计排最前那种。怎么最快排除?
小雅
先看头尾:需求分析永远第一、物理设计永远最后,头尾不对直接划掉;再看中间:概念结构设计在逻辑结构设计前面,因为逻辑设计是拿概念设计的产物 E-R 图去转换的,先有图后有表。这一层因果想通,顺序就不会背反。
小雅
对,只要记住「需求分析永远是第一步、物理设计永远是最后一步」,四个选项里先掐头去尾,剩下中间两个概念在前逻辑在后,答案就出来了。错项「需求分析、逻辑设计、概念设计、物理设计」就是把中间两个换了位置,专门坑背不牢的人。
阿明
那这套分阶段方法是哪来的?
小雅
出处必背:1978 年 10 月来自 30 多个欧美国家的主要数据库专家在美国新奥尔良市专门讨论了数据库设计问题,提出了数据库设计规范,把数据库设计分为需求分析、概念结构设计、逻辑结构设计和物理结构设计 4 个阶段。所以分步设计法也叫新奥尔良方法的延续。目前已有的数据库设计方法可分为四类:直观设计法、规范设计法、计算机辅助设计法和自动化设计法。直观设计法又称单步逻辑设计法,它依赖于设计者的知识、经验和技巧,缺乏工程规范的支持和科学根据,设计质量也不稳定。
小雅
目前常用的规范设计方法大多起源于新奥尔良方法,如基于 3NF 的设计方法、LRA 方法、面向对象的数据库设计方法及基于视图概念的数据库设计方法等。架构师考试中,主要了解基于 3NF 的数据库设计方法即可——这句「只需了解基于 3NF 的方法」本身就是判断题材料。
阿明
基于 3NF 的设计方法谁提出的?步骤是什么?跟通用四阶段什么关系?
小雅
基于 3NF 的数据库设计方法是由 S.Atre 提出的数据库设计的结构化设计方法,其基本思想是在需求分析的基础上,识别并确认数据库模式中的全部属性和属性间的依赖,将它们组织成一个单一的关系模型,然后再分析模式中不符合 3NF 的约束条件,用投影和连接的办法将其分解,使其达到 3NF 条件。人名 S.Atre 和五步走都可能进选项。
小雅
五步:设计企业模式;设计数据库逻辑模式;设计数据库物理模式,也就是存储模式;评价物理模式;数据库实现。其中设计企业模式那步具体包括:分析应用环境并设定环境中所使用的各种资料;确定每一种报表各自所包含的数据元素;确定数据元素之间的关系,如确定主关键字和一般的数据元素;对每一组或若干组数据元素推导出 3NF 的关系模型;在 3NF 关系模型的基础上画出数据库的企业模式。
阿明
逻辑模式、物理模式、评价、实现,这是 3NF 方法自己的五步,和刚才那个四阶段不是一个体系吧?
小雅
不是一个体系,但容易混。四阶段是数据库设计的通用过程,3NF 五步是其中一种具体方法内部的步骤,考试一般只考四阶段的顺序和「逻辑结构设计做 E-R 转换」这种对应,五步了解即可,重点是别把「评价物理模式」「数据库实现」当成四阶段的成员。
阿明
明白了,一个是过程框架,一个是方法内部的工序。那第一阶段需求分析,具体产出和做法是什么?
小雅
需求分析是数据库设计过程的第一步,是整个数据库设计的依据和基础,需求分析做得不好,会导致整个数据库设计重新返工。它的目标是收集和分析用户对系统的信息需求和处理需求,得到设计系统所必需的需求信息,建立系统说明文档,按一定格式整理形成需求说明书。需求说明书是需求分析阶段的成果,也是今后设计的依据,它包括数据库所涉及的数据、数据的特征、使用频率和数据量的估计,如数据名、属性及其类型、主关键字属性、保密要求、完整性约束条件、更改要求、使用频率、数据量估计等。
阿明
「元数据」这个词在这里出现,我一直没抓准。它是字段数据还是需求文档本身?
小雅
原文原句:这些关于数据的数据称为元数据。在设计大型数据库时,这些数据通常由数据字典来管理。用数据字典管理元数据有利于避免数据的重复或重名,以保持数据的一致性及提供各种统计数据。判断题就爱问「关于数据的数据叫什么」,答元数据;「由什么管理」,答数据字典。
阿明
概念结构设计的目标,是不是就是画 E-R 图?跟逻辑设计差在哪?
小雅
画 E-R 图是手段,目标先背定义:概念结构设计是数据库设计的第二阶段,其目标是对需求说明书提供的所有数据和处理要求进行抽象与综合处理,按一定的方法构造反映用户环境的数据及其相互联系的概念模型,即用户的数据模型或企业数据模型。三个特征:这种概念数据模型与 DBMS 无关,是面向现实世界的、极易为用户所理解的数据模型。这句话每个短语都是判断题素材——说概念模型「依赖于具体 DBMS」就是错的。
小雅
做法上原文给了一条路径:可先设计各个应用的视图,即各个应用所看到的数据及其结构,然后再进行视图集成,以形成一个单一的概念数据模型。注意「视图集成」这个动作,下一集专门讲它的冲突类型,练习题第 11 题在那。
阿明
逻辑结构设计就是把 E-R 图落地?第 7 题考这个。
小雅
对,第 7 题:将 E-R 图转换为关系模型属于哪个阶段?答案逻辑结构设计。原文定义:这一阶段的设计目标是把上一阶段得到的与 DBMS 无关的概念数据模型转换成等价的,并为某个特定的 DBMS 所接受的逻辑模型所表示的概念模式,同时将概念设计阶段得到的应用视图转换成外部模式。结果是用 DBMS 所提供的数据定义语言 DDL 写成的数据模式。解析的对应关系背下来:概念结构设计产生 E-R 图,需求分析产生需求说明书,物理设计确定存储结构和存取路径——四个阶段四个产物,一一对应。
小雅
逻辑结构设计内部还有三步:第一,将概念结构向一般关系模型转化;第二,将第一步得到的结构向特定的 DBMS 支持下的数据模型转换;第三,依据应用的需求和具体的 DBMS 的特征进行调整与完善。E-R 图转关系模型的具体规则,下一集展开。
阿明
物理设计呢,是不是就是设计表怎么存?和逻辑设计怎么划界?
小雅
方向对,定义背准:物理设计阶段的任务是把逻辑设计阶段得到的满足用户需求的已确定的逻辑模型在物理上加以实现,其主要内容是根据 DBMS 提供的各种手段,设计数据的存储形式和存取路径,如文件结构、索引设计等,即设计数据库的内模式或存储模式。原文强调数据库的内模式对数据库的性能影响很大,应根据处理需求及 DBMS、操作系统和硬件的性能进行精心设计。
阿明
还有一句「反复迭代」的话吧?
小雅
有:在每一步设计中,都可能发现前面步骤的遗漏或处理不当之处,往往需要返回去重新处理并修改设计和有关文档,所以数据库设计过程通常是一个反复修改、反复设计的迭代过程。判断题问「四阶段必须一次走完不能回头」,答否。
阿明
数据库设计开头还有什么「困难和问题」的清单吗?
小雅
有五条,简答级了解:同时具备数据库知识与应用业务知识的人很少;项目初期往往不能确定应用业务的数据库系统的目标;缺乏完善的设计工具和设计方法;需求的不确定性,用户总是在系统的开发过程中不断提出新的要求;应用业务系统千差万别,很难找到一种适合所有业务的工具和方法,所以研制适合一切应用业务的全自动数据库生成工具是不可能的。第五条带了个「不可能」的结论,注意别选反。
小雅
本集必背:四阶段顺序是需求分析、概念结构设计、逻辑结构设计、物理设计;1978 年 10 月新奥尔良会议提出设计规范;四类设计方法是直观、规范、计算机辅助、自动化;基于 3NF 的方法由 S.Atre 提出、五步走;需求分析产出需求说明书,关于数据的数据叫元数据、由数据字典管理;概念设计产出与 DBMS 无关、面向现实世界、用户易理解的概念模型,手段是先局部视图再视图集成;逻辑设计把 E-R 图转换为特定 DBMS 的逻辑模型,产出 DDL 数据模式;物理设计确定存储形式和存取路径即内模式;整个过程是反复迭代的。
阿明
四个阶段配四个产物,这个锚点稳了。下一集就是 E-R 图细节了?
小雅
对,实体识别、三类联系、视图集成的四种冲突,还有 E-R 图转关系模型的所有规则——1:1、1:n、m:n、多元、自联系、弱实体,一大桌硬菜,练习题第 8、11 题都在那。