概念
- 成功的软件开发,需求的理解与表达很重要!
- 数据模型:表达计算机世界的模型。
- 数据模型:表达信息世界的模型。简称概念模型。信息世界是对现实世界的理解与抽象。
数据建模
- 数据建模是抽象,抽象是理解-区分-命名-表达。
- 现实世界需要理解:现实中的卡片、单据、表格、报表….…
- 理解的标志是区分:表与表的区分,表内数据项的区分,数据项之间关系的区分,表之间关系的区分。
- 区分的标志是命名:命名表、命名数据项、命名表之间的联系
抽象的最终结果是正确的表达:用其他人能理解的表达方法来表达(E-R图/Crow’s Foot/IDEF1X)
E-R模型
E-R模型:Entity-Relationship Model
- 1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型
E-R模型的基本观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
建模思想—-理解-区分-命名-需要区分即命名哪些要素。
- 表达方法—-用不同的图形表达被区分的不同要素。
- E-R模型给出了一组基本概念,用这组概念可以刻画信息世界:
- 实体
- 属性
- 联系
- 关键字/关键码
实体与实例
- 实体:客观存在并可相互区分的事物。
- 实体有类(实体,实体的型)和个体(实体的实例,实体的值)的概念。
- 实体是用属性来刻画的。
- 属性,实体所具有的的某一方面特性。
属性分类:
- 单一属性与复合属性
- 复合属性示例:家庭住址:省份,详细地址
- 在关系模型中,复合属性一定要转换为单一属性(关系的第一范式)
- 单值属性与多值属性:每个实例的该属性值是一个还是多个。
- 多值属性示例:电话号码。一个人可能有多个电话号码。
- 在关系模型中,多值属性一定要转换为单值属性(关系的第一范式)
- 可空值的属性和非空值的属性:每个实例的该属性值可以是或不能是空值。
导出属性:由其它属性计算得出
- 例如:由出生年月可以得出年龄。
关键字/码:实体中能够用其值唯一区分开每一实例的属性或属性组合。
- 这是特殊并关键的属性,每一个实体都必须给出关键字。
联系与联系的元数
联系:指一个实体的实例和其他实体实例之间所可能发生的联系
- 如,哪位《读者》借阅了哪本《图书》,哪本《图书》放在哪个《书架》上
- 参与发生联系的实体的数目,称为联系的度或元。
- 联系有一元关系、二元关系和多元关系。
- 一元联系:同一个实体中的实例之间的联系
![RF~30FR(9[4~$6NK{C78Y7.png
- 二元联系:
- 三元联系:
角色
- 实体在联系中的作用称为角色
- 当同一实体的不同实例参与一个联系时,为区别各实例参与联系的方式,需要显示指明其角色(role)
二元联系分类
二元联系包括:一对一、一对多、多对多联系。
- 一对一联系(1:1):实体A的实例只能和实体B的一个实例发生联系,反之,实体B的实例也只能和实体A的一个实例发生联系。
- 例:一个“经理”只管理一个“商店”,一个“商店”只能有一个“经理”
- 一对多联系(1:m和m:1):实体A的实例能和实体B的多个实例发生联系,反之,实体B的实例只能和实体A的一个实例发生联系。
- 例:一个“画家”可以绘制多幅“作品”,一幅“作品”只能由一个“画家”来完成。
- 多对多联系(m:n):实体A的实例可以和实体B的多个实例发生联系,反之,实体B的实例也可以和实体A的多个实例发生联系。
- 例:—位同学可以选学多门课程,一门课程可由多个人来选学
- 进一步,联系的基数还要区分是0个、1个、不定数目的多个还是固定数目的多个(即,对每个实体的实例而言是否必须存在)
- 通常以实体参与联系的最小基数和最大基数来标记(MinCard..MaxCard)
- “书架”参与“存放图书”联系的基数为(0..m),而“图书”参与此联系的基数为(1..1)
- 一个“书架”可以存放O或多本“图书”,一本“图书”只能存放在1个“书架”
- 完全参与联系,即该端实例至少有一个参与到联系中,最小基数为1(1..m);
- 部分参与联系,即该端实例可以不参与联系,最小基数为0(0..m)
E-R模型的几种图示化表达方法
Chen方法
基本图元及其含义
- 实体:矩形框
- 属性:椭圆
- 多值属性:双线椭圆
- 导出属性:虚线椭圆
- 关键字/码:下划线
- 连接实体和属性:直线
- 联系:菱形框
- 连接实体与联系:直线
- 连接联系和属性:直线
- 复合关键字:标有相同数字
- 多组关键字:标有不同数字
不同联系之间的方法
- 1:1联系:箭头直线,由联系指向实体
- 1:m联系:指向1端为箭头直线,指向多端为无箭头直线
- m:n联系:无箭头直线
- 完全参与联系:双直线
- 部分参与联系:单直线
另外的写法:
- 1端实体-直线旁标1
- 多端实体-直线旁标m或n
完全/部分参与联系也可以标注最小基数..最大基数进行区分,最小基数0的为部分参与联系,最小基数1的为完全参与联系。
- 直线旁标1..1.0..1.1..m. 0..m
E-R模型理解需求并建模的步骤:
- ①E-R图建模首先要找出问题领域的实体,即找出有哪些类/实体
- 能够用一个个、一件件、一串串等重叠量词形容的,而不是一个、一件…
- ②用属性刻画每一个实体
- ③确定每一个实体的关键字/码
- ④数据建模的重点是分析实体之间的联系
-
Crow’s Foot方法
IDEF1X方法(工程化方法)
三个世界多层(级)抽象
现实世界==>(描述、抽象为)信息世界==>(描述、抽象为)计算机世界
- 现实(客观存在)==>抽象/描述(概念/观念)==>计算机中(用计算机实现)
数据模型
- 不同范围的人对现实世界中事物的描述和抽象可能是不同的
- 现实的抽象与描述需要遵循统一的数据模型:
- 统一的概念与统一的表达方法
- 数据模型是一组相互关联且已严格定义的概念集合,是用于刻画或描述现实世界、信息世界或计算机世界的模型。
- 统一是为了信息交流与信息共享。
- 表达计算机世界的模型称数据模型;表达信息世界的模型称概念数据模型,简称概念模型,信息世界是对现实世界的理解与抽象