数据库实体关系图(ERD)及其画法

2023-05-16

文章目录

  • 1. 什么是ER图?
  • 2. 什么时候画ER图?
    • 2.1. 数据库设计
    • 2.2. 数据库调试
    • 2.3. 数据库创建和补丁
    • 2.4. 帮助收集需求
  • 3. ERD符号指南
  • 4. 概念、逻辑和物理数据模型
  • 5. 如何绘制ER图?


数据库绝对是软件系统不可分割的一部分。在数据库工程中充分利用ER关系图,可以保证在数据库创建、管理和维护中产生高质量的数据库设计。ER模型还提供了一种通信手段。

在这里插入图片描述

1. 什么是ER图?

首先,什么是实体关系图?

实体关系图,又称ERD、ER图或ER模型,是一种用于数据库设计的结构图。ERD包含不同的符号和连接器,它们可视化两个重要的信息:系统范围内的主要实体,以及这些实体之间的相互关系。

这就是为什么它被称为“实体”“关系”图(ERD)!

当我们在ERD中谈到实体时,我们通常指的是业务对象,例如人员/角色(例如学生)、有形的业务对象(例如产品)、无形的业务对象(例如日志)等。“关系”是关于这些实体如何在系统中相互关联的。

在这里插入图片描述
在典型的ER设计中,您可以找到描述实体、实体属性和相互关系的符号,如圆角矩形和连接器(具有不同的端点样式)。

2. 什么时候画ER图?

什么时候画erd ?虽然ER模型主要用于在概念可视化和物理数据库设计方面设计关系数据库,但是在其他情况下,ER图也可以提供帮助。下面是一些典型的用例。

2.1. 数据库设计

——根据变化的规模,直接在DBMS中更改数据库结构可能有风险。为了避免破坏生产数据库中的数据,仔细计划更改是很重要的。ERD是一个有用的工具。通过绘制ER图来可视化数据库设计思想,您有机会识别错误和设计缺陷,并在数据库中执行更改之前进行更正。

2.2. 数据库调试

——调试数据库问题很有挑战性,特别是当数据库包含许多表时,需要编写复杂的SQL来获取所需的信息。通过使用ERD可视化数据库模式,您可以全面了解整个数据库模式。您可以轻松地定位实体、查看它们的属性并确定它们与其他实体之间的关系。所有这些都允许您分析现有数据库并更容易地发现数据库问题。

2.3. 数据库创建和补丁

—Visual Paradigm是一个ERD工具,它支持一个数据库生成工具,可以通过ER图的方式自动创建和补丁数据库。因此,有了这个ER图工具,ER设计就不再是一个静态的图,而是反映物理数据库结构的一面镜子。

2.4. 帮助收集需求

——通过绘制描述系统高级业务对象的概念性ERD来确定信息系统的需求。这样的初始模型还可以演化为物理数据库模型,以帮助创建关系数据库,或帮助创建流程图和数据流模式。

3. ERD符号指南

ER图包含实体、属性和关系。在这一节中,我们将详细讨论ERD符号。

  • 实体

ERD实体是一个系统内可定义的事物或概念,例如人/角色(例如学生)、对象(例如发票)、概念(例如概要)或事件(例如交易)(注:在ERD中,术语“实体”经常被用来代替“表”,但它们是相同的)。在确定实体时,将它们视为名词。在ER模型中,实体显示为圆角矩形,其名称位于顶部,其属性列在实体形状的主体中。下面的ERD示例显示了一个ER实体的示例。

在这里插入图片描述

  • 实体属性

属性也称为列,是持有它的实体的属性或特征。

属性具有描述属性的名称和描述属性类型的类型,如字符串的varchar和整数的int。在为物理数据库开发绘制ERD时,务必确保使用目标RDBMS支持的类型。

下面的ER关系图示例显示了一个包含一些属性的实体。

在这里插入图片描述

  • 主键

主键是一种特殊的实体属性,它惟一地定义了数据库表中的一条记录。换句话说,不能有两个(或多个)记录共享主键属性的相同值。下面的ERD示例显示了具有主键属性“ID”的实体“Product”,以及数据库中表记录的预览。第三条记录无效,因为另一条记录已经使用了ID 'PDT-0002’的值。

在这里插入图片描述

  • 外键

外键也称为FK,是对表中主键的引用。它用于标识实体之间的关系。注意,外键不一定是唯一的。多条记录可以共享相同的值。下面的ER关系图示例显示了一个具有一些列的实体,其中外键用于引用另一个实体。

在这里插入图片描述

  • 关系

