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

数据库E-R 图

基础概念

E-R图 (Entity Relationship Diagram),也称实体关系图。提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。其中各个实体(数据模型中的对象)可以有属性。

图形含义

1、实体

实体就是现实中存在的东西,比如顾客、订单、商品。一般来说,数据库中的一张表就是一个实体集,表中的一条记录就是一个实体,整个数据库就是由许多实体集构成,它们之间都有一定的关系,并且每个实体都会有自己的属性。

数据模型中存在两种实体类型,图形表示如下图:

  • 实体:如上,一般用矩形表示。
  • 弱实体:它不能通过自身的属性唯一识别,只能依赖于与其他实体,一般用双矩形表示。比如订单是依赖于商品,只有商品存在我们才能下单。

2、属性

属性代表一个实体的属性(如顾客的姓名、手机、地址和其他属性;商品的类型、价格、数量和其他属性),对应数据库中的列,一般用椭圆形表示。

属性的类型分为四种,图形表示如下图:

类型

简介

图形表示

唯一属性

可以唯一标识实体集内的实体。

椭圆,属性名用下划线标记。

多值属性

可以有多个不同的取值(例如商品的分类属性,商品有多种分类)。

双椭圆

派生属性

该属性是动态的,从另一个属性派生而来,意思是可以从其他属性推算出该属性(比如,单价和数量可以推出总价),用来计算派生属性的就是基属性,派生属性的值不存储,但在需要的时候可以被计算出来

虚线椭圆

复合属性

可以再划分为更小的部分,也就是它可以分为多个简单属性。(比如,地址可分为城市、区县等)

椭圆

3、关系

关系用于表示实体之间的关系,一般用棱形表示。其中,弱实体和它所依赖的强实体之间的联系叫标识关系,用双菱形表示。

关系的四种类型:一对一、一对多、多对多、自我引用

E-R图设计

这里以购买商品为例,设计ER实体关系模型图,步骤如下:

  1. 抽象出实体
  2. 找出实体之间的关系
  3. 找出实体的属性
  4. 画出E-R关系图
  1. 将 ER 图转换成数据库实际的关系模型

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Total Commander 右键卡死问题,百度云冲突
  • Yolov10网络详解与实战(附数据集)
  • 软件测试-测试分类
  • Linux云计算 |【第二阶段】SECURITY-DAY4
  • Big Data for AI实践:面向AI大模型开发和应用的大规模数据处理套件
  • 超声波模块HC_SR04(hal库)
  • 【图像超分】论文精读:AdaBM: On-the-Fly Adaptive Bit Mapping for Image Super-Resolution
  • 向量数据库中的PQ(Procduct Quantization)
  • zabbix通过snmp监控物理服务器硬件信息
  • Win10安装ChatTTS-2024-cuda10.1
  • 数据结构预备知识
  • 链表反转算法
  • 12.2 使用prometheus-sdk向pushgateway打点
  • Unity编辑器扩展:创建一个欢迎窗口,在启动Editor的时候显示自定义窗口。
  • 【信息学奥赛一本通】1008:计算(a+b)/c的值
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Go 语言编译器的 //go: 详解
  • hadoop集群管理系统搭建规划说明
  • IP路由与转发
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Nodejs和JavaWeb协助开发
  • Python - 闭包Closure
  • python 学习笔记 - Queue Pipes,进程间通讯
  • vue2.0项目引入element-ui
  • Vue全家桶实现一个Web App
  • 大数据与云计算学习:数据分析(二)
  • 仿天猫超市收藏抛物线动画工具库
  • 聊聊sentinel的DegradeSlot
  • 区块链将重新定义世界
  • 如何在 Tornado 中实现 Middleware
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 数组大概知多少
  • 算法---两个栈实现一个队列
  • 听说你叫Java(二)–Servlet请求
  • 用Visual Studio开发以太坊智能合约
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #pragma pack(1)
  • (八十八)VFL语言初步 - 实现布局
  • (二)原生js案例之数码时钟计时
  • (五)MySQL的备份及恢复
  • (转)fock函数详解
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)从 Java 代码到 Java 堆
  • (转载)深入super,看Python如何解决钻石继承难题
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET Core 2.1路线图
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • @Autowired 和 @Resource 区别的补充说明与示例
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [20171106]配置客户端连接注意.txt
  • [24年新算法]NRBO-XGBoost回归+交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测