数学建模:思想与方法

一、为什么要数据建模与数据库设计

1.1 数据建模与数据库设计

1.2 数据模型与概念模型

  • 表达计算机世界的模型称数据模型;表达信息世界的模型称概念数据模型,简称概念模型,信息世界是对现实世界的理解与抽象

  • 例1

  • 例2

1.3 怎样抽象——理解-区分-命名-表达

  • 现实世界需要理解:现实中的卡片、单据、表格、报表...
  • 理解的标志是区分:表与表的区分,表内数据项的区分,数据项之间关系的区分、表之间关系的区分
  • 区分的标志是命名:命名表、命名数据项、命名表之间的联系
    • 抽象的最终结果是正确的表达:用其他人能理解的表达方式来表达(E-R图/Crow's Foot/IDEF1X)

二、E-R模型——数据建模之基本思想

  • E-R模型首先是一种数据建模的思想
  • 世界是由一组称作实体的基本对象和这些对象之间的联系构成的

2.1 E-R模型的基本概念

  • E-R模型给出了一组基本概念,用这组概念可以刻画信息世界
    • 实体
    • 属性
    • 联系
    • 关键字/码

2.2 实体是什么?实体与实例的差别是什么?

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

2.3 怎样刻画实体

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

  • 属性还有很多类型,注意区分:
    • 单一属性和复合属性
      • 复合属性示例:家庭住址:省份,详细地址
      • 在关系模型中,复合属性一定要转化为单一属性(关系的第一范式)
    • 单值属性和多值属性:每个示例的该属性值是一个还是多个
      • 多值属性示例:电话号码,一个人可能有多个电话号码
      • 在关系模型中,多值属性一定要转化为单值属性(关系的第一范式)
    • 可空值属性和非空值属性:每个示例的该属性值可以是或不能是空值
    • 导出属性
      • 由其他属性计算而得
      • 例如由“出生年份”可以得出“年龄“

2.4 关键字的作用

  • 实体中每一个实例如何区分
    • 关键字/码,实体中能够用其值唯一区分开每一实例的属性和属性组合

2.5 实体之间的联系

  • 实体之间是有联系的
  • 联系是指一个实体的实例和其他实体实例之间所可能发生的联系
  • 如:哪位《读者》借阅了哪本《图书》,哪本《图书》放在哪个《书架》上

2.6 联系的区分

  • 参与发生联系的实体的数目,称为联系的度和元
    • 联系有一元联系、二元联系和多元联系
  • 二元联系

  • 三元联系

  • 一元联系

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

  • 实体之间的联系有很多种类
    • 二元联系:一对一、一对多和多对多联系
    • 一对一联系(1:1):实体A的实例只能和实体B的一个实例发生联系,反之,实体B的实例也只能和实体A的一个实例发生联系
    • 一对多联系(1:m和m:1):实体A的实例能和实体B的多个实例发生联系,反之,实体B的实例只能和实体A的一个实例发生联系
    • 多对多联系(m:n):实体A的实例可以和实体B的多个实例发生联系,反之,实体B的实例也可以和实体A的多个实例发生联系
  • 联系的基数:实体实例之间的联系的数量,即一个实体的实例通过一个联系能与另一个实体中相关联的实例的数目
  • 常见的映射基数如上,有一对一的(1:1),一对多的(1:m),多对多的(m:n)几种情况
  • 进一步,联系的基数还要区分是0个、1个、不定数目的多个还是固定数目的多个(即,对每个实体的实例而言是否必须存在)
  • 通常以实体参与联系的最小基数和最大基数来标记(MinCard...MaxCard)
  • 完全参与联系:即该端实例至少有一个参与到联系中,最小基数为1(1...m);
  • 部分参与联系:即该端实例可以不参与联系,最小基数为0(0...m)

三、E-R模型-表达方法之chen方法

3.1 chen方法的基本图元及其含义

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

3.2 Chen方法中不同“联系”的区分方法

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

  • 1:1,1:m,m:n的联系也可以如下区分:
    • 1端实体-直线旁标1
    • 多端实体-直线旁标m或n
    • 完全/部分参与联系也可以标注最小基数...最大基数进行区分,最小基数0的为部分参与联系,最小基数1的为完全参与联系
      • 直线旁标注:1..1,0..1,1..m,0..m

  • 示例:图书馆里的E-R图

3.3 运用E-R模型理解需求并建模的步骤

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

四、数据库设计中的抽象

4.1 如何看待信息

4.1.1 信息

  • 信息是现实世界中事物在人们头脑中的一种反映
  • 信息可以准确的反映现实世界中事物(描述)
  • 也可以通过对现实进行抽象,形成信息(抽象)

4.1.2 信息的取舍--抽象与具体化

  • 现实世界中的事物包含了众多信息
    • 数据库设计往往因为忽视了信息(之间联系)的细致分析而造成设计失误
    • 数据库设计能力的高低往往体现在信息(及其联系)的正确分析上,体现在理解现实世界能力的高低

4.2 三个世界

4.2.1 三个世界与多层(级)抽象

  • 现实世界==>(描述、抽象为)信息世界==>(描述、抽象为)计算机世界
  • 现实(客观存在)==>抽象/描述(概念/观念)==>计算机中(用计算机实现)

4.3 型与值

4.3.1 型与值

  • 基本的抽象:"型"与“值”的抽象

4.3.2 不同层次的型与值

  • “型”与“型的型”:进一步“型与值”抽象
  • 将可无限扩展的内容,或内容暂无法枚举的情况,抽象为可有限描述的概念

4.4 不同层次的抽象

  • 现实层(客观存在)==>抽象层(观念世界/信息世界,描述现实世界的一种观点)==>...(信息世界的若干抽象)...==>逻辑层(计算机世界:独立于物理设备)==>物理层(计算机世界:不同物理设备的具体实现)
  • 越抽象,语义信息越少,概括性越高,越反应共性信息,表征的范围越大
  • 检验抽象正确性的方法:能够依据现实抽象出来(抽象化),同时也能够依据抽象的信息和抽象规则还原为抽象对象(具体化)

  • 理论上:A = A';现实中:A \neq A'

4.5 数据模型及其作用

4.5.1 数据模型

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

4.5.2 数据模型与概念模型

  • 表达计算机世界的模型称数据模型;表达信息世界的模型称概念数据模型,简称概念模型,信息世界是对现实世界的理解与抽象

4.6 抽象过程:理解-区分-命名-表达

4.7 抽象层次

4.7.1 分层级抽象

  • 不同层面的抽象:现实世界=>概念/信息世界=>计算机世界
  • 逻辑世界(语义结构)=>物理世界(存储结构)

4.7.2 另一种层次的抽象:方法论及应用

4.8 建模层次

  • 建模的不同层次:模型与元模型,模型(型)与实例(值)

猜你喜欢

转载自blog.csdn.net/qq_38689352/article/details/111244659