【个人笔记】数据库管理系统第二章:实体联系模型/E-R diagram

参考书:
Raghu Ramakrishnan - Database Management Systems Ramakrishnan (2018, McGraw-Hill Education)
数据库管理系统:原理与设计(第3版)

第二章 实体联系模型/INTRODUCTION TO DATABASE DESIGN

数据库设计、概念设计、逻辑设计、物理设计、实体-联系(ER)模型、实体集、联系集、属性、实例、码、完整性约束、一对多和多对多关系、参与限制、弱实体.类层次关系、聚集.UML、类图,数据库图和组件图。

2.1 数据库设计/Database design

数据库设计步骤共有六步,其中前三步与ER图相关:

  1. 需求分析
  2. 概念数据库设计:生成一种简单的数据描述方法,使其描述符合用户和开发者的意图
  3. 逻辑数据库设计:将概念数据库设计转换为所选DBMS的数据模型表示的数据库模式;主要任务是将ER模式转化为关系数据库模式,最后的结果常称为逻辑模式

2.2 实体、属性和实体集

实体(Entity)与属性(attributes):可与其他对象区分开来的现实世界对象。实体通过一组属性在数据库中进行描述。
实体集(Entity set):将相似的实体聚集在一起的集合,例如所有员工。所有实体集中的实体都包含同样的属性。
码(key):一组最小的属性集合,能唯一的确定实体集中每个实体。有可能存在多个候选码,选定一个作为主码

  • Superkey:任何一组属性,其值可以唯一标识实体集中的实体。
  • Candidate key:一种最小的超键,即没有多余属性的超键。
  • Primary key:必须是一个候选码。

在ER图中用矩形表示一个实体集,椭圆表示属性,椭圆和方框连接。下划线代表主码,如图2.1所示。
在这里插入图片描述

2.3 联系和联系集

联系:两个或多个实体之间的关联,例如,员工在某部门工作。
联系集:将相似的关系聚集在一起的集合。
联系集的属性:描述关联自身的星系,而不记录包含在该联系集中的实体集的信息。例如员工在某部门工作开始的时间。
三元联系(ternary):如图2.4所示,一个联系与三个实体有关。
在这里插入图片描述

在ER图中用菱形表示一个联系集,直线(或其他与约束相关的线)连接联系集相关的实体集。

2.4 ER模型的其他特征

2.4.1 码约束/Key Constraints

在ER模型中,联系集的主码选择依赖于联系的映射基数:
一对一联系:主码可以使用参与联系的任一方实体集的主码。
一对多联系:主码由“多”的一方实体集的主码组成(图2.7)。
多对多联系:主码由参与联系的所有实体集的主码组成(图2.3)。
在这里插入图片描述
在这里插入图片描述

使用实体集指向关系的箭头代表,对于给定的实体,能唯一的确定一个联系,如图2.6所示(one vs many时箭头箭头在many的一段)。
在这里插入图片描述

三元联系,如图2.8所示,箭头表示每名员工仅与一个部门和一个地点相关联。然而,每个部门可以与多名员工和多个地点相关联,每个地点也可以与多个部门和多名员工相关联。
在这里插入图片描述

2.4.2 参与约束/Participation Constraints

全部参与:如果实体集中的每个实体都必须参与到某个联系集中,这种约束称为全部参与。
部分参与:如果实体集中只有部分实体参与到某个联系集中,这种约束称为部分参与。

如果一个实体集在关系集中的参与是完全参与的,那么两者之间用粗线双线连接。
如图2.10所示(对应图2.3和2.7中全部参与的关系)。
在这里插入图片描述

2.4.3 弱实体/Weak Entities

弱实体集是指在数据库中无法通过自身属性唯一标识的实体集合。弱实体只能通过结合其自身的某些属性以及另一个实体的主键来唯一标识,这个实体被称为识别属主
弱实体集有以下限制:

  • 识别属主集和弱实体集必须参与一个“一对多”的识别联系集
  • 弱实体集在联系集中必须时全部参与的。

如图2.11所示,Dependents和Employees的联系,加粗箭头表示码约束和参与约束。同时识别联系也边框加粗虚线表示部分键,即有些dependents实体可能有相同的pname属性。
在这里插入图片描述

2.4.4类层次/Class Hierarchy

子类别继承父类别的所有属性和行为,同时可以添加特有的属性和行为,e.g.Dog (ISA Animal)。如图2.12所示。Employees可以细化为两个子类,这两个子类又可以泛化为Employees。
类层次用三角形内部写ISA表示。
根据ISA的结构可以指定两种约束:

  • 交迭(overlap)约束:能否允许两个子类含有相同的实体?如果是,则记为Contract Emps OVERLAPS Senior Emps。否,则直接使用默认设置。
  • 覆盖(cover)约束:每一个实体都属于它的一个子类吗?如果是,则记为Motorboats AND Cars COVER Motor Vehicles。否,则直接使用默认设置。
    在这里插入图片描述

2.4.5 聚合

聚合(Aggregation) 使我们能够表明一个关系集(通过虚线框标识)参与了另一个关系集。如图2.13所示。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值