数据库(五)数据库设计 | 实体关系模型ER model 映射基数 弱实体集 实体关系设计

MySQL数据库——绘制E-R图:数据库概要设计阶段 在MySQL数据库的概要设计阶段,绘制E-R图是非常重要的一步。E-R图(实体关系图)是一种图形化的工具,用于描述数据库中实体之间的关系。 阅读详情


参考

ER 图是什么?这一篇让你搞懂 ER 图! - 知乎 (zhihu.com)

数据库设计核心就是

1 理解用户需求

2 使用E-R关系模型,绘制E-R图

3 将E-R关系模型转换为数据库表

本节核心在第二部分到第三部分

1 实体关系模型 ER模型ER model

1.1 E-R模型结构

E-R模型实际上是由多个实体集(含有不同属性)和联系集组成

1.1.1 实体和实体集

实体 Entity 是一个物体,客观存在并且相互区别

​ 比如一个学生,一个公司

实体集合 Entity Sets 具有相同属性的实体的集合

​ 比如一群学生,一系列公司

1.1.2 属性

属性 Attributes

​ 比如ID,姓名,这些属性能够区别不同的实体

​ 就好比我们每个人都有自己的特征,这些特征区分了不同的实体

除了基本属性还有如下一些属性概念需要了解

**简单属性 Simple 和复合属性 composite **

  • 简单属性:不可再拆分,如数学成绩是一个简单属性
  • 复合属性:可以再拆分,即属性的嵌套组合,如名字这个属性可以拆分为姓这个属性和名这个属性

单值属性 Single-valued和多值属性 multi-valued

  • 单值属性:即只能是一个的属性,如一个人性别值只能是一个男或女 (排除个别特殊现象哈哈哈)
  • 多值属性:即可能有多个值的属性,如电话号码可以有多个

**派生属性 Derived attributes **

​ 可以从一个已知的属性的值推理出来,比如知道出生可以退出年龄

​ 所以年龄就是一个派生属性

描述属性 descriptive attributes

描述属性一般都是给关系集合的,

如学生实体集合Student和考试实体集合section通过take(参加)这一个关系集合联系起来,那么take这个关系集合可以用grade成绩这一属性来描述

1.1.3 关系集合

关系 Relationship 在一些实体中的关系

**关系集合 Relationship Sets ** 相同类型的关系的集合

关系集合往往要建立多个实体集的关系

递归关系集合 Recursive relationship set

​ 同一实体集以不同的角色多次参与关系集。

二元关系

​ 只包含两个实体集的关系

非二元关系集合

​ 含超过两个实体集的关系

1.2 ER关系图绘制

E-R diagram ER关系图

1.2.1 实体集绘制

1 矩形表示一个实体集,矩形上方写实体集的名字

2 实体集的属性一个一个列在矩形框内,用下横线标识主键

举例如下 Student表的关系图绘制

在这里插入图片描述

1.2.2 关系集绘制

1 用一个菱形方块代表关系集,连接多个实体集矩形

举例如下 advisor代表一个关系集

在这里插入图片描述

2 上面讲到描述性属性,用虚线表示,如下

在这里插入图片描述

上面我们讲完了实体集的一些初步介绍,接下来重点讲其中一些部分

2 映射基数 Mapping Cardinalities

Mapping Cardinalities 映射基数 表示另一个实体可以通过关系集与之关联的实体数。

有以下几种类型

一对一,一对多,多对一,多对多

在这里插入图片描述

2.1 映射基数类型

2.1.1 一对一

一对一 one to one:一个导师最多指导一个学生,一个学生最多被一个导师指导。说明导师可以不指导学生,学生也可以单干。

绘制E-R图如下 左右各一个箭头

在这里插入图片描述

2.1.2 一对多

一对多 one to many:一个导师可以指导任意多个学生,一个学生至多被一个导师指导。

绘制E-R图如下 只有one的那一侧有箭头

在这里插入图片描述

2.1.3 多对一

多对一 many to one:一个导师至多指导一个学生,一个学生可以被任意个导师指导。

绘制E-R图如下 只有one的那一侧有箭头

在这里插入图片描述

2.1.4 多对多

多对多 many to many:一个导师可以指导任意学生,一个学生可以被任意多个导师指导。
说明导师可以不指导学生,也可以指导好些个。学生可以单干,也可以多拜几个师傅

绘制E-R图如下两侧都没有箭头

