数据库SQL——什么是实体-联系模型(E-R模型)?

news2024/11/24 12:08:03

目录

什么是实体-联系模型?

1.实体集

2.联系集

3.映射基数

一对一(1:1)

一对多(1:n)

多对一(n:1)

多对多(m:n)

全部参与:

4.主码

弱实体集:

特点


什么是实体-联系模型?

        实体-联系模型是一种概念模型,用于对现实世界进行建模。它提供了一种不受任何数据库管理系统(DBMS)约束的面向用户的表达方法,用于描述现实世界的概念结构。实体-联系模型的主要构成要素包括实体、属性和联系。而E-R图可以通过图形的方式表示数据库的总体逻辑结构。这样直接理解比较晦涩。

1.实体集

  一个实体是现实世界中可区别于其他所有对象的一个“事物”或“对象”。他有两个特点。一个是现实世界中存在一个是可区别。

实体集是共享相同性质或属性的、具有相同类型的实体的集合。实体通过一组属性来表示。

属性是实体集中每个成员所拥有的描述性性质。每个实体在他的属性上都有一个值。

实体在E-R图中的表示:

上图是两个实体集的E-R图,阴影部分为E-R图的实体集名称。

2.联系集

联系是多个实体间的互相关联

联系集是在n>=2时(可能相同的)实体集上的数学关系。联系集在E-R图中用菱形表示

下图是一个实体的自身联系集:

下图是两个实体通过advisor的联系集:

带有附加属性加到联系集的E-R图(虚线):

3.映射基数

映射基数(Mapping Cardinalities)表示一个实体能通过一个联系集关联的另一些实体的数量。

一对一(1:1)

允许有没联系的,比如:部门-经理

一对一的E-R图: 

一对多(1:n)

一对多的E-R图:

多对一(n:1)

 

 多对一的E-R图:

多对多(m:n)

多对多的E-R图:

 

在ER图中,联系用菱形表示,菱形框内写联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。 

全部参与

每个实体集完全参与。在这个例子中即每个学生都有指导老师。否则被称为部分参与。

4.主码

主码是数据库表中用于唯一确定表中每一行的一个或一组列。它一定可以把这些实体区分出来。它具有以下特点:

  1. 唯一性:主码保证表中的每一行记录都是唯一的,不会有重复。
  2. 非空性:主码字段必须包含数据,不能为空。
  3. 数据完整性:通过主码,可以防止重复数据和不一致的数据进入数据库。
  4. 快速查询:数据库管理系统利用主码来快速定位和访问记录,提高查询性能。

注意在多对多的关系中要联系两边的主码才能区分出来。一对多&多对一的找“多”边的主码。一对一找任意一边的主码即可

弱实体集:

弱实体集是指那些没有足够的属性来唯一标识其实体的实体集合。这些实体需要依赖于其他实体集(称为强实体集)才能被完全标识和存储。

特点
  1. 存在依赖性:弱实体集的实体存在依赖于与其相关联的强实体。如果强实体不存在,那么与其相关联的弱实体也将不存在。
  2. 标识依赖性:弱实体集的标识依赖于与其相关联的强实体。弱实体的标识必须包含其所依赖的强实体的标识,通常与弱实体自身的部分标识组合在一起,形成弱实体的全局标识。
  3. 部分关键字:弱实体集的关键字只是部分的,它需要与强实体的关键字一起才能形成全关键字。这意味着,弱实体集不能单独通过其自身的属性来唯一标识其实体。

可能有点难懂。让我们来举个具体的例子:

例子1:

        在人事管理系统中,职工家属的信息(如子女、配偶等)可以以职工的存在为前提,因此家属实体集是一个弱实体集,它依赖于职工实体集。

例子2:

        在电子商务系统中,订单明细的实体集可以是一个弱实体集,因为它依赖于订单实体集。通过订单号可以确定对应的订单明细

 E-R图:下划线用虚线

 

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

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

相关文章

WPS Office手机去广高级版

