数据库系统概念(第七周 第一堂)(E-R模型)

目录

前言

基本概念 

观点与模型

作用与要求 

E-R模型元素 

实体(entity)

实体集(entity set)

属性(attribute)

域(domain)

码 (key)

联系 (relationship)

参与(participation)

角色(role) 

映射基数( Mapping Cardinalities)

弱实体集(weak entity set)

总结 


前言

本堂课重点来讲讲E-R模型,然后在下一堂课我们深入来探讨如何利用E-R模型进行数据库设计

E-R模型是1976年由P.P.S.Chen提出的用来描述概念的模型

基本概念 

观点与模型

观点:世界是由一组称作实体的基本对象和这些对象的联系构成的(世界=实体+实体联系)

模型:模型就是世界本质的一种反射,能够突出世界的某方面特征

作用与要求 

作用:帮助澄清用户的数据需求、数据逻辑模型设计的基础(用于数据分析、数据库设计、数据关系研究)

 要求:清晰、易懂、完整、准确、无二义

E-R模型元素 

实体(entity)

定义:客观存在并且相互可以区分的事物叫实体(唯一标识)

例子:学生张三(具体的)、软件学院(抽象的)等等

E-R模型:

侧重点:实体集下的多个实体(Johnson等) 

实体集(entity set)

定义:具有相同类型及属性的实体集合

例子:全体学生、全体课程、所有学院等

实体可以认为是实体集的外延(Extension)

 E-R模型:

 侧重点:实体集的属性

属性(attribute)

定义:实体集中所有实体所具有的描述性的性质

例如:学生的学号、姓名、年龄

1、实体集的属性是将实体集映射到域的函数(实体可以认为是高维度上的一个点)

2、实体的属性可以唯一标识一个实体

分类:

1、简单属性:不可再分的属性(性别、年龄等)

2、复合属性:可以划分为更小的属性(电话号码=区号+本地号码)

1、单值属性: 每一个实体在该属性上的取值唯一

2、多值属性:每一个实体在该属性上有多于一个的取值

1、基属性:除了派生属性外的所有属性都是基属性

2、派生属性:从基属性通过计算派生出来的属性

理论上只存基属性值,而派生属性只存其定义或依赖关系,使用时再从基属性中计算出来

同个框内的分类是对立的,不同框内的分类是可以并存的 

小测试:

name:复合属性、单值属性、基属性

phone_number:复合属性、多值属性 、基属性

age():单值属性、简单属性、派生属性

域(domain)

定义:属性的取值范围

例如:性别的域为(‘0’,‘1’),月份的域为(‘1’-‘12’)

码 (key)

超码:能唯一标识实体的属性或属性组

候选码:任意真子集都不能成为超码的最小超码

主码:从所有候选码中任意选定一个用来区别同一实体集中不同实体的候选码(候选码中任意选)

E-R模型:实体集属性中作为主码的属性用下划线来标明

联系 (relationship)

定义:实体之间的相互关联称为联系

例如:老师与学生之间的授课关系

联系有自己的属性,在E-R模型图中不要把联系属性合并到实体中。但是在表格设计很多情况会把联系的属性合并到实体表中!!

 元或度:参与联系的实体集的个数称为联系的元(或者度)

E-R模型:

菱形表示:实体集之间的联系

参与(participation)

定义:实体集之间的关联称为参与(实体与联系的关系就是参与关系)

例如:王军选修数据库=“王军”、“数据库”参与了联系“选修”

分类:全部参与、部分参与

 E-R模型:

实线:实体集与联系之间的参与

一条实线:部分参与联系

两条实线:全部参与联系

角色(role) 

定义:实体在联系中的作用称为实体的角色

E-R模型: 

实体集不止一次参与某种联系时才需要显式指明其角色

映射基数( Mapping Cardinalities)

定义:实体之间联系的数量,即一个实体通过一个联系集能与另一个实体集相关联的实体的数目

例如:一个导师对应多个研究生、一个本科生上多门课程(一门课程同时给多个学生学习)等等

E-R模型:

箭头指向的实体集是一,线段的实体集是多(上图反映的是多对一的关系) 

一对一的关系。一个导师对应一个学生,一个学生对应一个导师 

多对多的关系。一个导师对应多个学生,一个学生对应多个导师 

一个实体集内的二元联系同样需要指定映射基数 

多个实体集间的联系情况

注意!绝对不是题目中出现三个实体集与联系就写成三元联系,也有可能是两个二元联系。具体要看三者之间是不是都有关系还是只有其中一者和另外两个有关系!!!

另外一种表示: 

a..b:表示其对应的实体集参与联系的个数限制 

例如:0..*是0到无上限?(即多);1..1是1到1(即一);20..*是学生参与选修至少20位

弱实体集(weak entity set)

定义:若一个实体所有属性合在一起都不足以形成主码,则称该实体是弱实体

原因:1、联系必须是实体之间的;2、想要属性参与联系则必须将属性实体化;3、有些场景下,属性必须参与某种联系

存在依赖:弱实体集必须存在依赖与一个强实体集,但是存在依赖不会导致一个弱实体集(如:信用卡依赖于客户实体,但是是一个强实体集)