在这里插入图片描述

总结:one指向的那一侧是箭头->

对于以上的各种关系,每一个advisor关系集合的超键都由各个实体集合的主键并集组成

但是超键却不太一样,一般选择many那一侧的主键做关系集合的主键

多对多

  • 主键和超键相同

一对多

  • 多的那一侧,当做主键

一对一

  • 任何一侧都可以当做主键

2.2 全部或部分参与约束

Total and Partial Participation 全部或部分参与

如下图所示,绘制E-R图时候 双线代表全部,单线代表部分

28748594)

学生一侧是全部,含义代表每一个学生必须有一个指导老师

导师一侧是部分,含义代表有些老师指导学生,有些老师不指导学生

2.3 最小最大基数约束

在之前的基础上,可以加数量上的范围约束

E-R关系图上用双点表示, *表示无限制

格式

最小值..最大值

举例如下

在这里插入图片描述

含义如下

左侧老师一侧:0…* 代表一个指导老师能够指导0个或者更多个学生,没有上限

右侧学生一侧:1…1 代表一个学生至少1 个老师,至多也只有1个指导老师

超键是都有的

但主键根据情况不同而不同

比如

3 弱实体集

他的存在依赖于另一个实体集(被依赖的那个称作标识实体集identifying entity sets)

比如 考试这个存在就是依赖于课程的存在,所以课程实体集叫做标识实体集identifying entity sets,考试这个实体集叫做弱实体集Weak Entity Sets

E-R图中,用双框矩形表示,关系集合由双框菱形组成,虚线代表辨别属性

如下图所示

在这里插入图片描述

该关系集合sec_course 的主键由标识实体集的主键和弱实体集的辨别属性(即虚线画出来的)一起构成

弱实体集那一侧一定是全部total participation

4 ER模型转换为关系模式Relation Schema

初步解决

4.1 强实体集表示

对于强实体集而言有着简单的属性,直接转即可

举例如下

在这里插入图片描述

对于强实体集有着复合属性,转换后成为一个一个简单属性(复合属性不会出现在其中)

举例如下

在这里插入图片描述

对于多值属性而言如电话号码,我们再创建一个新的表

在这里插入图片描述

派生属性不要出现在表中,直接计算得到

4.2 弱实体集表示

弱实体集形成新的表包含标识实体集的主键和它自己的属性

举例如下

在这里插入图片描述

4.3 关系集合表示

多对多

两个实体集的主键+他自己的描述属性

在这里插入图片描述

多对一

在这里插入图片描述

优化如下

在这里插入图片描述

一对一

8597)

优化如下

在这里插入图片描述

5 实体关系设计

问题一:假设一个部分可能有许多不同的分配。

解决:使用多值复合属性赋值

问题二:假设有关于作业的其他信息,例如最高分或截止日期

解决:将叶属性添加到分配属性

但是问题二有冗余问题

将赋值模型建模为由部分标识的弱实体集

6 扩展E-R特征

6.1 IS-A 继承

Person可以经过Specialization(特化)称为两个小的如学生也是雇员

实体集可以包括实体的子分组,这些实体在某种程度上与集中的其他实体不同。

较低级别的实体集继承(inheritance)了较高级别实体集的所有属性和关系参与。

多重继承 简单继承

例如 人员集包括子组——员工集和学生集

重叠(Overlapping)——一个实体可能属于多个专用实体集,约束要求一个实体可以属于多个较低级别的实体集如,一个人可能既是学生也是雇员

不相交(Disjointness)——一个实体最多必须属于一个专用实体集,约束要求一个实体只能属于一个较低级别的实体集,如一个人只能是雇员里的前台柜员或者秘书之一

通过架构表示 IS-A 关系

方式一

​ 建立一个高水平实体集的架构,建立一个低水平的架构。通过外键建立两个练习

缺点:获取有关的信息,一个员工需要访问两个关系(低级架构和高级架构)

方式二

​ 使用所有本地属性和继承属性为每个实体集形成架构

缺点:冗余

用聚合的方式

使用聚合 – 可以将聚合实体集视为单个单元,而不考虑其内部结构的细节。

聚合是一种抽象,通过该抽象,将关系视为更高级别的实体