工具介绍功能特点 WPS Office是使用人数最多的移动办公软件,独有手机阅读模式,字体清晰翻页流畅;完美支持文字,表格,演示,PDF等51种文档格式;新版本具有海量精美模版及高级功能 安装环境 [名称…

【微服务】Docker 容器化

一、初识Docker 1. 为什么需要 Docker 大型项目组件较多,运行环境也较为复杂,部署时会遇到一些问题: 依赖关系复杂,容易出现兼容性的问题开发、测试、生产环境有差异 Docker 如何解决依赖的兼容问题 将应用的Libs(…

Yocto 项目下通过网络更新内核、设备树及模块

Yocto 项目下通过网络更新内核、设备树及模块 前言 在 Yocto 项目的开发过程中,特别是在进行 BSP(Board Support Package)开发时,经常需要调整特定软件包的版本,修改内核、设备树以及内核模块。然而,每次…

EasyExcel级联下拉

代码 package com.xc.excel.select;import com.alibaba.excel.EasyExcel; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream; import java.i…

密码学知识点整理二:常见的加密算法

常用的加密算法包括对称加密算法、非对称加密算法和散列算法。 对称加密算法 AES:高级加密标准,是目前使用最广泛的对称加密算法之一,支持多种密钥长度(128位、192位、256位),安全性高,加密效率…

excel功能

统计excel中每个名字出现的次数 在Excel中统计每个名字出现的次数,您可以使用COUNTIF函数或数据透视表。以下是两种方法的详细步骤: 方法一:使用COUNTIF函数 准备数据:确保您的姓名列表位于一个连续的单元格区域,例如…

题目练习之二叉树那些事儿

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨个人…

绘制3D图

一个 3D 函数的表面图,其中包含向量场。 Python 代码示例,使用 matplotlib 和 numpy 库来绘制类似的图。 python 复制代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D# 生成网格 x np.linspace(-…

2024 网鼎杯 - 青龙组 Web WP

2024 网鼎杯 - 青龙组 WEB - 02 打开容器一个登录界面,随便输入账号密码可以进到漏洞界面 这里有一个发送给boss的功能,一眼xss 有三个接口:/flag 、/update 、/submit /flag :要求boss才能访问,/update &#xf…

【Linux】 IPC 进程间通信(三)(消息队列 信号量)

📃个人主页:island1314 🔥个人专栏:Linux—登神长阶 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 一、消息队列 💌…

推荐一款Windows卸载工具:

Glary Absolute Uninstaller类似于标准的Windows添加/删除程序,但功能更强大。标准的添加/删除程序无法完全卸载应用程序,这通常会在硬盘上留下损坏的注册表项和不需要的文件。您的计算机拥有的垃圾文件越多,运行速度就越慢。Absolute Uninst…

资产管理系统:SpringBoot技术实现

企业资产管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业资产管理系统的开发全过程。通过分析企业资产管理系统方面的不足,创建了一个计算机管理企业资产管理系统的方案。文章介绍了企…

[High Speed Serial ] Xilinx

Xilinx 高速串行数据接口 收发器产品涵盖了当今高速协议的方方面面。GTH 和 GTY 收发器提供要求苛刻的光互连所需的低抖动,并具有世界一流的自适应均衡功能,具有困难的背板操作所需的 PCS 功能。 Versal™ GTY (32.75Gb/s)&…

数据表单查询,简单查询操作

一.简单查询,带条件查询 1.请按照以下要求查询表goods中的数据。 goods表结构如下: -- 创建表: use test; drop table if exists goods; create table if not exists goods ( id int(11) not null comment 商品编号, name varchar(20) default null…

面试击穿mysql

Mysql三大范式: 第一范式(1NF): 不符合第一范式的典型情况是在一个字段中存放多种不同类型的详细信息。例如,在商品表中,若将商品名称、价格和类型都存储在同一个字段中,会带来诸多弊端。首先,在…

科普|分享10个你不知道的公司数据安全防泄密措施,让企业数据安全牢不可破!

《孙子兵法》云:“知彼知己,百战不殆;不知彼而知己,一胜一负,不知彼,不知己,每战必殆。” 在数据安全领域,企业不仅要了解自身的数据资产和潜在威胁,还要掌握有效的数据安…

PyTorch音频分类实战(完整代码)

《SwanLab机器学习实战教程》是一个主打「开箱即用」的AI训练系列教程,我们致力于提供完善的数据集、源代码、实验记录以及环境安装方式,手把手帮助你跑起训练,解决问题。 音频分类任务是指将音频信号按照其内容的类别归属进行划分。例如&…

产品经理如何使用项目管理软件推进复杂项目按时上线

前言 相信很多产品同学或多或少都有过这样的经历:平时没有听到任何项目延期风险,但到了计划时间却迟迟无法提测……评审时没有任何argue,提测后发现开发的功能不是自己想要的……费劲九牛二虎之力终于让项目上线了,然而发现成果达…

nginx配置自签证书

文章目录 一.OpenSSL下载二.生成证书三.nginx配置 四.常见错误4.1 the event "ngx_master_xxxx" was not signaled for 5s 一.OpenSSL下载 # ubuntu sudo apt-get update sudo apt-get install openssl二.生成证书 # 创建存放证书的目录 mkdir /usr/local/mydata/s…

【elkb】kibana后台删除索引

打开kibana后台 点击 Management ---> Index Management 找到要删除的所以点击 点击delete index 删除成功