数据库ER图基础概念整理

2023-05-16

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


ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)/实体实例(entity instance) 不需要出现在ER图中。


ER图的属性(attribute)即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。


ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。


ER图中关联关系有三种:

1对1(1:1) :1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

1对多(1:N) :1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

多对多(M:N) :多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。



下面是个简单的例子:


ER实体补充讲解:


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


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


弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形。


上面实例根据弱实体的情况更改如下图:



复合实体:复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系,它由每个关联实体的主玛组成,用长方体内加一个菱形来表示。


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




ER属性补充讲解:


er图的属性还细分为复合属性、多值属性和派生属性、可选属性,同时还有用来表示联系的属性,称为联系属性。


复合属性(composite attribute):复合属性是指具有多个属性的组合,例如名字属性,它可以包含姓氏属性和名字属性,如下图:


复合属性也有唯一属性,例如学生的所在班级属性,由于多个年级都有班级,所以单单班级属性是不唯一的,但是和年级组成的复合属性后则可以匹配成唯一属性。


多值属性(multivalued attribute):一个实体的某个属性可以有多个不同的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性, 用双线椭圆表示。


派生属性(derivers attribute):是非永久性存于数据库的属性。派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示,如下图。

下面的小组人数就是典型的派生属性,随着学生实例的参加的兴趣小组变化,小组人数属性也会变化,一般来讲派生属性不存在于数据库中,而是通过相应的公式进行计算得到,如果要放到数据库中,那么隔一段时间就要进行更新,否则会出现数据错误。




可选属性(optional attribute):并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性,在椭圆的文字后用(O)来表示,如下图的地址就是一个可选属性。



联系属性:联系属于用户表示多个实体之间联系所具有的属性,一般来讲M:N的两个实体的联系具有联系属性,在1:1和1:M的实体联系中联系属性并不必要。



er图的联系内容较多,以后单独补充!












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

数据库ER图基础概念整理 的相关文章

随机推荐

  • 树莓派4B ubuntu20.04 安装ROS noetic和opencv记录

    文章目录 准备换源安装ROS一些遇到的坑连接wifi添加秘钥时出错 E could not get lock var lib apt list catkin make时出现错误 Could not find the required com
  • apt-get使用本地安装源进行安装及apt-get命令详解

    apt get使用本地安装源进行安装 我们都喜欢使用apt get xff0c 因为它实在是让我们大大的省心 但是 xff0c 有时候我们会为网速慢 xff0c 安装源不好而烦恼 xff0c 所以我们可能会将一些常用软件包的 deb文件保存
  • 引入MybatisPlus与实操

    文章目录 1 MybatisPlus概述2 快速入门2 1 步骤 3 配置日志 1 MybatisPlus概述 特色 特性 无侵入 xff1a 只做增强不做改变 xff0c 引入它不会对现有工程产生影响 xff0c 如丝般顺滑 损耗小 xf
  • ubuntu清理硬盘空间

    移除不再需要的软件包 此选项可以删除 安装某个软件包时 自动安装的依赖库和包 xff0c 这些自动安装的依赖包在系统中通常是无用的 xff0c 浪费磁盘空间 但是如果报出很多ros相关的包最好谨慎一点 xff0c 以免误删 span cla
  • E: 仓库 “http://ppa.launchpad.net/gviz-adm/graphviz-dev/ubuntu bionic Release” 没有 Release 文件。N: 无法安全地

    通过换源无法解决 xff1a 打开软件和更新 选择其他软件 xff0c 里边有一个网址与报错的网址一样 xff0c 取消选择状态 完美解决 xff01 xff01
  • 计网笔记 网络层(中)

    前面的话 这篇文章继上一篇 xff0c 是关于网络层的其他知识的梳理 目录 1 划分子网 2 使用子网时分组的转发 3 无分类域间路由选择CIDR xff08 构造超网 xff09 4 网际控制报文协议ICMP 划分子网 前面讲到的两级IP
  • C++与C语言的区别

    1 C 43 43 的创建历程 xff1a 20世纪70年代中期 xff0c Bjarne Stroustrup在剑桥大学计算机中心工作 他使用过Simula和ALGOL xff0c 接触过C 他对Simula的类体系感受颇深 xff0c
  • moment的startOf、endOf使用

    moment的startOf endOf使用 举例 xff1a 今天的日期 xff1a 2020 04 14 16 41 startOf语法 xff1a moment startOf String 通过将原始的 moment 设置为时单位的
  • 133道Java面试题及答案(面试必看)

    Java 面试随着时间的改变而改变 在过去的日子里 xff0c 当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试 xff0c 但是现在问题变得越来越高级 xff0c 面试官问的问题也更深入 在我初入职
  • JS的test()方法

    解析 解释 xff1a js的test 方法用于检测一个字符串是否匹配某个格式 语法 xff1a RegExpObject test string 返回值 xff1a 如果String中含有RegExpObject中匹配的字符返回true
  • 实时获取当前时间并展示在页面上

    简介 实时获取当前时间并展示在页面上 xff0c 是很多地方常用的 xff1b 在页面中做此展示以便查看时间 本文使用js通过一个小的demo实现效果 完整Code span class token operator lt span spa
  • Visual Studio Code提交代码提示“Make sure you configure your ‘user.name‘ and ‘user.email‘ in git.”

    使用VSCode编译器提交代码到gitlab xff0c 编译器提示 Make sure you configure your 39 user name 39 使用编译器VSCode提交代码到GitLab xff0c 提示 Make sur
  • React编译代码报错提示:React was passed “javascript:;“。

    React编译代码提示报错信息 xff1a React编译代码提示报错信息 xff1a Warning A future version of React will block javascript URLs as a security p
  • 如何添加Iconfont图标到项目及创建新项目?

    1 搜索图标 或者 选择自己上传图标 2 选择图标 xff0c 加入库 3 点击购物车图标 xff0c 如果已经创建项目直接选择点击确定 xff1b 如果没有创建项目点击 43 创建项目 4 输入新项目名称 xff0c 点击确定 5 确定后
  • antd icon 图标组件的使用

    antd提供的icon有限 xff0c 可以直接使用iconfont图标库的图标 1 安装图标组件包 npm install save 64 ant design icons 2 创建图标 import createFromIconfont
  • 字符串解析为指定格式

    将 张三 李四 王五 赵六 解析为 张三 李四 xff08 共4人 xff09 使用 xff1a let str 61 39 张三 李四 王五 赵六 39 empsDeal str 39 张三 李四 共4人 39 方法 xff1a cons
  • 清除redux数据(hooks写法)

    清除redux数据的场景 A页面初始化调用A接口 xff0c 希望在当前页面生效 xff0c 跳转页面不保存数据 xff0c 但redux中已经存有历史数据 xff0c 所以在页面销毁时清除redux数据 A页面请求A接口 useEffec
  • 跳转页面方法

    跳转页面 window location href 61 url 替换当前页面 window location replace url
  • 嵌入式面试总结

    毕业一年多了 xff0c 从事嵌入式开发工作不知不觉也一年多了 xff0c 题主主要从事单片机 xff08 STM32 xff09 应用开发工业类电子方向 xff0c 纯技术涉及到的内容主要是C语言 arm STM32驱动 FreeRTOS
  • 数据库ER图基础概念整理

    ER图分为实体 属性 关系三个核心部分 实体是长方形体现 xff0c 而属性则是椭圆形 xff0c 关系为菱形 ER图的实体 xff08 entity xff09 即数据模型中的数据对象 xff0c 例如人 学生 音乐都可以作为一个数据对象