E-R图设计的步骤 E-R图设计的步骤: 1.确定实体 2.确定联系名 、联系类型 3.确定实体属性、联系属性 4.完善E-R图 对于大型系统,可以先局部后全局(综合) 下面给出一些实例: eg1: 假设一个学生可选多门课程,而一门课程又有多个学生选修,一个教师至多可讲3门课程,一门课程至多只有一个教师讲授 需要知道学生的学号,专业,姓名 需要知道课程的课程号,课程名,学分 需要知道 阅读详情

相关推荐

数据库与MPP数仓(十三):数据仓库的模型构建

上一篇主要讲到的是数据仓库对于企业的价值,以及同数据库系统的区别,数据仓库作为 业务版图扩张和数据价值萃取需求的必然产物,其在构建上也有一些参照的既定规范模式,本篇将讲解数据仓库模型构建思路及工具; 一、数据仓库构建需要考虑的问题 与数据库的单表基于ER模型构建思路不同,其面向特定业务分析的特性,决定了它的构建需要整合多套数据输入系统,并输出多业务条线的、集成的数据服务能力,需要考虑更全面的因素,包括: 业务需求:从了解业务需求着手分析业务特点和业务期望; 系统架构:从系统架构和数据分布、数据特.

叶子叶来 7213

【数据模型】实体联系图(ER图)——从零基础到实战应用

本文系统介绍了实体联系图(ER图)的核心概念与实战应用。从理解实体、属性、关系三大要素入手,通过图书馆管理系统和在线商城等实例,手把手教你绘制ER图,并详解如何将其转化为规范的数据库表结构,是数据建模与数据库设计的实用指南。

9o8p7i6u5y的博客 479

数据库ER图的图形示例及画法

数据库ER图的图形示例及画法

数据库设计之 E-R 模型

一、E-R 模型的定义 二、E-R 模型的基本元素 1. 实体(Entity) 2. 属性(attribute) 3. 标识符 4. 联系(Relationship) 三、联系(Relationship)的类型 1. 二元实体联系类型 2. 基数 3. 可选和强制 四、联系的另一种表示方式:鸟足 五、继承联系 六、强弱实体联系 1. 弱实体和强实体 2. 标识符依赖弱实体 3. 非标识符依赖弱实体

狂放不羁霸的博客 1万+

STM32F103 串口DMA + 空闲中断 实现不定长数据收发

文章目录1. 空闲中断1.1 uart_dma.c1.2 uart_dma.h1.3 main.c1.4 stm32f10x_it.c1.5 效果演示1.6 知识补充1.6.1 外设的基地址     DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU

夏夜晚风_的博客 3万+

【华为Hilink SDK Linux系统开发】目录 开源一小步

目录 【华为Hilink开发】第一章:华为hilink平台简介及开发流程 【华为Hilink开发】第二章:华为hilink SDK网络适配、网关添加删除 【华为Hilink开发】第三章:华为hilink SDK子设备添加、删除 【华为Hilink开发】第四章:华为hilink SDK子设备控制及同步 【华为Hilink开发】第五章:华为hilink SDK适配遇到的问题 ...

开源一小步 3613

数据库-ER建模

目录基本概念1. 实体 entity2. 属性 attribute3. 联系 relation3.1 基数约束的四种形态3.1.1 基数约束形态一3.1.2 基数约束形态二3.1.3 基数约束形态三3.1.4 基数约束形态四扩展概念 在建设数据库过程中,最重要的是,需求分析阶段。这一步决定了数据库项目的成败。 需求分析阶段,也叫做ER建模,【rentity-relationship modeling】也叫做需求可视化,概念建模。这个结阶段需要数据库开发人员和需求方以ER图的方式,对业务需求进行,可视化展现。

大爵爷 2842

经典EMC案例-汽车车载电子行车记录仪显示屏EMC BCI整改案例

拿到这款汽车前装车载电子行车记录仪,小编首先在实验室还原客户描述的现象,确定现象符合客户的描述,再根据现象出现的对应频率做好记录,因为通常BCI FAIL的现象不局现于一个频率点,然后通过这些现象及频点,再结合产品的构造、线束,分析构思出大致解决方案。

jack_luo4913的博客 3730

第5章数据库,实体关系图,ER图

数据库引擎(Storage Engine)是数据库管理系统(DBMS)里的一个组件,它负责实际存储和读取数据。db 对象是SQLAlchemy 类的实例,表示应用使用的数据库.详情见本章引擎章节backref也有这个同步的功能一个请求 = 一个 session浏览器请求 → Flask → db.session → 数据库 请求结束:👉 session 自动清理。