两个实体之间的关系表示这两个实体以某种方式相互关联。例如,一个学生可能注册了一个课程。因此,实体学生与课程是相关的,而一种关系是连接他们之间的连接器。

  • 基数

基数定义一个实体中可能出现的事件数,该实体与另一个实体中可能出现的事件数相关联。例如,一个队有很多队员。当在ERD中出现时,实体团队和玩家以一对多的关系相互连接。

在ER图中,基数表示为连接器两端的鱼尾纹。三种常见的基本关系是一对一、一对多和多对多。

一对一的基数的例子


一对一关系主要用于将一个实体一分为二,以提供简明的信息并使其更易于理解。下图显示了一对一关系的一个示例。

在这里插入图片描述
一对多的基数的例子


一对多关系是指两个实体X和Y之间的关系,其中X的一个实例可能链接到Y的多个实例,而Y的一个实例只链接到X的一个实例。

在这里插入图片描述

多对多的基数的例子


多对多关系是指两个实体X和Y之间的关系,其中X可以链接到Y的多个实例,反之亦然。下图显示了一个多对多关系的示例。注意,在物理ERD中,多对多关系被分割为一对一对多关系。在下一节中,您将了解什么是物理ERD。

在这里插入图片描述

4. 概念、逻辑和物理数据模型

型通常是在三个抽象层次上绘制的:

概念ERD /概念数据模型
逻辑ERD /逻辑数据模型
物理ERD /物理数据模型
虽然ER模型的所有三个级别都包含具有属性和关系的实体,但是它们在创建的目的和目标受众方面有所不同。

一般理解的三个数据模型是业务分析师使用概念模型和逻辑模型系统中的业务对象存在,而数据库设计师或数据库工程师阐述了概念和逻辑ER模型生成物理模型,提出了物理数据库结构准备创建数据库。下表显示了三种数据模型之间的差异。

概念模型vs逻辑模型vs数据模型:

ERD featuresConceptualLogicalPhysicalEntity (Name)YesYesYesRelationshipYesYesYesColumns YesYesColumn’s Types OptionalYesPrimary Key YesForeign Key Yes

  • 概念数据模型

概念性的ERD对系统中应该存在的业务对象及其之间的关系进行建模。开发了一个概念模型,通过识别所涉及的业务对象来呈现系统的总体情况。它定义了哪些实体存在,而不是哪些表。例如,“多对多”表可能存在于逻辑或物理数据模型中,但在概念数据模型中,它们只是作为没有基数的关系显示。

概念数据模型示例

在这里插入图片描述
注意:概念性ERD支持在建模两个实体之间的“一种”关系时使用泛化,例如,三角形是一种形状。这种用法类似于UML中的泛化。注意,只有概念性的ERD支持泛化。

  • 逻辑数据模型

逻辑ERD是概念ERD的详细版本。通过显式定义每个实体中的列并引入操作实体和事务实体,可以开发逻辑ER模型来丰富概念模型。虽然逻辑数据模型仍然独立于将要创建数据库的实际数据库系统,但是如果它影响设计,您仍然可以考虑这一点。

逻辑数据模型示例

在这里插入图片描述

  • 物理数据模型

物理ERD表示关系数据库的实际设计蓝图。物理数据模型通过为每个列分配类型、长度、可空值等来详细说明逻辑数据模型。由于物理ERD表示在特定DBMS中数据应该如何结构化和关联,因此考虑实际数据库系统的约定和限制是很重要的。确保DBMS支持列类型,并且在命名实体和列时不使用保留字。

物理数据模型示例

在这里插入图片描述

5. 如何绘制ER图?

什么是实体关系图(ERD)?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库实体关系图(ERD)及其画法 的相关文章