分辨符:也叫部分码,能够与所依赖的强实体集中的主码共同唯一标识弱实体集(弱实体集主码=依赖强实体集主码+弱实体集分辨符

标识性联系:与一般联系不同,标识性联系只存在与强实体集和弱实体集之间。用双边框的菱形表示

例如:

关键点:

1、实体集的表示与上面不同。这里的属性是利用圆圈连接实体来表示的。

2、transaction是指交易。交易额和interestRec(利息额)以及银行柜员必然存在关系 。每一笔交易都由一个柜员完成,都将计入利息额度中。但是这里交易是属性不能参与联系,所以这里需要将它实体化为弱实体集。

3、上图中transaction属性有两个圈表示其是多值属性,还未实体化

1、将交易记录、利息记录实体化

2、将这两个弱实体利用标识性联系与强实体集联系

3、弱实体集的分辨符用下划虚线表示

E-R模型:

 

总结 

本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。

本篇已经码了三个多小时了,算是简单入门E-R模型的文章,下次我们来讲讲E-R模型向关系模型(可以理解为数据库中的表)的转化

如果能帮助到大家,大家可以点点赞、收收藏呀~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/19523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟现实环境下的远程教育和智能评估系统(五)

查阅相关VR眼动注意力联合教育学相关论文 1.Exploring Eye Gaze Visualization Techniques for Identifying Distracted Students in Educational VR(IEEE VR 2020) 摘要:我们提出了一种架构,使VR教学代理能够响应眼动追踪监控…

Android HIDL接口添加

一.HIDL介绍 HIDL的全称是HAL interface definition language(硬件抽象层接口定义语言),是Android Framework 与Android HAL之间的接口。HIDL 旨在用于进程间通信 (IPC),进程之间的通信 采用 Binder 机制。 二.HIDL 与AIDL 的对…

JVM之【运行时数据区1】

JVM简图 运行时数据区简图 一、程序计数器(Program Counter Register) 1.程序计数器是什么? 程序计数器是JVM内存模型中的一部分,它可以看作是一个指针,指向当前线程所执行的字节码指令的地址。每个线程在执行过程中…

Python魔法之旅-魔法方法(04)

目录 一、概述 1、定义 2、作用 二、主要应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类…

Tensorflow入门实战 P02-彩色图片分类

目录 1、序言 2、主要代码 3、运行结果展示 (1)展示cifar10里面的20张图片 (2)预测的图片 (3)模型评估 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K…

水经微图PC版4.3.10发布

让GIS更简单高效,让地图更丰富及时! 水经微图(以下简称“微图”)新版已上线,在该版本中主要新增了天地图历史影像查看功能,以及其它功能的优化。 当前版本 当前版本号为:4.3.10 如果你发现该…

Pytorch反向传播算法(Back Propagation)

一:revise 我们在最开始提出一个线性模型。 x为我们的输入,w为权重。相乘的结果是我们对y的预测值。 那我们在训练时就是对这个权重w进行更新,就需要用到上一章提到的梯度下降算法,不断更新w。但是此时注意不是用y的预测值对w进…

linux centos nfs挂载两台服务器挂载统一磁盘目录权限问题

查看用户id id 用户名另一台为 修改uid和gid为相同id,添加附加组 usermod -u500 -Gwheel epms groupmod -g500 epms

网络协议。

一、流程案例 接下来揭秘我要说的大事情,“双十一”。这和我们要讲的网络协议有什么关系呢? 在经济学领域,有个伦纳德里德(Leonard E. Read)创作的《铅笔的故事》。这个故事通过一个铅笔的诞生过程,来讲述…

[代码复现]Self-Attentive Sequential Recommendation(ing)

参考代码:SASRec.pytorch 可参考资料:SASRec代码解析 前言:文中有疑问的地方用?表示了。可以通过ctrlF搜索’?。 环境 conda create -n SASRec python3.9 pip install torch torchvision因为我是mac运行的,所以device是mps 下面…

算法(七)插入排序

文章目录 插入排序简介代码实现 插入排序简介 插入排序(insertion sort)是从第一个元素开始,该元素就认为已经被排序过了。然后取出下一个元素,从该元素的前一个索引下标开始往前扫描,比该值大的元素往后移动。直到遇到比它小的元…

【C语言】探索文件读写函数的全貌

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 🔥引言 本章将介绍文件读取函数的相关知识和展示使用场景&am…

React组件通信——兄弟组件

兄弟组件通信 方法一:状态提升 子组件先将数据传递到父组件,父组件再把数据传到另一个子组件中。 import { useState } from "react"; // 定义A组件,向B组件发送数据 function A({ onGetMsg }) {const name "this is A na…

fyne apptab布局

fyne apptab布局 AppTabs 容器允许用户在不同的内容面板之间切换。标签要么只是文本,要么是文本和一个图标。建议不要混合一些有图标的标签和一些没有图标的标签。 package mainimport ("fyne.io/fyne/v2/app""fyne.io/fyne/v2/container"//&…

PolarDB分布式架构学习笔记

PolarDB分布式是什么? 业务场景有哪些? 分布式焦点问题? 技术架构 CN DN介绍 CDC组件介绍 Columnar组件介绍 视频学习:PolarDB 实操课 第一讲:PolarDB分布式版架构介绍_哔哩哔哩_bilibili

都在说的跨网文件共享系统是什么?企业该怎么甄选?

跨网文件共享系统成为越来越受关注的产品焦点,那么跨网文件共享系统是什么呢?跨网文件共享是指在不同网络之间共享文件的过程,使得不同网络中的用户可以访问和使用共享的文件。 原则上而言,不同网络间的文件是无法共享的&#xff…

OAK相机如何将 YOLOv9 模型转换成 blob 格式?

编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 Hello,大家好,这里是OAK中国,我是Ashely。 专…

最新消息:腾讯大模型App“腾讯元宝“上线了

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

Python代码:二十八、密码游戏

1、题目 牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。 破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位…

2024年艺术鉴赏与科学教育国际会议(ICAASE 2024)

2024年艺术鉴赏与科学教育国际会议 2024 International Conference on Art Appreciation and Science Education 【1】会议简介 2024年艺术鉴赏与科学教育国际会议是一场集艺术、科学和教育于一体的国际性学术盛会。本次会议旨在推动艺术鉴赏与科学教育领域的深入交流与合作&am…