周周的博客 701

IEEE Transactions on Industrial Informatics(TII) 投稿须知- Initial Submission

请注意,您可以在作者中心查看稿件的当前状态,如:在EIC办公室、分配给AE、AE邀请审稿人、AE指定审稿人、正在审稿、等待AE决定、等待EIC决定。为了确保公正的评审过程,我们要求在稿件中没有任何作者的身份(不包括作者的姓名、传记、隶属关系、求职信、签署的版权表格、识别脚注、致谢等)。如果你的手稿有很大一部分已经在会议上发表过,论文必须隐藏所有作者的身份,这样会议论文就可以被引用,就好像它是由不同的作者写的一样。请注意,通常你的技术成就是根据被引用的次数来评估的,而不是根据发表的论文数量。

loinleeai的博客 4410

内存泄漏系列专题分析之二十一:高通相机CamX内存泄漏&内存占用分析--GPU内存拆解

通过上述debug方式,可以看到patch补丁可以顺利debug各种ION内存分布,可以通过它分析ION内存占用问题。同时我们还可以分析GPU内存泄漏问题,同样的方式可以看到所有的GPU内存分布,如果某个GPU内存持续增长,就极有可能内存泄漏,然后更具堆栈信息去分析代码,并解决GPU内存泄漏问题。!!

444

database design 有关ER model

A rectangle labelled with the name of the entity • First letter of each word in the entity name is uppercase — e.g., PropertyForRent • Normally an entity type is named using a ‘noun’ or ‘noun phrase’实体图形化表示为标有实体名称的矩形 每个单词首字母大写 通常都为名词或名词短语。

weixin_74400487的博客 1257

华为OD机考2025C卷 - 高矮个子排队(Java & Python& JS & C++ & C)

华为OD机考2025C卷 - 高矮个子排队。提供在线OJ刷题。Java、C++、Python、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1676

数据库系统学习系列——ER model

ER模型:Entity-Relationship Model ...

hhjoerrrr的博客 2163

瑞芯微RK3588/RK3576平台采集BT1120(fpga)驱动调试记录

本文介绍了在RK3576/RK3588平台上采集FPGA传输的BT1120数据的方法。主要内容包括:1)硬件连接需确认管脚复用和图像格式(通常为uyvy_2x8);2)设备树配置要点,如I2C总线设置、BT1120模式指定等;3)驱动适配注意事项,包括时钟极性、分辨率格式等关键参数;4)测试方法,通过media-ctl和v4l2-ctl工具验证数据采集。文中特别指出RK3576和RK3588配置的通用性,并提供了常见问题的排查思路。

bingdund的博客 911

(王道计算机组成原理)第二章数据的表示和运算-第三节:运算方法和运算电路 1(基本运算部件)

本文主要介绍了计算机组成原理中的加法器和算术逻辑单元(ALU)的基本概念与实现原理。首先,文章详细讲解了一位全加器的工作原理,包括其输入输出、逻辑表达式及真值表。接着,介绍了并行加法器的两种类型:串行进位和并行进位的加法器,分析了它们的优缺点。随后,文章探讨了带标志位的加法器,说明了如何通过标志位生成逻辑来判断加法结果的状态。最后,文章阐述了ALU的功能及其实现原理,包括ALU的基本结构、控制信号的作用以及在实际考试中的图示表示。通过这些内容,读者可以全面了解加法器和ALU在计算机中的重要作用及其工作原理。

快乐江湖的博客 3824

Diagram Design ER图完全指南:数据模型与实体关系可视化

在设计数据库、梳理领域模型时,**ER图(实体关系图)** 是最直观的数据模型可视化方式:一张图讲清楚有哪些实体、每个实体有哪些字段、实体之间是什么关系。**Diagram Design** 是一个面向 Claude Code、Codex、Pi 等 AI 助手的开源绘图技能,内置 27 种编辑级图表类型,其中 **ER / 数据模型** 类型专为数据库 Schema、API 资源关系与领域模型设计

gitblog_00506的博客 644

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

DBeaver 数据模型设计:三步把实体关系图变成建表脚本

