数据库——ER图

article/2025/5/1 15:05:06

参照:https://zhuanlan.zhihu.com/p/29029129

1、ER图分为实体、属性、关系三个核心部分。实体是长方形体现,而属性则是椭圆形,关系为菱形。

  • 1)ER图的实体(entity):即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体实例(entity instance),例如学生实体里包括张三、李四等,实体实例(entity instance) 不需要出现在ER图中。
  • 2)ER图的属性(attribute):即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性
  • 3)ER图的关系(relationship):用来表现实体与实体之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。

2、ER图中关联关系有三种:

1对1(1:1) :指对于实体A与实体B,A中的每一个实体实例只能与B中某一个实体实例有关系;反之,在实体B中的每个实体实例只能与实体A中某一个实体实例有关系。如:学生:成绩表(一个学生对应于成绩表中的一个成绩;而成绩表中的一个成绩只能对应一个学生)

1对多(1:N) :指实体A的每一个实体实例 与 实体B中的多个实体实例有关系;并且实体B中每一个实体实例只能与实体A中某一个实体实例有关系。如:部门表:员工表(一个部门对应多个员工,一个员工只属于一个部门)。

多对多(M:N) :指实体A中的每一个实体与实体B中多个实体有关系;并且实体B中的每一个实体与实体A中的多个实体有关系。如:员工:角色(一个员工可以有多个角色,如:打扫卫生,整理资料的角色;一个角色可以有多个员工,如:打扫卫生的人有张三、李四、王五等)。

下面是个简单的例子:
在这里插入图片描述

3、ER实体补充讲解:

ER的实体还会细分为 :弱实体和复合实体

1)弱实体:一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体。

弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形。
例子:
①学生表 和 成绩表
一个学生 对应 一条成绩记录。一条成绩记录必须依赖于一条学生记录。所以:学生实体是强实体,成绩实体是弱实体。成绩表中有个外键sid参照学生表的主键sid。
②员工 和 部门表
一个部门对应 多个员工,一个员工只能属于一个部门。员工依赖部门。所以:部门是强实体,员工是弱实体。员工表中有个外键did参照的是部门表的did。
总结:有外键的实体都是弱实体

上面实例根据弱实体的情况更改如下图:在这里插入图片描述
2)复合实体(关联表)
复合实体:复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系(关联关系表),它由每个关联实体的主玛组成,用长方体内加一个菱形来表示。

下图就是一个典型的复合实体,因为只是举例,相对粗糙,用户和商品两个实体是M:N的关系,中间又订单这个实体联系,因此订单这个实体是一个复合实体,同时如果用户 实体不存在,就没有订单实体的存在,因此对于用户实体来讲订单是弱实体,同理商品实体如果不存在,同样不存在订单实体,因此对商品实体而言订单是弱实体,具体如图:在这里插入图片描述


http://chatgpt.dhexx.cn/article/GeFQn4Hl.shtml

相关文章

ER图连接线上加个圆圈什么意思_ER图模板实例,一篇文章教你绘制专业ER图

ER图是什么呢?ER是Entity Relationship的缩写,ER图翻译过来就是实体-联系图的意思。它由美籍华裔计算机科学家陈品山发明,是用来描述现实世界概念结构模型的有效方法,包括实体型、属性、联系这三个基本构成要素,实体型用矩形框表示,实体性的属性用椭圆图框或者圆角矩形表…

ER图的概念及例子

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法。 用来描述现实世界的概念模型: 用矩形表示实体型,矩形框内写明实体名:比如学生张三、学生李四都是实体; 用椭圆表示实体…

mysql中e r图又叫_E-R图是什么

E-R图,也称实体-关系图,是用来显示了实体集之间关系的。它提供了表示实体类型、属性和联系的方法;用来描述现实世界的概念模型。ER模型是数据库的设计或蓝图,以后可以作为数据库实现。 在E-R图中,实体集是一组相似的实…

ER图与关系模型

5.13 设某商业集团数据库中有3个实体集。一是商店实体集,属性有商店编号、商店名、地址等;二是商品实体集,属性有商品号、商品名、规格、单价等;三是职工实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品间存在…

概念结构设计ER图

文章目录 概念层数据模型——E-R模型实体:属性:联系: E-R图表示两个实体之间的联系一对一联系一对多联系多对多联系多个实体之间的联系 概念设计的特点和策略设计全局E-R模型E-R图之间的冲突优化全局E-R模型逻辑结构设计E-R模型的转换一E-R模…

怎样绘制ER图

