1.1数据需求分析
1.1.1 数据需求分析的任务和重要性
- 需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门和企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能
- 数据需求分析是从对数据进行组织与存储的角度,从用户视图出发,分析与辨别应用领域所管理的各类数据项(Data Items)和数据结构
- 数据需求分析是整个数据库设计的基础,此阶段需收集数据库所有用户的信息内容和处理要求,并加以规范化和分析
1.1.2 数据需求分析方法
- 数据需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求
- 由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。处理要求是指用户要求完成什么样的处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理
- 系统设计人员必须与用户不断深入地进行交流,才能逐步的确定用户的实际需求
1.1.3 数据流程图
数据流程图(Data Flow Diagram,DFD/Data Flow Chart,DFC)是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程
1.1.4 数据字典
- 数据字典(Data Dictionary)是指对数据的数据项、数据结构、数据流、数据存储、处理过程等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明
- 数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合数据字典的作用是对数据流程图中的各种成分进行详细说明,作为数据流程图的细节补充,和数据流程图一起构成了完整的系统数据需求模型
1.2概念结构设计与 E-R 模型
1.2.1 数据模型
模型是对现实世界中的事物、对象和过程等客观系统中感兴趣的内容的模拟和抽象表达,数据模型也是一种模型,它是对现实世界数据特征的抽象,数据模型一般应满足 3 个要求
- 能比较真实地模拟现实世界
- 容易被人们理解
- 便于在计算机上实现
1.2.2 信息的 3 种模型
我们需要把现实世界中的具体事物抽象、组织为与各种 DBMS 相对应的数据模型,这是两个世界间的转换,即从现实世界到机器世界。但是这种转换在实际操作时不能直接执行,还需要一个中间过程,这个中间过程就是信息世界
1.2.3 概念模型
概念模型反映了信息系统所对应的现实世界中各部门、各业务的信息结构、信息流动情况、信息间的互相制约关系以及各部门或各业务对信息存储、查询和加工的要求等。在概念模型中,所涉及的主要概念包括以下 5 点
- 实体(Entity)
- 属性(Attribute)
- 码(Key)
- 实体型(Entity Type)
- 实体集(Entity Set)
1.2.4 实体间联系
现实世界中,事物内部以及事物之间不是孤立的,是有联系的,这些联系反映在信息世界中,表现为实体内部的联系和实体之间的联系
联系的度是指参与联系的实体类型数目
- 一度联系称为单向联系,也称递归联系,指一个实体集内部实体之间的联系
- 二度联系称为两向联系,即两个不同实体集实体之间的联系
- 三度联系称为三向联系,即 3 个不同实体集实体之间的联系
联系的联通词(Connectivity)指的是联系涉及到的实体集之间实体对应的方式
- 如果实体集 A 中的每一个实体在实体集 B 中至多有一个实体与之联系,反之亦然,则称实体集 A 与实体集 B 具有一对一联系,记为 1∶1
- 如果实体集 A 中的每一个实体在实体集 B 中有 n(n ≥ 1)个实体与之联系,而实体集 B 中的每一个实体在实体集 A 中至多有一个实体与之联系,则称实体集 A 与实体集 B 具有一对多联系,记为 1∶n
- 如果实体集 A 中的每一个实体在实体集 B 中有 n(n ≥ 1)个实体与之联系,而实体集 B 中的每一个实体在实体集 A 中有 m(m ≥ 1)个实体与之联系,则称实体集 A 与实体集 B 具有多对多联系,记为 m∶n
1.2.5 使用 E-R 模型进行概念结构设计
数据库概念结构设计的核心内容是概念模型的表示方法。概念模型的表示方法有很多,其中最常用的是“实体—关系”方法,简称 E-R 模型。该方法(模型)用 E-R 图来表示概念模型
E-R 模型(E-R 图)即实体—关系图(Entity Relationship Diagram,E-R 图),它提供了表示实体、实体属性和实体间关系的方法,是用于描述现实世界的一种概念模型
E-R 图表示方法
- 实体:实体由矩形表示,矩形框内写明实体名称
- 属性:属性由椭圆表示,并用无向边将其与相应的实体相连接
- 联系:实体之间的相互关联称为联系。在 E-R 模型中,联系由菱形表示
1.3逻辑结构设计
1.3.1 E-R 图转换为关系数据模型的一般规则
数据库的逻辑结构设计就是将在概念结构设计阶段设计完成的 E-R 图,转换为与所选用的 DBMS 产品所支持的数据模型相符合的逻辑结构
将 E-R 图转换为关系数据模型,其实质就是将实体、实体的属性和实体之间的联系转化为关系模式。其中实体和联系都可以表示成关系,E-R 图中的属性可以转换成关系的属性
1.3.2 实体的转换
将实体转换为关系,关系名与实体同名,实体的属性就是关系的属性,实体的主键就是关系的主键
1.3.3 联系的转换
- 一个 1∶1 联系可以转换为一个独立的关系模式,也可以与任意一端实体所对应的关系模式合并。每个实体的主键均可以作为该关系的主键
- 一个 1∶n 联系可以转换为一个独立的关系模式,也可以与 n 端实体所对应的关系模式合并,如果与 n 端实体所对应的关系模式合并,则应该在 n 端实体所对应的关系模式中添加 1 端实体的主键作为外键
- 对于一个 m∶n 联系,则需要将该联系转换为一个独立的关系模式。转换规则是与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,该关系的主键为各实体主键的组合
1.4使用 PowerDesigner 设计数据模型
1.4.1 概念数据模型和物理数据模型
一般情况下,我们会先将现实世界抽象为概念世界,然后再将概念世界转换为机器世界
先将现实世界中的客观对象抽象为实体和联系,这种不依赖于具体的计算机系统或某个 DBMS 系统的模型即为概念数据模型(Conceptual Data Model,CDM)
将概念模型转换为计算机上某个 DBMS 所支持的数据模型,这种模型即为物理数据模型(Physical Data Model,PDM)
1.4.2 PowerDesigner 工具介绍
PowerDesigner 是 Sybase 公司开发的一款优秀的设计工具软件,广泛应用于数据库建模
执行“File” “New Model”,开启 PowerDesigner 的模型视图
选中“Model type”下的“Conceptual Data Model”,开启 PowerDesigner 的概念数据模型视
选中“Model type”下的“Physical Data Model”,开启 PowerDesigner 的物理数据模型视图
1.4.3使用 PowerDesigner 设计数据库概念模型
在 PowerDesigner 概念数据模型视图中,绘制实体“客户”和“订单”的概念模型。点击工具栏“
”,分别绘制实体“客户”和“订单”
实体“客户”与“订单”之间的联系是 1∶n,可以采用以下方法建立它们之间的联系
- 点击工具栏“
”,即关系
- 选中 1 方实体“客户”,绘制一条指向 n 方实体“订单”的线段,即生成实体“客户”与“订单”之间的联系,并将该联系命名为“订购”
实体“订单”与“商品”之间的联系是 m∶n,可以采用以下方法建立它们之间的联系
- 分别创建实体“订单”和“商品”,并点击工具栏“
”,即联系。创建一个联系,并命名为“订单明细”
- 由于一条订单和一件商品均可对应多条订单明细,所以实体“订单”“商品”与联系“订单明细”之间的关系均为 1∶n
- 分别选中 1 方实体“订单”和“商品”,并点击“
”按钮,即联系连接(Association Link)按钮,绘制一条指向 n 方,即联系“订单明细”的直线,则建立起实体“订单”“商品”与联系“订单明细”之间的联系,并在联系“订单明细”上添加属性“商品数量
在概念数据模型视图中,点击菜单“工具”(Tools) “生成物理数据模型”(Generate Physical DataModel),即可生成数据库物理数据模型
直接创建物理数据模型, 1∶m 联系,以“客户”—“订单”为例
在 PowerDesigner 的物理数据模型视图中,点击工具栏“
”,即表(Table),分别绘制“客户表”和“订单表”
添加“客户”和“订单”1∶m 关联关系的步骤为:选择“
”按钮,即参照(Reference)按钮,选中 m 方即“订单”表,绘制一条连接到 1 方即“客户”表的直线
m∶n 联系,以“订单”—“商品”为例
- 首先绘制表“订单”和“实体”,然后添加以上两个实体之间 m∶n 关联关系
- 选中“订单明细表”,分别绘制两条连接到 1 方“订单表”和“商品表”的直线,此时将在“订单明细”表中生成两个外键,它们分别参照“订单表”和“商品表
1.4.5 数据库物理模型生成数据库
配置所需 DBMS,此处选择 SQL Server,操作步骤为:PowerDesigner Database(数据库) Change Current DBMS(改变当前 DBMS),选择 SQL Server 2018
由物理模型生成数据库代码操作步骤为:PowerDesigner Database(数据库) Generate Database(生成数据库),即生成SQL Server数据库表结构的创建代码
总结
- 3 个世界间的两种转换过程分别对应于数据库设计中的两个设计阶段
- 一对多联系可以转换为一个独立的关系模式,也可以与多端实体所对应的关系模式合并
- 使用PowerDesigner 绘制概念模型方式
- 分别创建多对多的两个实体,并点击工具栏的联系按钮创建一个联系
- 分别选中一方实体,并点击联系连接按钮,绘制一条指向多方的直线,则分别建立起该实体与联系之间的联系
- 给联系取名,并在该联系上添加该联系的自带属性