02 建立数据模型

SonderLau ... 2020-06-22 Notes
  • 数据库
大约 7 分钟

# 02 建立数据模型


# 现实世界的数据化过程

现实世界只有数据化后 才能由计算机系统来处理这些代表现实世界的数据

  • 现实世界
    • 由实际事物组成 事物之间联系错综复杂
    • 事物和事物特性
  • 信息世界
    • 概念模型描述
    • 现实世界在人脑中的反应
    • 事物和事物特性 ↔️ 实体和实体属性
  • 数据世界
    • 数据模型描述
    • 信息世界数据化后的产物
    • 实体和实体属性 ↔️ 记录和数据项

# 概念模型

在进行数据库设计时 必须首先给出概念模型

# 基本概念

表示概念模型的最常用模型是 实体-联系模型 (Entity-Relationship Model) E-R

包含三个主要的元素类型 : 实体集 属性 联系

# 实体 Entity

实体是客观事物的反应

既可以是某种概念,也可以是实际存在的对象

实体必须可以相互区分

# 属性 Attribute

事物是有特性的

属性有 属性名 和 属性值之分

如 性别 是属性名 而男性是性别属性的一个属性值

# 域 Domain

任一实体在任一属性上的取值都是有限制的

一个属性的取值范围 就是这个属性的域

# 实体集 Entity Set

所有属性名完全相同的实体往往集合放在一起 称为实体集

同一个实体集中没有完全相同的实体

# 实体型 Entity Type

实体集的名称及其所有属性名的集合称为实体集

在不引起混淆的情况下 实体集往往简称为 实体

# 码 Key

在一个实体集中 根据一个或者几个属性的值 可唯一确定每一个实体

而又没有包含多余的属性 则称此属性或属性组为该实体集的码

有时也称 候选吗 Candidate Key 也称作

# E-R 图的基本表示方式

实体-联系E-R 数据模型所采用的三个主要概念是: 实体集 联系集 属性

E-R 模型是一种静态信息模型 只能反映当前状态 不能反映实体的变化过程 用矩形框表示实体集

用椭圆表示属性

实体的码用下划线表示

实体集之间的联系集用菱形表示

用无向边与相关实体集连接

无向边上写上联系集的类型

# 联系

两个实体集之间的联系可归纳为以下三类

  1. 一对一联系 1:1
  2. 一对多联系 1:n 或者 n:1
  3. 多对多联系 n:n

# 多元联系

可以表示两个以上实体集之间的联系 称为多元联系

一个多元联系 总是 可以用多个不同的二元联系来替代

大多数情况下 使用多元联系集比二元联系集更方便 原因:

  • 多元联系集可以清晰地表示出几个实体集参与到一个联系集的情况 而转换为多个二元联系之后 难以体现这种参与性
  • 对于为替代多元联系集而引进的实体集 有时不得不为其创建一个标志码 因为每个实体必须相互可以区分 二者也增加了设计的复杂度和存储空间的需求

# 联系的属性

联系也可以具有单独的属性

在有些时候 部分属性既不能作为各个实体集的部分

将属性附属给实体集之间的联系 会更加准确

# 自身联系

在一个联系中 一个实体集可以出现两次或者多次 扮演多个不同的角色 称为自身联系

# 弱 / 强 实体集

一个实体集的属性不足以形成码 这样的实体集就称为弱实体集 Weak Entity

与此相对的 有码的实体集 称为 强实体集 Strong Entity

弱实体集常常出现的以下两种情况中

  • 由联系转换的来的联系实体集中
    • 这些实体集没有自己的码属性 他们的码是由他们所连接实体的码属性构成的
  • 子类实体中

# 子类 和 Is-a 层次联系

实体集 A 属于另一 实体集 B A 中的实体都有特殊的属性需要描述

且这些特殊属性对 B 中其他的实体无意义

称 A 是 B 的子类

A B 之间存在一种层次联系 Is - a 属于

# E - R 模型的设计方法

三条设计原则

  • 相对原则

    • 建模过程实际上是一个对对象的抽象过程

      因此 不同人或者同一个人在不同情况下 抽象程度可能不同

  • 一致原则

    • 同一对象在不同业务系统中的抽象结果要求保持一致

  • 简单原则

    • 现实世界中 能作为属性对待的 尽量作为属性处理

      1. 属性不在具有需要描述的性质 即在含义上是不可分的数据项
      2. 属性不再能与其他实体集具有联系

# 数据模型

数据模型是数据库系统的核心和基础 任何 DBMS 都支持一种数据模型

任何一种数据模型都规定了一种数据结构 描述了系统的静态特性

最后 数据模型还必须提供定义完整性约束条件的手段 并在操作中自动检查之

# 关系模型

与层次模型和网状模型相比 关系模型概念简单 清晰 并且具有严格的数据基础

形成了关系数据理论 操作也直观 容易 因此易学易用

支持关系模型的 DMBS 称为关系型数据库管理系统 Relational Database Management System RDBMS

# 关系模型数据结构以及基本概念

主要术语

  • 关系 Relation

    • 一个关系可用一个表来表示

  • 属性 Attribute

    • 关系中的每一列即为一个属性 每个属性都有一个属性名 且不能重复

  • 域 Domain

    • 一个属性的取值范围就是该属性的域

  • 元组 Tuple

    • 关系中的一行数据总成为一个元组

  • 分量 Component

    • 一个元组在一个属性上的值称为该元组在此属性上的分量

  • 候选吗 Candidate Key

    • 一个关系中的某个属性或属性组的值能唯一标识关系中的各个元组 且又不含多余的属性 则称为一个候选码 有时候也称为 码

  • 主码 Primary Key

    • 若一个关系中有多个候选码 则选取其中一个为主码

      每个关系有且仅有一个主码

  • 主属性 Main Attribute

    • 包含在任何一个候选码中的属性称为主属性

  • 外部码 Foreign Key

    • 若 A 是基本关系 R1 的属性(组) 但不是 R1 的码 且 A 与基本关系 R2 的码 K 相对应 则称 A 是 R1 的外部码

      R1 和 R2 不一定是不同的关系

关系模式

一个关系的关系名及其全部属性名的集合建成为该关系的关系模式

关系名(属性名 1 , 属性名 2 ,... , 属性名 n )

关系具有以下 6 个基本性质

  • 关系中的每个分量都是不可分的基本数据项
  • 属性列是同一个域
  • 不同的列可以出自同一个域
  • 列的次序可以相互交换
  • 行的顺序也可以相互交换
  • 一个关系中的任意两个元组不能相同

# 关系的完整性约束

  1. 实体完整性

    若属性 A 是基本关系 R 的一个主属性 则任何元组在 A 上的分量都不能为空

  2. 参照完整性

    参照完整性是对关系之间引用数据的一种限制

  3. 用户定义的完整性

    例如数据的大小范围等用户自己定义的数据约束

# E -R 模型向关系模型的转化

TBD

# 数据模型与数据库系统的发展

TBD

上次编辑于: 2021年11月15日 17:39
贡献者: SonderLau