第六章 数据建模和分析
一、系统建模简介
三、数据的收集和整理技术
二、逻辑数据建模的过程
四、构建数据库模型的步骤
五、分析数据模型
六、类和对象建模
一、系统建模简介
1、系统建模的概念
信息系统是由一系列模型构成的有序集合。
信息系统的开发方法是模型在不同层次上的建立方法。
?模型是现实世界中某些重要方面的抽象展示。
?每种模型强调一种不同类型的信息。模型可有多种表现形式
?信息系统分析人员用模型来模拟系统的流程、结构、功能等;
?从处理角度看,有:输入 /输出模型、功能模型、数据模型、控
制模型、决策模型等;
?从设计角度看,有动态模型、静态模型等。
2、系统逻辑模型和物理模型
?系统分析阶段建立的需求模型,就是系统的逻辑模型。
?逻辑模型重点在于解决系统要“做什么”。
?逻辑模型显示系统在功能方面的总体要求。
?逻辑模型独立于具体实现技术。
?逻辑模型的“逻辑”特指业务处理中的数据内容和处理过程。
逻辑模型
物理模型
?重点解决系统“如何做”问题。
?与具体实现技术有关,并受限于技术条件(约束条件)
?完成技术设计方面的工作。
逻辑模型与物理模型的区别
逻辑模型 物理模型
着眼点 系统要做什么 系统、过程是如何实现的
处理 常是并行的 有序的
名称 基本的数据和过程 指文件、人、方式、手段等
数据流
只在过程中用到或产生的主
要数据
很多实际的数据名、记录者
控制 只限于基本事物和控制
包括过程之间、人、机、边
界等控制
有效时间
相对稳定,一旦建立后,即
使物理模型有所变化,逻辑
模型也保持不变
受环境影响较大,过一段时
间通常要变更
逻辑模型的作用
?消除对技术细节的关注,聚焦于要解决的问题。
?便于人们准确、完整地把握要做的事情。
?便于系统分析人员与用户的沟通。
?是系统分析阶段的成果,是创建物理模型的依据。
3、数据模型的概念
?数据模型是把系统数据有效组织起来形成文本化的一种技术。
?数据建模就是数据库建模。
?数据建模是为数据库定义业务数据需求的技术
?数据模型在信息系统分析阶段产生。
数据建模的重要性
?数据是信息系统的核心,数据库的性能是评价信息系统性能的重
要指标。将数据有效组织起来是数据建模的目的。
?信息系统中,数据结构及其性质是相对稳定的。
?数据模型相比程序模型、项目模型较小,易于构建。
?建立数据模型的过程可以帮助系统分析员和最终用户快速在业务
术语和规则上达成一致。
4、数据模型的特点和种类
数据是反映客观事物的属性、性质以及相互关系的表现物。
如:,6”可表示,6个人,6辆车 ………,等
二元组(手帕,黄),表示手帕具有黄颜色,等。
?数据模型把数据有规律地组织起来,使数据能提供有用的信息。
?数据模型是客观事物及其联系的数据描述,是数据之间一个整体
逻辑结构图。
( 1)层次模型
用树型结构表示数据实体及之间的联系。每个实体是模型中一
个结点;结点之间的通路是它们之间的关系;只有一个根结点;
任何结点只有一条通路。
UML图形元素表示的层次模型
滑翔机
机尾 机翼 机身
右机翼 左机翼
滑翔机
乘员
0…1
0…*
层次模型反映“一对多”的联系
( 2)网状模型
用网络结构表示数据实体以及它们之间的联系。数据实体为结
点;通路为它们之间的联系;根结点不止一个;结点之间的通路
也不止一个。
UML图形元素表示的网状模型
城市
公司 人员
0…* 0…*
0…* 0…1
1…* 1…*
被雇佣
驻地在 居住地
城市
公司 人员
公司
城市 人员
人员
公司 城市
( 3)关系模型
? 把实体与实体之间的联系用二维表格的形式描述。
?表中每一行是一个记录,称为元组;
?表中每一列称字段,表示属性;
?每个属性取值范围称为该属性对应的域。
?关系模型可以表示“一对一”,“一对多”,“多对多”的联
系。
关系的性质
? 一个关系模式不能有重名的属性;
?关系中每一个属性值来自同一个域;
?关系中的属性是不可再分的基本字段;
?关系中任何两个元组的值不能完全相同;
?改变关系中行与列的顺序与原来的关系模式在逻辑上等价;
?每个关系都有一个关键字惟一标识它的各行元素,称为主关键字。
反映数据实体、数据实体之间关系、数据实体属性的模型
实体联系图
数据存储需求
包括存储数据实体、数据实体的属性、数据实体之间的关系。
5、实体关系图 E— R图
? 实体:抽象表示一组类似“事物”的所有实例的概念。
?属性:对于给定数据实体需要存储的各方面数据
E1
学生
档案
E3
课程
档案
E2
注册记

