数据库笔记CH7 数据库设计和E-R模型

数据库笔记CH7 数据库设计和E-R模型

7.1设计过程概览
  • 了解并完整刻画用户需求
  • 概念设计(实体联系模型)
  • 功能需求说明(操作和事务)
  • 逻辑设计(将概念模式映射到数据模型中)
  • 物理设计(文件组织格式和索引结构等)

数据库设计过程尽量避免冗余和不完整

7.2实体-联系模型(E-R图)
  • 实体 entity :现实存在且可区别于其他事物的对象
  • 属性 attributes :实体拥有属性且通过属性来表示,每个属性都有一个value
  • 实体集entity set :具有相同属性或性质的实体的集合

实体集

  • 联系 relationship : 多个实体间的相互关联

    • 例如:学生A和老师B之间存在联系advisor,说明老师B是学生A的导师
  • 联系集 relationship set :相同类型联系的集合

    • 如果E1,E2,E3…En是实体集,则联系集R是{(e1, e2, … en) | e1 ∈ E1, e2 ∈ E2, …, en ∈ En}的子集,例如(A,B)∈advisor

联系集

  • 联系集可以具有属性,该属性使得该联系更具描述性

联系集属性

  • 每个属性都有一个可取值的集合,叫做属性的域Domain 或者值集

    • 简单和复合属性:简单属性不可继续划分,复合属性表示可以继续划分
    • 单值和多值属性:例如一个教师只能有一个ID,一个教师可以有多个电话号码

属性

7.3约束

映射基数 Mapping Cardinality:表示一个实体通过一个联系集能关联到的实体的个数

对于二元联系集而言,有4种映射基数:

  • 一对一:A中的一个实体至多与B中的一个实体相关联,并且B中的一个实体也至多与A中的一个实体相关联

  • 一对多:A中的一个实体可与B中任意个实体相关联,并且B中的一个实体至多与A中的一个实体相关联

一对一 一对多

  • 多对一:A中的一个实体至多可与B中一个实体相关联,并且B中的一个实体可与A中任意个实体相关联

  • 多对多:A中的一个实体可与B中任意个实体相关联,并且B中的一个实体可与A中任意个实体相关联
    多对1 多对多

  • 如果实体集E中的每个实体都参与到联系集R中的至少一个联系中,则实体集E在联系集R中的参与是全部的;如果E中只有部分参与到R中,则称实体集E到联系集R的参与是部分的。

实体的属性值必须可以唯一标识该实体,即不同实体不能在每个属性上取值均相同

  • 超码:由一个或多个属性组成的可以唯一标识该实体的属性集
  • 候选码:最小的超码
  • 联系集的属性
    • 如果学生到老师的映射是多对一的,则advisor的主码就是学生的主码
    • 如果学生到老师的映射是一对多的,则advisor的主码就是老师的主码
    • 如果学生到老师的映射是多对多的,则advisor的主码就是老师和学生的主码的并集
    • 如果学生到老师的映射是一对一的,则advisor的主码可以是学生或老师的主码
7.5实体联系图

实体联系图

  • 分成两部分的矩形代表实体集,包括实体集名称和属性名称,主码用下划线表明
  • 菱形代表联系集
  • 未分割的矩形代表联系集的属性
  • 线段将实体集连接到联系集
  • 虚线将联系集属性连接到联系集
  • 双线表示参与度

复杂属性的写法:

复杂属性

映射基数的画法:有向线段 -> 指向 one , 无向线段指向 – many

  • one to one:one to one
  • one to many:one to many
  • many to one:many to one
  • many to many:many to many

三元联系集的ER图:

三元关系

  • 弱实体集:没有足够的属性以形成主码的实体集
  • 强实体集:由主码的实体集
  • 弱实体集必须与标识主体关联,即存在依赖于标识实体集
  • 弱实体集和标识实体集相联的联系称为标识性练习,是多对一的,且弱实体集的参与是全部的。
  • 在ER图中,弱实体集的属性用虚线标识,且联系集用双菱形表示

弱实体集

大学的E-R图:

大学的ER图

E-R图表示法中的符号:


发布了68 篇原创文章 · 获赞 36 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/dingdingdodo/article/details/102390888