【从删库到跑路】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%。

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

相关推荐
zzb15802 小时前
RAG from Scratch-优化-query
java·数据库·人工智能·后端·spring·mybatis
一只鹿鹿鹿3 小时前
信息安全等级保护安全建设防护解决方案(总体资料)
运维·开发语言·数据库·面试·职场和发展
堕2743 小时前
MySQL数据库《基础篇--数据库索引(2)》
数据库·mysql
wei_shuo3 小时前
数据库优化器进化论:金仓如何用智能下推把查询时间从秒级打到毫秒级
数据库·kingbase·金仓
71-33 小时前
MySQL的安装和卸载组件
笔记·学习·mysql
雷工笔记3 小时前
Navicat Premium 17 软件安装记录
数据库
wenlonglanying4 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
数据库小组4 小时前
10 分钟搞定!Docker 一键部署 NineData 社区版
数据库·docker·容器·database·数据库管理工具·ninedata·迁移工具
爬山算法4 小时前
MongoDB(38)如何使用聚合进行投影?
数据库·mongodb
l1t4 小时前
Deep Seek总结的APSW 和 SQLite 的关系
数据库·sqlite