当前位置: 首页 > news >正文

【MySQL进阶之路 | 高级篇】ER模型

1. 概述

数据库设计是牵一发而动全身的。那么有没有什么办法可以提前看到数据库的全貌呢?比如需要哪些数据表,数据表中应该有哪些字段,通过什么字段进行连接等等。这样我们才能进行整体的梳理和设计。

其实,ER模型就是一个这样的工具。ER模型也叫实体关系模型,是用来描述显示生活中客观存在的事物,事物的属性,以及事物之间关系的一种数据模型。在开发基于数据库的信息系统的设计阶段,通常使用ER模型来描述信息需求和信息特性,帮助我们理清业务逻辑,从而设计出优秀的数据库。

2. 要素

ER模型中有三个要素,分别是实体,属性和关系。

1). 实体:

可以看做是数据对象,往往对应于现实生活中的真实存在的个体。在ER模型中,用矩形表示。实体分为强实体和弱实体。强实体是指不依赖于其他实体的实体。弱实体是指对另一个实体有很强的依赖关系的实体。

2). 属性:

则是指实体的特性。比如超市的地址,联系电话等等。在ER模型中用椭圆型来表示。

3). 关系:

则是指实体之间的联系。比如超市把商品卖给顾客,就是一种超市和顾客之间的关系。在ER模型中用菱形来表示。

4). 注意:

实体和属性不容易区分。这里提供一个原则:我们要从系统整体的角度出发去看,可以独立存在的是实体,不可再分的是属性。也就是说,属性不能包含其他属性。

5). 关系的类型

在ER模型的三个要素中,关系又可以分为三种类型。分别是一对一,一对多,多对多。

3. ER模型图转换成数据表

如下ER模型图:

通过绘制ER模型,我们已经理清了业务逻辑。现在,我们就要进行非常重要的一步。把绘制好的ER模型,转换成具体的数据表,下面介绍下转换的原则:

  • 一个实体通常转换为一张数据表。
  • 一个多对多的关系,通常也转化为一张数据表。
  • 一个一对一的关系,或者一对多的关系,往往通过表的外键来表达,而不是设计一个新的数据表。
  • 属性转换为表的字段。
http://www.lryc.cn/news/404920.html

相关文章:

  • C++基础语法:STL之容器(4)--序列容器中的list(一)
  • WordPress杂技
  • 鸿蒙 动态共享包HSP的创建和引用
  • ARM架构(二)—— arm v7-a/v8/v9寄存器介绍
  • C++合作开发项目:美术馆1.0
  • QT 5 同时使用Q_DECLARE_METATYPE(pointdata) 和继承 QObjectUserData
  • 【MySQL进阶之路 | 高级篇】范式概述与第一范式
  • Open-TeleVision复现及机器人迁移
  • Notepad++换安装路径之后,右键打开方式报错:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。的处理方法
  • 【Flutter 面试题】 使用成熟状态管理库的弊端有哪些?
  • Apache Commons技术详解
  • 怎样使用 Juicer tools 的 dump 命令将.hic文件转换为交互矩阵matrix计数文件 (Windows)
  • 【Docker】Docker Desktop - WSL update failed
  • 基于rsync\unlink 等一套本机备份跨机备份历史备份清理shell 脚本
  • 使用nginx实现一个端口和ip访问多个vue前端
  • Linux云计算 |【第一阶段】SERVICES-DAY5
  • IP第一次综合实验
  • Could not load dynamic library ‘cudart64_100.dll‘
  • 四大引用——强软弱虚
  • MySQL--索引(2)
  • JVM类加载机制详解
  • 【MATLAB实战】基于UNet的肺结节的检测
  • Elasticsearch基础(五):使用Kibana Discover探索数据
  • 爬取百度图片,想爬谁就爬谁
  • HTTP 缓存
  • 设计模式实战:图形编辑器的设计与实现
  • .NET 情报 | 分析某云系统添加管理员漏洞
  • vue检测页面手指滑动距离,执行回调函数,使用混入的语法,多个组件都可以使用
  • opencv 优势
  • 1-如何挑选Android编译服务器