数据库引论笔记(二):数据库设计和E-R模型


Database Design

  • entity:可以识别的实体
    各种各样的实体间以多种方式相互关联

1.E-R Model:entity-relationshipe

1.1.entity-set

  • entity:现实世界中可以区别于其他对象的一个"事物"或"对象"。实体通过一组属性(attribute)来表示,属性是实体集合中每个成员所具有的描述性性质,每个属性都有一个值(value)。
  • entity-set:相同类型、具有相同性质(属性)的实体的集合
  • 数据库包括一组实体集

1.2.relationshipe-set

  • relationship:多个实体间的相互关联
  • relationship-set:相同类型联系的集合
  • 实体在联系中扮演的功能称为角色(role):可以用于介绍联系的含义
  • 联系可以具有描述性属性(descriptive attribute)
  • **给定的联系集中的一个联系实例必须是由其参与的实体唯一标识的,而不必使用描述属性。**假如同一组实体的联系实例描述属性有多个值,应当将这个属性设置为多值属性。
  • degree:度,参与联系集的实体集的数目

1.3.属性

属性的值的取值范围称为域(domain)

属性类型划分:

  • simple / composite:简单和复合
  • single-valued / multivalued:单值和多值
  • derived 派生

2.约束

2.1.mapping cardinality:映射基数

  • 一对一
  • 一对多
  • 多对一
  • 多对多

2.2.参与约束

  • total:实体集E的每个实体都参与到联系集R中至少一个联系中
  • partial:E的实体只有部分参与到R中

2.3.码

在这里插入图片描述
所有实体集的主码的并集一定是超码,因为其一定可以唯一标识一个联系。

二元关系联系集的主码依赖于联系集的映射基数

  • 多对多:实体集的主码的并集
  • 多对一/一对多:“多”一方的主码
  • 一对一:任意一方的主码

3.E-R diagram:实体-联系图

  • 两部分矩阵代表实体集(每个矩形分割为实体集名字和实体集属性两部分)
  • 菱形代表联系集
  • 没有分割的矩形,即只包含属性的矩形代表联系集的描述性属性
  • 线段,连接实体集和联系集
  • 虚线,连接联系集的描述性属性和联系集
  • 双线,显示实体在联系集中的参与度
  • 双菱形,连接到弱实体集的标志性联系集

3.1.映射基数

在这里插入图片描述

3.2.复杂属性

  • 复合属性:直接列出复合值
  • 多值属性:给属性加上{}
    在这里插入图片描述

3.2.角色

在菱形和矩形的连线上标注角色(即对实体的主码重命名)
在这里插入图片描述

3.3.弱实体集

  • 弱实体集:没有足够的属性形成主码
  • 强实体集:有主码
  • 弱实体集必须与一个被称为标识实体集的实体集关联才有意义,这样的联系称为标识性联系。
  • 弱实体集必须在标识性联系集中必须全部参与,其主码为自身分辨符加上标识实体集的主码。

这样做的目的是强调实体集之间的依赖关系。

在这里插入图片描述

4.diagram转化为schemas

4.1.具有复杂属性的强实体集

  • 复合属性:在模式中为每个子属性单独创建一个属性
  • 多值属性:创建一个新的关系模式,包含原实体集的主码和和这个多值属性。原实体集的关系模式去除这个属性。假如实体集本来就只有两个属性,则不需要这样做。

4.2.弱实体集的表示

  • 主码:分辨符加上标识实体集的主码
  • 外码约束:标识性实体集的主码,注意级联删除性质

4.3.联系集的表示

二元联系集的主码:

  • 多对多:参与的实体集的主码
  • 多对一/一对多:"多"的主码
  • 一对一:任意一个实体集的主码

关系模式R在相关的每个实体集 E i E_i Ei上都有外码约束

4.4.联系集的合并

考虑从实体集A到实体集B的一个多对一的联系集AB,且A在该联系中全部参与。则我们可以把A和AB两个模式合并成包含两个模式所有属性的并集的模式。主码是AB的主码。

如果是一对一的联系,联系集的关系模式可以跟任意一个实体集的模式合并

5.设计问题

一个非二元的(n元,n>2)联系集总可以用一组不同的二元联系集来替代。
在这里插入图片描述


  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值