【从删库到跑路】MySQL数据库 — E-R图 | 关系模型

🎊专栏【MySQL】

🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。

🎆音乐分享【如愿】

大一同学小吉,欢迎并且感谢大家指出我的问题🥰

文章目录

🌹简述什么是E-R图

E-R图(Entity-Relationship Diagram)是一种图形化工具,常用于数据库设计和概念建模。它以图形的形式展示了实体、属性和它们之间的关系,帮助开发人员和数据库设计师理解和沟通实体之间的联系。

在数据库设计中,E-R图可以被视为一个概念模型,用于描述现实世界中的实体及其之间的关系。通过使用E-R图,我们可以更清晰地理解数据模型的结构和组成。

⭐核心概念

  • 实体(Entity):实体是现实世界中一个独立、具体的事物或对象。在E-R图中,实体用矩形框表示,框内写有实体的名称。每个实体都有一个唯一标识符(通常称为主键),用于区分不同的实体。例如,在一个学生管理系统中,"学生"可以是一个实体。
  • 属性(Attribute):属性用于描述实体的各个方面或特征。在E-R图中,属性使用椭圆形表示,并与实体相连。属性可以是简单的,如姓名、年龄等;也可以是复杂的,如日期、文本等。每个属性都有一个名称并指定其数据类型。例如,在"学生"实体中,属性可以包括"姓名"、"年龄"等。
  • 关系(Relationship):关系表示实体之间的联系和依赖关系。在E-R图中,关系使用菱形表示,并连接相关的实体。关系可以是一对一、一对多或多对多的。关系可以有自己的属性,称为关系属性。例如,在学生管理系统中,"课程"和"学生"之间可以存在一种关系,表示一个学生可以选择多门课程。
  • 基数性(Cardinality):基数性描述了实体之间关系的数量关系。常见的基数性有一对一(1:1)、一对多(1:N)和多对多(N:M)。在E-R图中,可以使用符号来表示基数性,例如用一个竖线(|)表示一对一关系,一个小箭头(->)表示一对多关系,两个小箭头(<->)表示多对多关系。

通过E-R图,我们可以更加直观地了解实体、属性和关系之间的联系,以及它们在数据库中的结构和组织方式。E-R图可以帮助开发人员和数据库设计师共同理解和沟通数据模型,从而更好地设计、创建和操作数据库。它是数据库设计过程中的重要工具,能够提高团队之间的协作效率,并确保数据库结构符合需求和规范。

🌹E-R图里面的基本概念

在E-R图中,1:n(一对多)和n:m(多对多)是常见的关系类型,用于描述实体之间的数量关系。

一对多(1:n)关系:一对多关系表示一个实体与另一个实体之间存在单向的关联,其中一个实体可以具有多个相关联的实体。在E-R图中,一对多关系通常使用一个小箭头(->)来表示。箭头指向具有多个实体的一端。例如,一个"学院"实体与多个"学生"实体之间可以建立一对多关系,表示一个学院有多个学生。

多对多(n:m)关系:多对多关系表示两个实体之间存在互相关联的情况,其中一个实体可以同时与多个另一个实体相关联,反之亦然。在E-R图中,多对多关系通常使用双向箭头(<->)来表示。箭头两端连接的实体之间可以相互关联。例如,一个"学生"实体可以选择多门"课程",同时一个"课程"也可以被多个"学生"选择,这种情况下就存在多对多关系。

需要注意的是,在E-R图中,一对多和多对多关系都可以具有关系属性,用于描述关系本身的特征。关系属性可以包含关系的附加信息,如成绩、时间等。

在数据库的实际设计中,一对多关系可以通过在多的一方(例如,学生表)中添加外键来表示与一的一方(例如,学院表)的关联。而多对多关系则需要通过使用连接表(或称为关联表)来表示,该表包含两个实体的主键作为外键,用于建立它们之间的关联。

🎄E-R图例题

考虑某个IT公司的数据库信息:

①部门具有部门编号、部门名称、办公地点等属性;

②部门员工具有员工编号、姓名、级别等属性,员工只在一个部门工作;

③每个部门有唯一一个部门员工作为部门经理;

④实习生具有实习编号、姓名、年龄等属性,只在一个部门实习;

⑤项目具有项目编号、项目名称、开始日期、结束日期等属性;

⑥每个项目由一名员工负责,由多名员工、实习生参与;

⑦一名员工只负责一个项目,可以参与多个项目,在每个项目具有工作时间比;

⑧ 每个实习生只参与一个项目。

画出 E-R 图,并将 E-R 图转换为关系模型(包括关系名、属性名、码和完整性约朿条件)。


关系模型为:

部门(编号,名称,办公地点,经理编号),部门的经理编号参照员工的编号;

员工(编号,姓名,级别,部门编号),员工的部门编号参照部门的编号;

实习生(编号,姓名,年龄,部门编号),实习生的部门编号参照部门的编号;

项目(编号,名称,开始日期,结束日期,负责人编号),项目的负责人编号参照员工的编号;

实习参与(实习生编号,项目编号),实习生编号、项目编号分别参照实习生的编号、项目的编号;员工参与(员工编号,项目编号,时间比),员工编号、项目编号分别参照员工的编 号、项目的编号,且一个员工的所有时间比相加不超过100%。

在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

相关推荐
Dav_209937 分钟前
dav_1_MySQL数据库排查cpu消耗高的sql
数据库·sql·mysql
小诸葛的博客2 小时前
Go 语言中的select是做什么的
数据库·sql·golang
数小模.3 小时前
R语言进行聚类分析
开发语言·r语言
独泪了无痕3 小时前
数据库开发必备:理解DDL、DML、DQL和DCL
数据库·后端
Gauss松鼠会4 小时前
GaussDB Plan Hint调优实战:从执行计划控制到性能优化
数据库·sql·性能优化·database·gaussdb
zeijiershuai4 小时前
MySQL-SQL-DQL语句、DQL基本查询、DQL条件查询、DQL分组查询、聚合函数、DQL排序查询、DQL分页查询
数据库·sql·mysql
橙子家5 小时前
Redis 集群实现分布式缓存的示例操作流程【Redis 系列之五】
数据库
Jodie_Rao5 小时前
在 M1 芯片的 Mac 电脑上安装 Redis 可以通过 Homebrew 快速完成
数据库·redis·macos
weixin_409411026 小时前
面向数据库场景的大模型交互微调数据集
数据库·oracle·交互
东宇科技6 小时前
mysql中my.cnf权限不能过大。否则无法生效
数据库·mysql