画了实体关系图,落地时却写不出建表语句?表与表之间谁引用谁,谁也说不清。DBeaver 数据模型设计(ERD 实体关系图)把设计到建库串成一条线:画布上搭模型,再生成 DDL、同步数据库。读完你能做到三件事:搭出第一张模型图、排开打架的连线、把图变成可执行的建表脚本。 [![DBeaver 数据模型设计运行环境:Community 版启动画面](https://raw.gitcode.com/G

gitblog_00867的博客 1117

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ER模型映射基数实战:4种关系类型在MySQL 8.0中的3种表结构设计

本文深入解析ER模型中一对一、一对多、多对一和多对多四种映射基数关系,并提供在MySQL 8.0中的具体实现方案。通过详细的SQL示例和设计原则,帮助开发者掌握实体关系模型在数据库设计中的实际应用,提升数据结构的效率和可维护性。

weixin_34203832的博客 386

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ER Model

DB管理系统 2个构成要素,database的属性(inter related data的集合【relationship】和relation完全不同,在数据库上) database在harddisk以文件file的形式上存储。 由操作系统调用数据库的数据。 第二个是:a set of progarms to access db,程序的执行需要在内main memory上。 没有程序硬件上的数据无法被可视化,这里的acess指的是增删查改。 程序分为用户和系统程序(User/system) 数据库设计理念.

Chahot的博客 855

ER模型映射基数实战:4种关系类型在MySQL 8.0中的表结构设计差异

本文深入解析了ER模型中映射基数在MySQL 8.0的实践应用,详细对比了一对一、一对多、多对一和多对多四种关系类型的表结构设计差异。通过具体SQL示例展示了外键约束、索引优化等关键技术实现,帮助开发者掌握数据库设计的核心原则与性能优化策略。

weixin_30875157的博客 361

什么是实体-关系模型(ER Model)?它的基本组成部分(实体、属性、关系)是什么?

基于ER模型设计的关系型数据库,其严格的模式(Schema)、对数据一致性(ACID特性)的强力保证以及有限的水平扩展能力,在处理海量(Volume)、多样化(Variety)和高速(Velocity)的非结构化或半结构化数据时显得力不从心。总而言之,ER模型是数据库设计过程中的一个关键工具,它通过形式化的方法捕捉现实世界的语义,为构建高效、稳定、易于维护的数据库系统提供了理论指导和实践路径。:关系本身也可以拥有属性。例如,在“学生”和“课程”的“选修”关系中,“成绩”就是这个关系的一个属性。

破损的天堂鸟博客 1618

数据库mysql的ER模型、关系模式以及ER模型转化成关系模式

数据库mysql的ER模型、关系模式以及ER模型转化成关系模式

weixin_46054349的博客 2516

er图转换成关系模型_ER图到关系模型的转换

er图转换成关系模型 关系 (Relations) Relations specify that how a entity of a entity set is related to the entity of other set. 关系指定一个实体集的实体如何与另一个集的实体相关。 关系类型 (Types of Relationship) There are following types...

cumtb2009的博客 4171

Mermaid 实体关系图(ER 图)完整语法与配置实战指南

> 本文以 Mermaid 仓库中的官方 ER 图语法文档为主线,系统讲解实体、属性、关系基数(cardinality)、识别型/非识别型关系、子图分组、节点样式与布局配置等全部能力,并结合仓库内真实的语法解析器、数据层与渲染器源码进行底层佐证。读完你不仅能徒手写出可运行的 ER 图脚本,还能理解"一行关系语句"在 Mermaid 内部究竟经历了怎样的解析、建模与绘制流程。 ## ER 模型基础

gitblog_00739的博客 272

Mermaid 实体关系图(Entity Relationship Diagram,ER 图)完整语法与实战指南

> 实体关系模型(ER model)用于描述某个知识领域中相互关联的对象,它由"实体类型"(对关注对象的分类)以及实体之间可能存在的关系构成。在 Mermaid 中,你可以用接近 PlantUML 的纯文本语法快速绘制 ER 图:声明实体、为实体定义属性(含类型、主外键与注释)、用"鸦足(crow's foot)"记号描述实体间的基数关系,并通过子图、方向指令与样式系统组织复杂的领域模型。读完本文

gitblog_00738的博客 222
上一篇: 计算机组成 | 超详细 数的表示与编码 进制转换 原码 补码 反码
下一篇: 数据库系统(六)数据库范式 | 函数依赖,一二三范式,BCNF,属性集闭包和正则覆盖
Qodicat
Qodicat 新星创作者: 人工智能技术领域 新星创作者: 人工智能技术领域
博客等级 码龄5年 3618粉丝 201原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值