选课单
选课 注册
课程号
注册日

选课
学期
学号
课程号
班级
学号
何时入

系别
出生日

姓名
学号
性别
任课教

是否必

学分
开课学

课程名
( 1)实体
可以相互区别、又可以被人们识别的事、物、概念,均可被抽象为实体。
独立实体
不依赖于其他实体和联系可以独立存在的实体。
从属实体
依赖于其他实体和联系而存在的实体。
联想实体
继承了其它实体(父实体)主关键字的实体。
( 2)关系
? 关系反映存在于多个实体之间的业务关联。
?关系可以有“一对一”,“一对多”,“多对多”。
( 3)属性
? 实体所具有的特征,称为实体的属性。
?联系也有属性。
?主关键字:能唯一决定一个实体的一个或一组关键字。
?外部关键字:实体的主关键字取值依赖于其它实体的主关键字
?属性域:属性取值的范围,可以是单域,也可以是多域的组合属性
?属性值:属性所取的值。可为单值,也可为多值。
二、逻辑数据建模的过程
1、企业数据模型的建立
企业要做什么? 信息系统做什么?
涉及到什么?
商业策略
商业目标
信息系统目标
信息系统策略
KOZAR模型
确认信息系
统的目标
形成企业的
使用场景
分析信息系
统的功能
形成信息系
统的应用实例
分析信息系
统的参与者
确认企业的
业务流程
整理企业数据
确认信息系
统的目标
详细分析工作
实体(任务)
找出企业的工
作实体和员工
找出共同的
词汇和术语
核实企业商业
目标和策略
制定信息系
统需求的标准
确认企业的
应用实例
分析企业的商
务目标和策略
信息系统做什么 涉及到什么 企业需要做什么
( 1)企业数据的整理
( 2)组织企业数据模型
企业商务目标
和商务策略
形成企业数据
词典 /构建模型
检查术语和规
则的一致性
排出使用实体
优先级
整理企业数据
扩大使用实例
导出相关需求
企业规划
实例结构化
子系统管理
企业目标 数据库管理 信息系统管理
业务管理
2、系统分析阶段的数据建模
系统的不同干系人对数据的观察角度不同,
?系统拥有者:关注商务知识、商务目标和策略
?系统用户:日常处理的各类数据
( 1)应用数据建模
应用场景
应用实例
数据模型
用例模型
对象模型
( 2)逻辑数据建模
?逻辑数据模型是系统分析和设计人员的数据试图。
?数据模型较过程模型宏观
?数据模型较过程模型简单
3、研究阶段的数据建模
?研究阶段旨在对分析与设计所得数据模型做进一步深入研究。
?研究阶段的数据模型对分析阶段数据模型进行优化。
4、系统定义阶段的数据建模
?定义阶段的数据模型为系统设计者所使用,是基于关键字的数据模型。
?系统设计者的数据视图主要是数据范式和数据库的规范化
?将局部数据模型集成,形成整体的数据模型。
5、系统配置阶段的数据建模
?设计在给定的软硬件条件、应用环境下可实现的、运行效率高的物理
数据模型。
?首先选择数据库管理系统
?其次,将逻辑数据模型转换为物理数据模型。
1)选择数据库文件的存储结构
物理数据模型设计的考虑内容
3)分配存储空间
2)选择索引
文件存储结构的选择取决于对数据进行处理的方式。
建立索引的目的是实施关键字约束和提高访问效率。
三、数据的收集和整理技术
1、数据来源及收集方法
( 1)数据来源
数据来源可以是:复查现有文档、对类似系统的研究、与系统
相关者的交谈。
?复查现有文档便于获得对过程的理解,获得行业知识。
?研究类似系统,通过比较获得大略思路,避免过去的错误。
?与系统相关者交谈便于理解商业功能和商业规则
( 2)收集方法
联合应用开发方法( JAD)是最有效的一种方法。
2、数据建模工具和质量控制
( 1)数据建模工具
通常使用 CASE工具进行数据建模。
( 2)数据质量控制
?确定每个数据项的名称、别名、类型、长度和取值范围。
?确定数据项之间的联系
?明确数据来源
?明确数据的处理权限及内容
( 3)建立数据字典
数据字典是 用来定义数据流程图中的数据流、数据文件、转
换处理、以及数据元素的系统文件。定义数据字典的要求,
?能很容易地从名称找到定义组件;
?数据字典的组件按一定规则排列:以流程图出现的先后顺序、以
组件起始字母的顺序;
?已定义过的数据不需要重复定义;
?数据定义应以简明扼要的文句来描述;
?数据定义的内容易于更改
四、构建数据库模型的步骤
1、发现类和对象(实体)
发现实体
(类、对象)
上下文数据建
模(场景、参
与者、用例)
完整描述模型 完全属性化的 数据建模 泛化层次
基于关键字的
数据建模
发现类和对象的注意点及方法,
?在 JAD对话中注意获取 关键词
?在 JAD对话中,注意识别对象。系统需要存储这些对象的信息。
?从现有表单、文件的研究中发现实体。
?注意使用相应领域的业务术语。
2、建立类的关联图
面向对象的类图和传统的 E-R模型都是为了发现实体以及实体
之间的联系。
?要注意实体之间关系的双向性。
?关系的基数:实体之间关联的数目,有:一对一、一对多、多对
多。基数又称重数。
?基数针对关系的每一个方面。
?基数的取值范围。
?对关系的命名方法
3、建立基于关键字的数据模型
每个实体需要存储的信息称为属性,关键字是能唯一标识一个实
体的属性。
关键字必须满足以下条件,
?关键字的值在实体实例的生命周期中不能改变;
?关键字的值不能为空;
?要设置控制机制,保证关键字的值是合法的。
?定义关键字时尽量使用静态定义。
?对长度过长的关键字,可使用替代标识。
?将关键字与业务编码有机结合,共同识别实体。
?常用的编码类型有:序列码、块码、层次码、十进制码等。
4、识别泛化层次
? 泛化层次是指在一个业务系统中,数据对象的属性之间存在共性的关系
?泛化层次是数据库模型中实体的一种按属性的归纳
5、完全属性化的数据模型
系统中属性被定义为有关对象的一条特定信息。
6、完整描述模型
定义了系统中所有属性的数据类型、域和缺省值。同时,在必要处
也向属性添加了其它描述性内容。
五、分析数据模型
两种情况下对信息系统数据模型进行分析,
?新系统开发之前,对老系统数据模型进行分析;
?在信息系统的系统分析和数据建模之后,对已建数据模型进行分
析、评价
高质量的数据模型具有以下特点,
?表中每行以及主关键字都是唯一的;
?冗余数据较少;
?容易实现未来数据模型的改变。
1、关键字的唯一性
2、数据模型的灵活性
? 数据模型的灵活性是指,若对数据库模式进行更改,对已存在的数
据内容和结构造成的影响最小。例:增加一个新实体、新关系。
?数据冗余对数据模型的灵活性和可维护性起着重要作用,但冗余带来
额外开销,对一致性带来麻烦。
?DBMS通过参照完整性来约束主关键字和外部关键字之间的一致性。
? 对内部关键字,应能对新增记录自动产生关键字;
?对外部关键字,应进行有效性检查。
3、数据库规范化
数据库规范化可消除数据冗余、消除操作异常、使关系模式
灵活,便于用查询语句查询。
( 1)第一范式
每个属性是不可再分的基本属性。
( 2)第二范式
满足第一范式的关系模式,其所有属性都函数依赖于某一主关键
字。则称其为第二范式 。
例,物资进货(入库单号,日期,物资代码,大类,名称,规格,计量
单位,单价,数量,金额) 不满足 2NF。
入库时间(入库单号,日期);
物资关系(物资代码,大类,名称,规格);
库存关系(入库单号,物资代码,计量单位,单价,数量,金额)
? 关键字:(入库单号,物资代码)
?依赖关系:(计量单位,单价,数量,金额) → (入库单号,物资代
码); 日期 → 入库单号;(名称,规格) → 物资代码
( 3)第三范式
某关系满足第二范式,且它的任何一个属性都不传递依赖于任
何主关键字。则称其为第三范式。
例:非 3NF
库存关系(入库单号,物资代码,计量单位,单价,数量,金额)
?有函数依赖:金额 → (单价,数量);
(单价,数量) → (入库单号,物资代码)
?存在传递依赖:金额 → (入库单号,物资代码)
4、数据传输量和存储空间的计算
以下数据可用于估算数据传输量和存储空间,
?单位时间需访问的逻辑记录( LRA);
?单位时间内的数据传输量( TV);
?数据库占用存储空间( SIZE);
?记录的长度( RSj)
?记录 j的记录数( NRj)
?记录 j在应用 i中的存取次数 nij;
?应用 i的执行频率 fj
5、数据需求与位置的影射
将所涉及的数据与产生和使用这些数据的单位、部门、子系统
联系起来,称为数据需求与位置的影射。
六、类和对象建模
1、定义对象类
( 1)定义属性
0…* 0…*
选课
课程编号
课程名
上课时间
学分
学生人数
构造新对象
开设课程 ()
编辑修改
是否超员 ()
查询课程 ()
课程 选课注册
学号
姓名
年级
总学分
课程
构造新对象
选课注册 ()
编辑修改
增加选课注册 ()
删除选课注册 ()
( 2)定义操作
( 1)关联类
把关联定义成类,称为关联类。关联类与 关联之间由一条虚线
连接。关联名是关联类的名字。
顾客
供货商
*
*
交易 交易
顾客
供货商
*
*
2、对象类的关联
商品名称
数量
价格
供货商
交易
公司名称
地址
交易
供货商
姓名
地址
交易
顾客
*
*
1
1
( 2)多重关联
商品楼
开发商 建筑商
两个以上的类之间的相互关联
*
*
*
? 表示,一个开发商可以与多个建筑商签定合同,开发多个商品
楼 ;一个建筑商也可以与多个开发商签定合同,开发多个商品楼 ;一
个商品楼也可以被多个开发商和建筑商开发,
?多重关联可设置关联类,简化系统设计,
( 3)其他的关联
? 关联的约束
?受限关联
?递归关联
购房合同
个人 公司
开发商
* *
*
* {xor}
3、聚集
零件
汽车
*
*
( 1)共享聚集
,部分”对象可以是任意”整体”对象的一部分,表示较弱的整体 /部分关系。
( 2)组合聚集
聚集的”整体”拥有它的部分,具有强的物主身份,表示事物的整体 /部
分关系较强的情况。
圆心