随机推荐

  • python QT designer tableview 滑条QScrollBar样式设置后失效解决方案

    1 原因分析 QT designer tableview组件样式中不能直接设置滑条QScrollBar样式 2 解决方案 QT designer 创建 Scroll Area组件 并将tableview组件放入到Scroll Area组件中
  • websocket在vue中使用

    导入插件 import Rwebsocket from 39 reconnecting websocket 39 新建一个WebSocket js文件 import Rwebsocket from 39 reconnecting webso
  • linux mint(Ubuntu、Debian) 18修改环境变量

    修改环境变量 plain view plain copy print sudo gedit etc profile sudo gedit etc profile 在profile文件的末尾添加以下代码 plain view plain co
  • 手把手编译基于恩智浦MCAL的工程

    摘要 本篇笔记主要记录基于MPC5744P的MACL和EB的开发编译和配置 准备工作 准备好一个在EB下配置好的工程 xff0c 这里以例程为例子来说明安装配置好编译器GreenHills或者其他编译器 xff0c 这里以GreenHill
  • cmake编译错误,将警告视为错误的解决方法

    原博客地址 xff1a https blog csdn net maxsky article details 50849219 解释一下途中框起来的部分 xff0c 第一个框其实就是失败的关键 xff0c 解决方法很简单 既然他提示了 警告
  • Tomcat 9安装与配置

    一 下载源码 地址 xff1a https tomcat apache org download 90 cgi 二 运行 xff08 1 xff09 解压zip压缩包 xff08 2 xff09 进入解压目录 xff0c 并创建一个目录 x
  • debian apt-get 国内常用 镜像源

    1 使用说明 一般情况下 xff0c 修改 etc apt sources list文件 xff0c 将Debian的默认源地址改成新的地址即可 xff0c 比如将http deb debian org改成https mirrors 163
  • linux 挂载错误 mount: unknown filesystem type LVM2_member 解决方法

    系统启动到request module runaway loop modprobe binfmt 464c挂起 利用U盘系统 xff0c 挂载硬盘出现 xff1a mount unknown filesystem type 39 LVM2
  • linux swap 内存交换分区 详细介绍

    目录 1 什么是SWAP xff0c 到底是干嘛的 xff1f 为什么要进行内存回收 xff1f 会回收的两种内存 2 swappiness到底是用来调节什么的 xff1f 那么这个swappiness到底起到了什么作用呢 xff1f 3
  • [ 云计算 华为云 ] 华为云开天 aPaaS:构建高效的企业数字化平台(上)

    文章目录 前言一 什么是 aPaaS1 1 初识 aPaaS 二 华为云开天 aPaaS2 1 华为云服务类型与种类2 1 1 基础 aPaaS2 1 2 行业 aPaaS xff08 一 xff09 工业 aPaaS xff08 二 xf
  • linux shell mkpasswd 生成随机密码

    centos 安装命令 xff1a yum install y expect 参数 xff1a l 密码的长度定义 默认是 9 d 数字个数 默认是 2 c 小写字符个数 默认是 2 C 大写字符个数 默认是 2 s 特殊字符个数 默认是
  • ERROR: glib-2.22 gthread-2.0 is required to compile QEMU

    问题描述 xff1a centos 6 5 源码编译qemu configure时出现错误 ERROR glib 2 22 gthread 2 0 is required to compile QEMU 解决方法 xff1a yum ins
  • metasploit msfconsole 命令参数

    在MSF里面msfconsole可以说是最流行的一个接口程序 很多人一开始碰到msfconsole的时候就害怕了 那么多复杂的命令语句需要学习 xff0c 但是msfconsole真的是一个强大的接口程序 Msfconsole提供了一个一体
  • 记事本输入“联通”俩字,关闭再打开乱码

    这是个很有意思的事情 这里需要提一下ANSI xff0c 不同的国家和地区制定了不同的标准 xff0c 由此产生了 GB2312 BIG5 JIS 等各自的编码标准 然后 xff0c 这些编码方式没有固定的格式 xff0c 但是比如说UTF
  • RoboRTS建图

    建图仿真 span class token function cd span RoboRTS ws src span class token function source span devel setup bash roslaunch r
  • RISC和CISC的区别

    文章目录 复杂指令集计算机 CISC 精简指令集计算机 RISC CISC与RISC的区别参考文章 RISC 精简指令集计算机 和CISC 复杂指令集计算机 是当前CPU的两种架构 它们的区别在于不同的CPU设计理念和方法 复杂指令集计算机
  • 单链表逆序(C语言)

    最近在复习数据结构 xff0c 刷题正好遇上 xff0c 所以整理一下 span class token macro property span class token directive keyword include span span
  • 各种颜色RGB值

    各种颜色RGB值 RGB 255 192 203 pink xff08 粉红 xff09 RGB 220 20 60 crimson xff08 腥红 xff09 RGB 255 240 245 lavenderblush xff08 苍白
  • 第一范式、第二范式、第三范式、BCNF范式详解

    文章目录 0 范式 NF 1 第一范式 xff08 1NF xff09 2 第二范式 xff08 2NF xff09 2 1 函数依赖2 1 1完全函数依赖2 1 2 部分函数依赖2 1 3 传递函数依赖 2 2 码2 3 非主属性 3 第
  • 数据库实体关系图(ERD)及其画法

    文章目录 1 什么是ER图 2 什么时候画ER图 2 1 数据库设计2 2 数据库调试2 3 数据库创建和补丁2 4 帮助收集需求 3 ERD符号指南4 概念 逻辑和物理数据模型5 如何绘制ER图 数据库绝对是软件系统不可分割的一部分 在数