【SQL】E-R模型(实体-联系模型)

devtools/2024/11/20 18:03:41/

 

目录

 

 一、介绍    

1、实体集

定义和性质 

属性

E-R图表示

2. 联系集

定义和性质

属性

E-R图表示


 一、介绍    

        实体-联系数据模型(E-R数据模型)被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式(enterprise schema)来做到的。

        E-R模型采用了三个基本概念:实体集、联系集和属性。

        E-R模型还有一种相关联的图形表示:E-R图。


1、实体集

        一个实体(entity)是现实世界中可区别与所有其他对象中的一个“事物”或“对象”。

例如,大学中的每个人都是一个实体。实体也可以是抽象的,比如课程或者航班预定。

定义和性质 

实体集(entity set)是共享相同性质或属性、具有相同类型的实体的集合。

        例如,一所给定大学的所有教师的集合可定义为instructor实体集,而不是指某个个别实体的特定集合。

实体集的外延(extension)指 属于实体集的实体的实际集合。因此,大学中教师的实际集合构成了instructor实体集的外延。

实体集不必互不相交。比如一个person实体可以是student实体,可以是instuctor实体。

属性

        实体通过一组属性(attribute)来表示。

属性是实体集中每个成员所拥有的描述性性质。

        为实体集设计一个属性表明数据库存储关于该实体集中每个实体的类似信息,但每个实体在每个属性上可以有它自己的值。

        例如,instructor实体集可能具有的属性是ID、name,dept_name和salary.

在此,我们只考虑简单的属性---那些不能划分为子部分的属性。

每个实体在它的每个属性上都有一个(value)。

E-R图表示

        实体集在E-R图中用一个矩形表示,该矩阵分为两部分:实体集的名称,实体集所有属性的名称。

 

如图,E-R图显示的instructor和student实体集。


2. 联系集

定义和性质

         联系(relationship)是多个实体间的相互关联。

比如,教师和学生的联系。

联系集(relationship set)是相同类型联系的集合。

        联系集是在n>=2个(可能相同的)实体集上的数学关系。如果(E1,E2,....En)为实体集,那么联系集R是

                {(e1,e2,...,en)| e1∈E1, e2∈E2,...., en∈En }

的一个子集,其中(e1,e2,...,en)是一个联系实例。

$$$ 实体集之间的关联被称为参与,即实体集(E1,E2,....En)参与(participate)联系集R。

属性

        联系也可以具有被称作描述性属性(descriptive attribute)的属性。

E-R图表示

联系集在E-R图中用菱形表示,菱形通过线条连接到多个不同的实体集(矩形)。

                        显示advisor联系集的E-R图

 联系集的属性在E-R图中通过未分割的矩形来表示。我们用虚线将此矩形与表示该联系集的菱形相连接。

                        将一个属性附加到联系集的E-R图


http://www.ppmy.cn/devtools/135544.html

相关文章

利用MQTT和SSL/TLS实现数据加密

随着物联网(IoT)技术的飞速发展,越来越多的设备接入网络,进行数据交换和处理。在这个过程中,确保数据传输的安全性成为了至关重要的环节。本文将介绍如何利用MQTT协议和SSL/TLS加密技术,构建安全的物联网通…

如何利用virtualenv和python命令创建Python虚拟环境

一、引言 创建Python虚拟环境可以利用多种方法来实现,如:Anaconda3、Miniconda、virtualenv以及python自带的命令(python -m )进行创建。 Anaconda3、Miniconda创建python虚拟环境时,主机必须要接入互联网远程channel中取下下载需要的包才可…

Java 设计模式 详解

在Java开发中,设计模式是一种常见的、成熟的解决方案,用于应对特定的设计问题和复杂性管理。以下是一些常用的设计模式,它们可以分为三类:创建型模式、结构型模式和行为型模式。 一、创建型模式 创建型模式主要负责对象的创建&a…

51单片机应用开发(进阶)---模块化编程

实现目标 1、掌握.h 文件的格式、extern 的用法; 2、握模块化编程方法步骤; 3、具体实现:(1)提供一个C文件,将其按照功能模块进行模块化。 一、为什么要进行模块化编程? 传统的编程方式&…

如何在项目中用elementui实现分页器功能

1.在结构部分复制官网代码&#xff1a; <template> 标签: 这是 Vue 模板的根标签&#xff0c;包含所有的 HTML 元素和 Vue 组件。 <div> 标签: 这是一个普通的 HTML 元素&#xff0c;包裹了 el-pagination 组件。它没有特别的意义&#xff0c;只是为了确保 el-pagi…

Electron教程1-初学入门

玩转Electron Electron 是什么注意事项环境安装安装 vscode安装 git 第一个实例第二个实例第二个实例解读 总结问题解答 Electron 是什么 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个…

C++小白实习日记——Day 5 gitee怎么删文件,测试文件怎么写循环

昨晚一直内耗&#xff0c;一个程序写了三天写不出来&#xff0c;主要是耗时太多了&#xff0c;老板一直不满意。想在VScode上跑一下&#xff0c;昨晚一直报错。今天来公司重新搞了一下&#xff0c; 主要工作有&#xff1a; 1&#xff0c;读取当前时间用tscns 2&#xff0c;输…

036集——查询CAD图元属性字段信息:窗体显示(CAD—C#二次开发入门)

提取CAD图元所有属性字段&#xff0c;通过窗体显示&#xff0c;效果如下&#xff1a;&#xff08;curve改为entity&#xff09; 代码如下&#xff1a; public void 属性查询() {List<Curve> ents Z.db.SelectEntities<Curve>();if (ents is null ||ents.Cou…