1
1
4、继承

一维图 二维图
弧 线 园 多边形
? 表示“一般 -特殊”的关系。
?子类可以继承父类的属性、操作和关联,但不能访问父类中私有的属性
和操作。
?同一个一般类可以有不同的分类方法,例如:“人”。
4、类图构造实例 定单处理系统的类图
车辆编号
车辆状态
车辆
车辆编号
送货员编号
发货时间
运输成本
到达时间
送货
商品编号
品名
规格
等级
描述
商品
仓库编号
库存数量
重订点
平均成本
库存
供应商编号
供应商名称
地址
供应商
送货时间
数量进价
供货
数量
单价
订单明细
收到日期
业务员
邮件订单
接线员
通话时间
电话订单
E-mail地址
回复方法
网上订单
帐号
姓名
送货地址
联系方式
客户
订单编号
订单日期
订单总额
付款方式
订单
送货员编号
姓名
联系电话
住址
送货员
1 0..*
0..*
0..*
0..*
0..*
0..*
0..*
1
1
1..* 1..*
1..* 1
0..* 1
输入定单
查询
取消定单明细
取消定单 电话代理
贷款帐户
确认购买
信用授权机

退货处理
接受定单
取消发货请求
查询库存
请求发货
产品仓库系

退回定单物品
运送货物
货运系统
定单处理系统
的用例图
练习,
根据网上书店的需求描述,构造其对象类图。网上书店的功能包括,
?显示图书信息;
?查询图书;
?购物车,模拟超市的购物车功能
?结帐,在全部购买完毕后,最后的结帐;
?客户信息管理,实现客户注册、登录的功能;
?库存管理,网上书店管理员用它添加、删除库存。
解答,
1、寻找问题中涉及的对象类
根据网上书店的功能描述,问题域涉及到的对象类有,
?客户类(姓名、联系方式,E-mail地址等 )
?客户帐号类(帐号、帐号余额、信用记录等)
?订单类(订单编号、订单日期、订单总额、付款方式等)
?订单明细类(数量、价格等)
?库存书目类(仓库编号、库存图书、数量、平均成本等)
?图书类(图书编号、书名、作者、出版社等)
2、寻找对象类之间的关联关系,并画出类图
仓库编号
库存图书
数量
平均成本
库存书目
数量
单价
订单明细
姓名
联系方式
客户
E-mail地址
姓名
联系方式
客户帐号
E-mail地址
订单编号
订单日期
订单总额
付款方式
订单
图书编号
书名
作者
出版社
图书
0..*
0..*
0..*
0..*
1
1 1
1
1
1..*