E-R图也称实体-联系图(Entity Relationship Diagram),1976年由P.Pchen 提出,提供了表示实体类型、属性和联系的方法。 ER图是我们在上数据库课的时候提到的,简单来说就是辅助数据库设计的概念模型。 1.表示方法 实体型:用矩形框&…

【系统架构】ER图

文章目录 ER图是什么?ER图的组成元素是什么?规范 ER图是什么? E-R图也称实体-联系图(Entity Relationship Diagram),它提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 ER图(实体关系…

什么是ER图?

实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。 通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。ER图提供了表示实体(即…

什么是ER图?数据库ER图基础概念整理

前置知识 概述:数据模型的基本概念 模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。对于具体的模型人们并不陌生,如航模飞机、地图和建筑设计沙盘等都是具体的模型。最常用的数据模型分为概念数据模型和基本数据模…

ER图是啥?

文章转载自「开发者圆桌」一个关于开发者入门、进阶、踩坑的微信公众号 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 用矩形表示实体型,矩形框内写明实体名&…

ER图是什么?

ER图分为实体、属性、关系三个核心部分。实体是长方形体现,而属性则是椭圆形,关系为菱形。 ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示&#xff…

实体关系 (ER) 图的几种不同风格的符号

什么是 ER 图? 实体关系 (ER) 图是一种流程图,用于说明“实体”(如人、对象或概念)如何在系统中相互关联。ER 图最常用于设计或调试软件工程、商业信息系统、教育和研究领域的关系数据库。也称为 ERD 或 E…

【C】C语言int型数组转化为char型字符串数组

文章目录 C语言int型数组转化为char型字符串数组一、代码二、结果三、说明 C语言int型数组转化为char型字符串数组 一、代码 /* 程序功能&#xff1a;int型数组转化为char型字符串数组*/ #include <stdio.h> #include <stdlib.h> #include <math.h> int nu…

C语言:int型数据向char型数据的强制类型转换原理

int型数据向char型数据强制转换原理 C语言中int是四个字节&#xff0c;char是1个字节&#xff0c;占字节多的int型向字节少的char型强制类型转换的原理就是字节截断。 转换时系统会自动删除高位的三个字节&#xff0c;只留下低位的一个字节&#xff0c;这就是int型想char型转换…

数据类型的大小(int型为例)

上图 int型能表示的范围是-2147483648&#xff08;-215&#xff09; – 2147483647(215 -1) int型占系统分配的4个字节&#xff08;不同系统不一样&#xff09;8个位&#xff0c;最高一位为符号位。10000000时表示-215 、01111111时表示215 - 1 unsigned int 为无符号整型范围…

【C】C语言判断字符串是否是int型正整数

文章目录 【C】C语言判断字符串是否是int型正整数前言一、代码二、结果 【C】C语言判断字符串是否是int型正整数 前言 此程序功能主要是实现&#xff1a;判断在CMD下输入的字符串是是否是int型的正整数。 在判断字符是数值时还可以了解一下isdigit()函数&#xff0c;可…

C:int型指针

2019独角兽企业重金招聘Python工程师标准>>> 环境:mint 13 64bit,gcc 4.6.3。 如无特殊,均为`gcc test.c -o test`的类似方式编译源文件。 在这里主要讨论`int*`,`int**`,`char*`,`char**`等这些比较基本的指针类型,主要以int类型为示例。在64bit环境中地址用…

java float强制转换int类型_float型怎样强制转换成int型

展开全部 运行时所有数据都存储在内存中&#xff0c;32313133353236313431303231363533e4b893e5b19e31333436316236所以相同很正常&#xff0c;float转int会将小数后面的数舍去。 比如定义了一个floata&#xff0c;强制转换成int可写成(int)a。如果是一个表达式&#xff0c;那么…

mysql int 可以是负数吗_int型包括负数吗

展开全部 可以包含负值也可以不包含负值。 在计算机科学中&#xff0c; int()函数是整e69da5e887aa62616964757a686964616f31333433623235数数据类型的数据&#xff0c;积分数据类型可以具有不同的大小&#xff0c;并且可以允许或不允许包含负值。 整数通常在计算机中表示为一组…

int型溢出问题

目录 问题原理奇怪的循环计算机的编码循环的产生 如何识别溢出乘法加法 参考文献 问题 在执行乘法时&#xff08; i ! ∗ 2 i , ( i 0 , 1 , . . . , n − 1 ) i!*2^{i},(i0,1,...,n-1) i!∗2i,(i0,1,...,n−1)&#xff09;&#xff0c;当计算的值超过了int上限后却变成了负数…