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

🎊专栏【MySQL】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
大一同学小吉,欢迎并且感谢大家指出我的问题🥰

文章目录

  • 🌹简述什么是E-R图
    • ⭐核心概念
  • 🌹E-R图里面的基本概念
  • 🎄E-R图例题

在这里插入图片描述

🌹简述什么是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%。

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/215492.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows power shell for循环

有时候需要重复执行某个shell命令 for($i1;$i -lt 10;$i$i1){echo $i}如果是cmd for /l %i in (1,1,5) do echo %i

typora中的快捷键shift enter 和 enter的交换

1 问题&#xff1a; 我最近在用 typora 进行写作&#xff0c;但是在合格 typora 的 markdown 编辑器很奇怪&#xff0c;它的一个回车符是两次换行&#xff0c;而用 shfit ent 找了半天都不知道怎么解决的这个问题&#xff0c;然后我就去了这个 typora 在 github 开源的问题仓库…

vitis AIE graph

https://zhuanlan.zhihu.com/p/661255763 在前文中,我们首先认识了 Vitis™ 2022.1 统一软件平台内适用于 Versal™ 的 AI 引擎 (AIE) 应用。 我们认识了 Vitis IDE 2022.1 中 AIE 应用工程的结构,还了解了用于计算图初始化、运行和终止的一些 API。在本文中,我们将进一步深…

忘记跟进客户?CRM系统来帮您

销售人员要同时跟进多个客户&#xff0c;经常容易忘记跟进客户&#xff0c;导致客户流失。这就代表您的企业需要使用CRM系统了。下面我们就来对这个问题聊聊&#xff0c;销售总忘记跟进客户&#xff1f;CRM客户管理了解一下。 CRM如何帮助销售跟进转化客户&#xff1a; 管理客…

【华为数通HCIP | 网络工程师】821-IGP高频题、易错题之OSPF(6)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

0基础能不能转行做网络安全?网络安全人才发展路线

最近有同学在后台留言&#xff0c;0基础怎么学网络安全&#xff1f;0基础可以转行做网络安全吗&#xff1f;以前也碰到过类似的问题&#xff0c;想了想&#xff0c;今天简单写一下。 我的回答是先了解&#xff0c;再入行。 具体怎么做呢&#xff1f; 首先&#xff0c;你要确…

单链表的反转?太细了哥们!细到离谱!

单链表的反转&#xff08;面试常出&#xff09;&#xff1a; ​ 单链表的反转&#xff0c;可以通过很多种方法实现。包括迭代法&#xff0c;递归法&#xff0c; 迭代法&#xff1a; 定义三个指针&#xff1a;prev、current和next&#xff0c;它们分别表示前一个节点、当前节点…

【开源】基于Vue.js的城市桥梁道路管理系统的设计和实现

项目编号&#xff1a; S 025 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S025&#xff0c;文末获取源码。} 项目编号&#xff1a;S025&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥…

Linux基本命令操作 —— 文件夹/文件的创建,删除,查看,重命名......(简单理解 快速上手)

目录 1. 基础命令 1.1 显示当前目录&#xff1a;pwd 1.2 改变当前目录&#xff1a;cd 2. 文件夹的操作命令 2.1 创建文件夹&#xff1a;mkdir 2.2 查看文件夹&#xff1a;ls 2.3 删除文件夹&#xff1a;rmdir &#xff08;不推荐&#xff09; 2.4 复制文件夹&#xff1…

【C++】多态 ④ ( 多态实现原理 | C++ 联编概念 | 链接属性 | 内部链接 | 外部链接 | 联编与链接 | 静态联编 | 动态联编 | 联编 与 virtual 关键字 )

文章目录 一、C 联编概念1、联编引入2、链接属性 ( 内部链接 | 外部链接 )3、联编 ( C 语言 ) 与 链接 ( C 语言 )4、静态联编5、动态联编 二、多态实现原理 - 联编 与 virtual 关键字 一、C 联编概念 1、联编引入 " 联编 " Linkage 指的是 将 程序模块 和 代码 互相…

gitea仓库镜像同步至gitlab

1、参考文档&#xff1a;仓库镜像 | Gitea Documentation 2、错误一&#xff1a;账号密码错误问题 解决方法&#xff1a; 出现以上错误为第三步用户名&#xff08;Oauth2应用名称&#xff09;或者密码&#xff08;Gitlab个人访问令牌&#xff09;错误。 1&#xff09;如下图1…

Twincat使用:EtherCAT通信扫描硬件设备链接PLC变量

EtherCAT通信采用主从架构&#xff0c;其中一个主站设备负责整个EtherCAT网络的管理和控制&#xff0c;而从站设备则负责在数据环网上传递数据。 主站设备可以是计算机、工控机、PLC等&#xff0c; 而从站设备可以是传感器、执行器、驱动器等。 EL3102:MDP5001_300_CF8D1684;…