《数据库原理教程》——第二章 实体-联系模型 笔记

注:参考教材:《数据库原理教程》(作者:范明等)

第二章 实体-联系模型

实体

实体: 客观存在并且可以相互区分的任何事物。可以是实际对象,也可以是抽象概念。
属性: 刻画实体的特性。 属性的值域:属性的取值范围。
实体集: 具有相同属性的实体的集合。

  • 超码: 包含唯一标识元组所需属性的集合,可能有多余属性。
  • 候选码: 最小的超码,去掉任何属性后就无法唯一标识元组。
  • 主码: 从候选码中选出的一个,作为关系的主要标识属性。
  • : 表示 主码 或 候选码
  • 简单属性: 不可再分的单一属性,如"姓名"或"年龄"。
  • 复合属性: 由多个子属性组成的属性,如"地址"可分为"城市""街道""邮编"。
  • 单值属性: 每个实体只有一个值的属性,如"学号"。
  • 多值属性: 每个实体可有多个值的属性,如"电话号码"(一个人可能有多个)。
  • 基本属性: 直接存储、不依赖其他属性的属性,如"出生日期"。
  • 派生属性: 通过其他属性计算得到的属性,如"年龄"由"出生日期"派生。

快速区分:

  • 简单 vs 复合: 能不能拆分。
  • 单值 vs 多值: 一个实体有几个值。
  • 基本 vs 派生: 直接存还是计算得。

联系

  • 联 系: 多个实体之间的相互关联。
  • 联系集: 相同类型联系的集合。
  • 联系的类型:
  • 一对一
  • 一对多
  • 多对一
  • 多对多
    联系也可以具有属性。

实体联系图要素

弱实体集

  • 弱实体集:不存在码的实体集。
  • 强实体集:存在码的实体集。
  • 标识性实体:是强实体集,它通过标志性联系为弱实体提供标识能力。
  • 标识性联系: 弱实体依赖强实体的关系。
  • 分辨符: 弱实体中区分实例的属性。
  • 部分码:弱实体的分辨属性,与强实体主键组成完整主键。
  • 弱实体主键 = 强实体主键 + 分辨符(部分码)。

注:主码就是主键。
处理弱实体集的方法:

  1. 与多个标识实体集关联
  2. 把弱实体集作为标识实体集的一个多值复合属性
  3. 将强实体集的码添加到弱实体集使其成为强实体集。(不好的做法!)

在ER图中,可以将属性单列为表,而在图中省略属性。

相关推荐
恣艺7 分钟前
Redis有序集合(ZSet):排行榜功能的最优解,原理与实战
数据库·chrome·redis
麦兜*22 分钟前
MongoDB 与 GraphQL 结合:现代 API 开发新范式
java·数据库·spring boot·mongodb·spring·maven·graphql
jingling55540 分钟前
uniapp | 快速上手ThorUI组件
前端·笔记·前端框架·uni-app
楼田莉子1 小时前
python小项目——学生管理系统
开发语言·python·学习
亭台烟雨中1 小时前
SQL优化简单思路
数据库·sql
在路上`1 小时前
前端学习之后端java小白(二)-sql约束/建表
java·sql·学习
真*小白2 小时前
Python语法学习篇(三)【py3】
开发语言·python·学习
lingggggaaaa2 小时前
小迪安全v2023学习笔记(八十二讲)—— Java组件安全&Solr&Shiro&Log4j&CVE复现
笔记·学习·安全
好望角雾眠2 小时前
第四阶段C#通讯开发-1:通讯基础理论,串口,通讯模式,单位转换,代码示例
开发语言·笔记·c#·串口·通讯