一、数据需求分析
数据需求分析需要依赖于系统需求。
1. 需求分析是做什么?
明确系统需要做什么;
需要实现哪些功能;
有哪些用户参与;
系统实现某项具体功能时,需要对哪些数据进行加工、处理和存储;
如何对这些数据进行加工、处理和存储。
2. 数据需求分析是做什么?
重点是
调查、收集与分析
用户在数据管理中的
信息要求、处理要求、安全性要求和完整性要
求
。
3. 数据需求分析的步骤:
获取需求、识别问题;
分析需求,建立目标系统的逻辑模型;
需求文档化;
验证需求
4. 数据需求分析的方法:
跟班作业、开调查会、请专人介绍、询问、设计调查表,请用户填写、查阅记录。
5. 数据流程图
数据流程图(Data Flow Diagram,DFD/Data Flow Chart,DFC)是描述系
统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实
际流程。(
why
)
数据流程图的 4 种基本图形符号如下:
箭头表示数据流、圆或椭圆表示加工、双杠表示数据存储、方框表示数据的源点或终点。
数据流程图工具:visio ,亿图图示等
![](https://i-blog.csdnimg.cn/direct/573f30e53be6472a931bdbbe51c62495.png)
6. 数据字典
写数据字典工具:word
数据字典(Data Dictionary)是对
数据流程图中
出现的全部被命名的图形元素 在数据字典中作为一个词条加以定义(
对数据的描述或者解释,不是数据本身
),使 每一个图形元素的名称都有一个确切解释。(
why
)
数据字典通常包括
数据项、数据结构、数据流、数据存储和处理过程
5 个部分
数据项
数据项是数据的最小组成单位。对数据项的描述通常包括数据项名称、含义说明、
别名、类型、长度、取值范围、取值含义、与其他数据项的逻辑关系和数据项之间的联系。
![](https://i-blog.csdnimg.cn/direct/07d79c8d3dd2487d8acfde34c9c79598.png)
数据结构
一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干 个数据项和数据结构混合组成。
对数据结构的描述通常包括数据结构名称、数据结构含义说明和组成。
![](https://i-blog.csdnimg.cn/direct/acdf8b1d61254479811d47d9402b418d.png)
数据流
数据流是数据结构在系统内传输的路径。
对数据流的描述通常包括数据流名称、简述、数据流来源、数据流去向、数据流组 成(数据结构)、平均流量和高峰期流量。
![](https://i-blog.csdnimg.cn/direct/d408dfcdfa0e470181d6048cf1095495.png)
数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。
对数据存储的描述通常包括数据存储名称、说明、编号、
输入的数据流、输出的数
据流
、
组成(数据结构)
、数据量、存取频度和存取方式。
![](https://i-blog.csdnimg.cn/direct/c0a64cfde5ff4fd2aebe1216b6d73b44.png)
处理过程
处理过程的具体处理逻辑一般用判定表或判定树来描述。
数据字典中只需要描述处理过程的说明性信息即可,通常包括处理过程名称、说 明、
输入数据流、输出数据流和处理的简要说明
。
![](https://i-blog.csdnimg.cn/direct/d32762d3db6e442b83356e3b02f76c5d.png)
二、数据库概念结构设计
1. 数据模型
数据模型也是一种模型,它是对现实世界数据特征的抽象。数据模型一般应满足以下 3
个要求:
能比较真实地模拟现实世界
容易被人们理解
便于在计算机上实现
2. 信息的三种模型
![](https://i-blog.csdnimg.cn/direct/5c81f697a0da4a0fb5d7f05c2c5e64d6.png)
对应数据库设计的两个设计阶段:概念结构设计和逻辑结构设计。
3. 概念模型
术语
实体(Entity):客观存在并可相互区别的事物称为实体。 属性(Attribute):
实体所具有的某一特性称为属性。一个实体可以由若干个属性来描述。
码(Key):唯一标识实体的属性集称为码。
实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。用实
体名及其属性名集合来抽象和描述同类实体,称为实体型。
实体集(Entity Set):同一类型实体的集合称为实体集。
联系(Relationship):实体之间的联系有一对一、一对多和多对多等多种类型。
实体间联系
现实世界中,事物内部以及事物之间不是孤立存在的,而是有联系的,这些联系反
映在信息世界中,表现为实体内部的联系和实体之间的联系。
一度联系:指一个实体集中实体之间的联系
![](https://i-blog.csdnimg.cn/direct/617f34f347904605b2e65bf9af4c3b82.png)
二度联系:两个不同实体集实体之间的联系
![](https://i-blog.csdnimg.cn/direct/58ddeaec3aaa449e99a89c979d1b83f8.png)
三度联系:3 个不同实体集实体之间的联系。
如学生在教室上某个老师的课程
![](https://i-blog.csdnimg.cn/direct/59e1fd692f1b4b6989df10f5938c0789.png)
实体集之间实体对应的方式:
一对一联系。如果实体集 A 中的每一个实体在实体集 B 中
至多
有一个实体与之联
系,反之亦然,则称实体集 A 与实体集 B 具有一对一联系,记为 1 ∶ 1。如:
班级的班长
一对多联系。如果实体集 A 中的每一个实体在实体集 B 中有 n
(n ≥ 1)
个实体与
之联系,而实体集 B 中的每一个实体在实体集 A 中至多有一个实体与之联系,则称实体集
A 与实体集 B 具有一对多联系,记为 1∶n。如
讲师和学生的对应关系
多对多联系。如果实体集 A 中的每一个实体在实体集 B 中有 n(n ≥ 1)个实体与
之联系,而实体集 LB 中的每一个实体在实体集 A 中有 m(m ≥ 1)个实体与之联系,则
称实体集 A 与实体集 B 具有多对多联系,记为 m:n。如学生修课程。
联系的基数(Cardinal Number):在“一对一”“一对多”和“多对多”的联系 中,可以把两个实体集中有联系的实体数目的最小值(min)和最大值(max)称为这个联 系的基数,用(min,max)形式表示。(参看课本10页)
E-R模型
概念模型的表示方法有很多,其中最常用的是“实体 -关系”方法,简称 E-R 模型 或 E-R 图,即实体 - 关系图(Entity Relationship Diagram)。E-R模型提供了
表示实体、实体属性和实体间关系
的方法。
E-R 模型画图具备以下几个主要特点:
实体(Entity):实体由矩形表示,矩形框内写 明实体名称
属性(Attribute):属性由椭圆表示,并用无 向边将其与相应的实体相连接
联系(Relationship):
实体之间的相互关联称为联系。在 E-R 模型中,联系由菱形表示,菱形 框内写明联系名称。用无向边分别与相关实体相连接,并在直线上标注联系的类型
对于一对一联系,需要在两个实体连线每个方向各写 1;对于一对多联 系,要在“一”的一方写 1,“多”的一方写 m 或 n;对于多对多联系,则需要在两个实 体连线方向上分别写 m 和 n
概念结构设计的实质是对系统中的事物进行抽象形成实体,并明晰实体之间
的联系。实体抽象的关键是需要从实际的人、物、事和概念中抽取所关心的共同
特性,而忽略非本质的细节,至于实体间的联系则可由实体间相互的业务操作或
内在关联来确定。
根据影院在线售票系统涉及E-R图:
实体属性:
![](https://i-blog.csdnimg.cn/direct/45dbdccfa42446d9b42022d676bb58aa.png)
![](https://i-blog.csdnimg.cn/direct/2825694439a24f6ea97d54fb83674d82.png)
![](https://i-blog.csdnimg.cn/direct/32b5a6c9816f41c186f273cb3673aec2.png)
![](https://i-blog.csdnimg.cn/direct/1f39c843cd48465ea4a9248185570bdd.png)
三、数据库逻辑结构设计
1. 逻辑结构设计概念
数据库逻辑结构设计就是把设计好的E-R图转为逻辑结构。
首先需要将实体—关系图转换为关系模型,然后根据具体数据库管理系统的特点和限
制转换为指定 数据库管理系统支持下的数据模型,最后进行优化。
实体—关系图转换为关系模型的一般规则如下:
将实体、实体的属性和实体之间的联系转换为 关系模式。
实体和联系表示为关系,它们的属性则转换成关系的属性。
2. 实体转为关系
![](https://i-blog.csdnimg.cn/direct/2bcc8d1bd45241b0a2ab025d9456b98f.png)
在数据库逻辑结构设计过程中,可以将实体直接转换为关系,关系名与实体同名,实体
的属性就是关系的属性,实体的主键就是关系的主键。
3. 实体间联系转为关系
1对1的联系可以转换为一个独立的关系模式,也可以与任意一端实体所对应的关系模式
合并。
如果
转换为一个独立的关系模式
,则与该联系相连的各实体键以及联系本身的属性转换为关系的属性,
每个实体的主键均可 以作为该关系的主键。
如果是
与联系的任意一端实体所对应的关系模式合并
,则需要
在该关系模式的属性中加入另一个实体的主键和联系本身的属性。
注意:
一般情况下,
1 ∶ 1
联系不转换 为一个独立的关系模式,而是与任意一
端实体所对应的关系模式合并。
一个一对多(1∶n)联系可以转换为一个独立的关系模式,也可以与 n 端实体所对应的关
系模式合并。
![](https://i-blog.csdnimg.cn/direct/51fbd03b3f4c4a698629ec5773f0a23b.png)
![](https://i-blog.csdnimg.cn/direct/04f6c1c515a04d34bffd1f9f39bc9d49.png)
![](https://i-blog.csdnimg.cn/direct/ef595aebe2094ec08907d96aaf1d39f0.png)
如果转换为一个独立的关系模式,则与该联系相连的各实体的主键以及联系本身
的属性转换为关系的属性
,其中 n 端实体的主键为该关系的主键。
如果与 n 端实体所对应的关系模式合并,则应该
在 n 端实体所对应的关系模式 中添加
一端实体的主键作为外键
注意:一般情况下,1∶n 联系不转换为一个 独立的关系模式,而是与 n 端实体所对应的关系 模式合并。
对于一个多对多(m∶n)联系,则需要将该联系转换为一个独立的关系模式。
转换规则:与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,该关系
的主键为各实体主键的组合。
四、powerdesigner设计数据模型
1.概念数据模型和物理数据模型
概念数据模型:先将现实世界中的客观对象抽象为实体(Entity)和联系
(Relationship),这种不依赖于具体的计算机系统或某个 DBMS系统的模型。
物理数据模型:将概念模型转换为计算机上某个DBMS 所支持的数据模型。
2.使用 PowerDesigner 设计数据库概念数据模型
(1)创建概念模型:菜单“文件”----“新建”--->
![](https://i-blog.csdnimg.cn/direct/8d89cf8f7b7d40db9c23e53abe715f76.png)
![](https://i-blog.csdnimg.cn/direct/d95b5be8d4784fa3a408e5c78d6e51bc.png)
![](https://i-blog.csdnimg.cn/direct/d79e76469a1844e794af2a94b16825dd.png)
绘制实体间的联系:
![](https://i-blog.csdnimg.cn/direct/a293f22754974cd3b6780084d285f1a8.png)
绘制多对多的实体对应关系:
![](https://i-blog.csdnimg.cn/direct/2c698a7ea94043a2ba1d62e7260e9944.png)
(2)概念模型转物理模型:
在概念数据模型视图中,点击菜单“工具”(Tools) “生成物理数据模 型”(Generate Physical DataModel),即可生成数据库物理数据模型。
3.使用 PowerDesigner 设计数据库物理数据模型
菜单“文件”----“新建”--->物理数据模型
![](https://i-blog.csdnimg.cn/direct/68fa8d5328a44e7cbeb06ed4c32992b6.png)
绘制多对多的对应关系时,可以拆开成绘制1对多的实体对应 关系。
4.使用 PowerDesigner 由物理模型导出数据库表结构
(1)配置需要导出数据库的 DBMS。
此处选择 MySQL。操作步骤:PowerDesigner --> Database(数据库) -->
Change Current DBMS(改变当前 DBMS),选择 MySQL5.0。
(2)由 物 理 模 型 生 成 数 据 库 代 码。 操 作 步 骤:PowerDesigner -->
Database( 数 据 库) --> GenerateDatabase(生成数据库),即生成 MySQL 数据
库表结构的创建代码。