概念

image.png

  • 成功的软件开发,需求的理解与表达很重要
  • 数据模型:表达计算机世界的模型。
  • 数据模型:表达信息世界的模型。简称概念模型。信息世界是对现实世界的理解与抽象。

image.png
image.png

数据建模

  • 数据建模是抽象,抽象是理解-区分-命名-表达
  • 现实世界需要理解:现实中的卡片、单据、表格、报表….…
  • 理解的标志是区分:表与表的区分,表内数据项的区分,数据项之间关系的区分,表之间关系的区分。
  • 区分的标志是命名:命名表、命名数据项、命名表之间的联系
  • 抽象的最终结果是正确的表达:用其他人能理解的表达方法来表达(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模型给出了一组基本概念,用这组概念可以刻画信息世界:
    • 实体
    • 属性
    • 联系
    • 关键字/关键码

image.png

实体与实例

  • 实体:客观存在并可相互区分的事物。
  • 实体有类(实体,实体的型)和个体(实体的实例,实体的值)的概念。

UTDJJQOBQNYI~SXO$6OF(ZF.png

  • 实体是用属性来刻画的
  • 属性,实体所具有的的某一方面特性。

image.png
属性分类:

  • 单一属性与复合属性
    • 复合属性示例:家庭住址:省份,详细地址
    • 在关系模型中,复合属性一定要转换为单一属性(关系的第一范式)
  • 单值属性与多值属性:每个实例的该属性值是一个还是多个。
    • 多值属性示例:电话号码。一个人可能有多个电话号码。
    • 在关系模型中,多值属性一定要转换为单值属性(关系的第一范式)
  • 可空值的属性和非空值的属性:每个实例的该属性值可以是或不能是空值。
  • 导出属性:由其它属性计算得出

    • 例如:由出生年月可以得出年龄。
  • 关键字/码:实体中能够用其值唯一区分开每一实例的属性或属性组合。

    • 这是特殊并关键的属性,每一个实体都必须给出关键字。

image.png

联系与联系的元数

联系:指一个实体的实例和其他实体实例之间所可能发生的联系

  • 如,哪位《读者》借阅了哪本《图书》,哪本《图书》放在哪个《书架》上

T`@921CLDLAGE~GN64GPVR9.png

  • 参与发生联系的实体的数目,称为联系的
  • 联系有一元关系、二元关系和多元关系
    • 一元联系:同一个实体中的实例之间的联系

![RF~30FR(9[4~$6NK{C78Y7.png

  • 二元联系:

image.png

  • 三元联系:

image.png

角色

  • 实体在联系中的作用称为角色
  • 当同一实体的不同实例参与一个联系时,为区别各实例参与联系的方式,需要显示指明其角色(role)

image.png

二元联系分类

二元联系包括:一对一一对多多对多联系。

  • 一对一联系(1:1):实体A的实例只能和实体B的一个实例发生联系,反之,实体B的实例也只能和实体A的一个实例发生联系。
    • 例:一个“经理”只管理一个“商店”,一个“商店”只能有一个“经理”
  • 一对多联系(1:m和m:1):实体A的实例能和实体B的多个实例发生联系,反之,实体B的实例只能和实体A的一个实例发生联系。
    • 例:一个“画家”可以绘制多幅“作品”,一幅“作品”只能由一个“画家”来完成。
  • 多对多联系(m:n):实体A的实例可以和实体B的多个实例发生联系,反之,实体B的实例也可以和实体A的多个实例发生联系。
    • 例:—位同学可以选学多门课程,一门课程可由多个人来选学

image.png

  • 进一步,联系的基数还要区分是0个、1个、不定数目的多个还是固定数目的多个(即,对每个实体的实例而言是否必须存在)
  • 通常以实体参与联系的最小基数和最大基数来标记(MinCard..MaxCard)
    • “书架”参与“存放图书”联系的基数为(0..m),而“图书”参与此联系的基数为(1..1)
    • 一个“书架”可以存放O或多本“图书”,一本“图书”只能存放在1个“书架”
  • 完全参与联系,即该端实例至少有一个参与到联系中,最小基数为1(1..m);
  • 部分参与联系,即该端实例可以不参与联系,最小基数为0(0..m)

image.png

E-R模型的几种图示化表达方法

Chen方法

基本图元及其含义

  • 实体:矩形框
  • 属性:椭圆
    • 多值属性:双线椭圆
    • 导出属性:虚线椭圆
  • 关键字/码:下划线
  • 连接实体和属性:直线
  • 联系:菱形框
  • 连接实体与联系:直线
  • 连接联系和属性:直线
  • 复合关键字:标有相同数字
  • 多组关键字:标有不同数字

image.png

不同联系之间的方法

  • 1:1联系:箭头直线,由联系指向实体
  • 1:m联系:指向1端为箭头直线,指向多端为无箭头直线
  • m:n联系:无箭头直线
  • 完全参与联系:双直线
  • 部分参与联系:单直线

image.png
另外的写法:

  • 1端实体-直线旁标1
  • 多端实体-直线旁标m或n

完全/部分参与联系也可以标注最小基数..最大基数进行区分,最小基数0的为部分参与联系,最小基数1的为完全参与联系。

  • 直线旁标1..1.0..1.1..m. 0..m

image.png

E-R模型理解需求并建模的步骤:

  • ①E-R图建模首先要找出问题领域的实体,即找出有哪些类/实体
    • 能够用一个个、一件件、一串串等重叠量词形容的,而不是一个、一件…
  • ②用属性刻画每一个实体
  • ③确定每一个实体的关键字/码
  • ④数据建模的重点是分析实体之间的联系
  • 检查是否覆盖了需求

    Crow’s Foot方法

    IDEF1X方法(工程化方法)

    三个世界多层(级)抽象

  • 现实世界==>(描述、抽象为)信息世界==>(描述、抽象为)计算机世界

  • 现实(客观存在)==>抽象/描述(概念/观念)==>计算机中(用计算机实现)

数据模型

  • 不同范围的人对现实世界中事物的描述和抽象可能是不同的
  • 现实的抽象与描述需要遵循统一的数据模型:
    • 统一的概念统一的表达方法
  • 数据模型是一组相互关联且已严格定义的概念集合,是用于刻画或描述现实世界、信息世界或计算机世界的模型。
  • 统一是为了信息交流与信息共享。
  • 表达计算机世界的模型称数据模型;表达信息世界的模型称概念数据模型,简称概念模型信息世界是对现实世界的理解与抽象

image.png