最后那3分——ER模型到关系模型的转换

基础知识

为何要学习ER(Entity-Relation)图?ER的优势

  1. 进行数据库设计的有力工具
  2. 数据库人员与用户进行交互的工具
  3. 较强的表达能力,能方便、直接地表达各类语义知识
  4. 简单、清晰、易于用户理解

实体-联系模型基于对现实世界的一种认识:是由一组称做实体的基本对象及这些对象间的联系组成。ER模型是一种语义模型,其语义主要体如今模型图去表达数据的意义。算法

ER图中有什么

  1. 矩形:表示实体集
  2. 椭圆:表示属性,加下划线表示是主码属性
  3. 菱形:表示联系集
  4. 线段:将属性链接到实体集或实体集链接到联系集
  5. 双椭圆:表示多值属性
  6. 虚椭圆:表示派生属性
  7. 双线:表示一个实体所有参与到联系中




常见的数据模型

  • 数据模型有好多种,从逻辑上来说,即用户眼中看到的数据范围。同时能够用某种语言描述,是计算机系统可以理解,又能被数据库管理系统支持的。
  1. 层次模型(最先出现):
  2. 网状模型:                               
  3. 面向对象模型(对象、类、对象标识)
  4. 关系模型(20世纪80年代以来,关系数据库一统天下):

为何由ER图转换到关系模型

  1. 创建在严格的数学概念的基础上
  2. 概念简单——数据结构简单、清晰、用户易懂易用
  3. 存取路径对用户透明,用户不用担忧
  4. ER模型离现实世界近
  5. 关系模型离机器世界近
  6. 不严格的状况下,能够将关系看做是某些值造成的一个表

ER图转换为表(二元联系)

ER图中的主要成分是实体类型和联系类型,转换算法就是如何把实体类型、联系类型转换成关系模式。数据库

  • 实体类型的转换

  1. 将每一个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键
    • 联系类型的转换
  1. 若实体间的关系是1:1,能够在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另外一个关系模式的键(做外键)和此联系的属性。
  2. 若实体间的关系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键(做外键)和此联系的属性。
  3. 若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键(做外键)加上此联系的属性,而主键为两端实体键的组合。

一元和三元联系类型的转换和二元相似,再也不赘述。数据结构