概念数据模型(E-R模型)

2023-10-27

概念数据模型(E-R模型)

概念数据模型是现实世界第一层次的抽象,是数据库设计人员和用户交流的工具,因此要求概念数据模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面应该简单、直观和清晰,能为不具备专业知识或者专业知识较少的用户所理解。

概念数据模型的表示方法很多,其中最常用的是P.P.S. Chen于1976年提出的实体-联系方法(Entity Relationship Approach),简称E-R方法或E-R模型。E-R模型用E-R图来抽象表示现实世界中客观事物及其联系的数据特征,是一种语义表达能力强、易于理解的概念数据模型。

E-R模型常用术语

实体(Entity)

现实世界中客观存在并可以相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念。实体概念的关键之处在于一个实体能够与另一个实体相互区别。

属性(Attribute)

实体通常具有若干个特征,每一个特征称为实体的一个属性。例如,一个学生实体有学号、姓名、性别、年龄、班级等属性。属性不能脱离实体,属性必须相对实体而存在,它表达了实体某个特定方面的特征。属性的名称称为属性名,同一类型的实体的属性一般采用相同的属性名。属性的具体取值称为属性值,用以刻画一个具体的实体,实体的属性值是数据库中存储的主要数据。

键(Key)

能唯一标识每个实体的属性或属性组,称为实体的键,简称键,有时也称为实体标识符、关键字、关键码、码。也就是主键

域(Relation)

属性的可能取值范围称为属性的域。

实体集(Entity Set)

同一类型实体的集合称为实体集。

例如,全体学生是一个实体集。

在同一个实体集中,每个实体的属性名和属性的域是相同的,但部分属性的值却不相同。不同实体集可以相交。

例如,某些教师在本校在职攻读博士学位,那么他们既是教师身份,也是学生身份,说明学生实体集和教师实体集是相交的。

实体型(Entity type)

在数据模型中,型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。实体型也称实体类型,是指用实体名和属性名对某一类实体的抽象和刻画。如果属性是实体型的键,在属性名下用下划线标明。

例如,学生(学号,姓名,性别,出生年月,班级,入学年月)就是一个实体型。实体型是实体集抽象化和结构化的结果,一个具体的实体是其实体型的实例,是其实体型的赋值。为了叙述的方便,在不引起混淆的情况下,有时把实体型简称为实体。

联系(Relation)

在现实世界中,事物内部以及事物之间通常存在一定的联系,这些联系在信息世界中反映为实体(型)内部各实体之间的联系和不同实体(型)之间的联系。联系也可能具有属性,用来描述联系的特征。

例如顾客实体和商品实体之间存在“购买”联系,“购买”联系具有购买数量、购买日期等属性。

实体、属性和联系称为E-R模型三要素。

E-R模型的表示—E-R图

E-R图是E-R模型的直观表示形式,是用来表示现实世界中客观事物及其联系的一种信息结构图。E-R图提供了表示实体型、属性和联系的方法

实体型:用矩形框表示,框内写明实体名。

属性:用椭圆形框表示,框内写明属性名,并用无向边将其与相应的实体型或联系连接起来。如果属性是实体型的键,在属性名下用下划线标明。

联系:用菱形框表示,框内写明联系名,并用无向边分别与发生联系的实体型连接起来,同时在无向边上标明联系的类型(如1 : 1、1 : n、m : n、1​ : m : n等)。

E-R图的设计步骤

  1. 确定实体型及其属性
  2. 确定实体型之间的联系及联系的属性
  3. 画E-R图

实体型的联系类型

两个实体型之间的联系

一对一联系(1 : 1)

如果实体集A中的每个实体至多与实体集B中的一个实体有联系,反之亦然,则称实体集A与实体集B具有—对一联系,记为1 : 1。

例如,教室的座位与学生之间具有一对一的联系,一个学生只能坐一个座位,而一个座位只能由一个学生来坐。

在这里插入图片描述

—对多联系(1 : n)

如果实体集A中的每个实体与实体集B中n(n≥0)个实体有联系,而实体集B中每个实体至多与实体集A中的一个实体有联系,则称实体集A与实体集B具有—对多联系,记为1 : n。

例如,人与手机号之间具有一对多联系,一个人可以购买多手机号,而每个手机号只能为一个人所拥有。

在这里插入图片描述

在这里插入图片描述

多对多联系(m : n)

如果实体集A中的每个实体与实体集B中n (n≥0)个实体有联系,而实体集B中的每个实体与实体集A中m (m≥0)个实体有联系,则称实体集A与实体集B具有多对多联系,记为m : n。

例如,学生与课程之间具有多对多联系,一个学生可选多门课程,而一门课程可由多个学生选。

在这里插入图片描述

多个实体型之间的联系

n多个(三个或三个以上)实体型之间的联系也称多元联系,与二元联系类似,也存在一对一、一对多、多对多等联系类型。

例如:对于商店、服务员与忠实顾客三个实体型,一家商店可以有多位忠实顾客、聘用多名服务员,一名服务员只能受聘于一家商店、工作时为多位忠实顾客服务,一位忠实顾客只在一家商店购买所需物品、在购物过程中接受多名服务员提供的服务,因此商店与服务员、忠实顾客之间是一对多联系,记为1​ : m : ​n。

在这里插入图片描述

例如:对于供货商、商店、商品三个实体型,一位供货商可以供给多家商店多种商品,一家商店可以销售多位供货商供给的商品,每种商品可由多家供货商供给,因此供货商、商店、商品之间是多对多联系,记为m : n : p。

在这里插入图片描述

单个实体型内的联系类型

n单个实体型内的联系也称一元联系,在同一个实体集内各实体之间的联系也可存在一对一、一对多、多对多等联系类型。

例如,对于职工实体型来说,一个职工至多只能与其中一个职工结婚,这种结婚联系是一对一联系,如图(a)所示;一个职工可以领导若干名职工,而一个职工只能被另一个职工直接领导,这种“领导”联系是一对多联系,如图(b)所示。又如,对于零件实体型,一个零件可以由多个子零件组成,而一个零件又可以是多个零件的组成部分,这种“组成”联系是多对多联系,如图(c)所示。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

概念数据模型(E-R模型) 的相关文章

  • Docker之旅:在Docker容器中创建第一个程序

    Docker的概念 Docker是开发人员和系统管理员 使用容器开发 部署和运行应用程序的平台 使用Linux容器来部署应用程序称为集装箱化 容器不是新的事物 但它们用于轻松部署应用程序 一 测试一下Docker的版本 1 查看Docker

随机推荐

  • 实用工具推荐,浏览器必备宝藏插件:Wetab新标签页

    打开浏览器 你的起始页是否充满了广告和各种乱七八糟的信息呢 或者过于单调 而失去了某些你想要的功能 这里给大家推荐一个在Chrome浏览器和edge浏览器上都能愉快使用的浏览器插件 Wetab新标签页 没有广告 页面干净美观且具备各种实用功
  • android live 电视 源码,GitHub - mxiaoguang/LivePlayback: Android TV直播电视节目 ,包含各央视频道及卫视频道...

    Android TV直播电视节目 更多技术博客 项目 欢迎关注公众号 Android TV开发交流群 135622564 传统电视直播节目 在Android TV上起着越来越重要的作用 央视 各地卫视 满足观众日益增长的多元化需求 看下效果
  • IV转换电路原理图

    毫安级IV转换电路如下 如果要uA级转换 可把运放改为 D795 SG 8210 L C6482等输入偏置电流在pA级的运
  • tomcat配置443端口

  • true_type与false_type

    std true type和std false type 实际上是类型别名 是两个类型 类模板 注意区分true type与false type与true和false区别 true type false type代表类型 true fals
  • 【项目实战】Python基于局部离群因子LOF算法(LocalOutlierFactor)实现信用卡数据异常值检测项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 代码讲解 如需数据 代码 文档 代码讲解可以直接到文章最后获取 1 项目背景 异常检测是数据挖掘领域研究的基本问题之一 已被广泛应用于网络入侵检测 信用卡欺诈侦查等领域 局部离群因子 简
  • 以太坊客户端Geth命令用法-参数详解

    Geth是在以太坊智能合约开发中最常用的工具 必备开发工具 一个多用途的命令行工具 熟悉Geth可以让我们有更好的效率 大家可收藏起来作为Geth命令用法手册 本文主要是对geth help的翻译 基于最新的geth 1 7 3 stabl
  • sqlite3查看数据库中有哪些表(代码)

    说实话 用代码实现sqlite3查看数据库中有哪些表我还真的没找到现成资源 网上提供的语句还真用不了 而且大多都是命令行语句 由于的做的MFC项目要用到这个功能 特意学习了下 下面分享我的成果 希望可以帮到你 环境 VS2005 inclu
  • FPGA中值滤波实现并Modelsim仿真,与MATLAB中值滤波进行对比

    文章目录 一 中值滤波算法 二 FPGA实现中值滤波 2 1 3 3窗口的生成 2 2 排序模块 2 3中值滤波模块 2 4 整体RTL图 三 modeslim仿真 四 matlab中值滤波 五 效果对比 一 中值滤波算法 1 中值滤波算法
  • 解决wangEditor表格边框显示不出来、没有的问题

    仔细阅读文档 不过我一直找表格或者边框搜索 发现没有特定的栏目 所以忽略了 当然也有我不够仔细的原因 有点着急莽荒了 链接 在官网的这个页面 从官网贴下来的 把这段复制到想要的地方就可以了
  • 自定义表单控件 [(ngModel)]

    ngModel 拆分 ngModel 将 输入 输出组合起来 进行双向数据绑定 拆分开来 输入属性 ngModel ngModelChange 输出监听元素值的变化 并同步view value与model value
  • 头都给我找烂

    mysql5 6下载 https dev mysql com downloads file id 487425 win10添加本地用户和组 https blog csdn net qq 40151857 article details 89
  • 【Linux命令集】top命令的用法详解

    在使用linux系统中 我们最长用的查看系统性能的方式就是使用命令top 通知我们只关心总体的cpu和内存的使用情况 对其他的参数基本无视 也看不懂 下面来介绍一下top的详细参数的意义 top视图 进入top的基本视图 我们来结合这个视图
  • 电容选型及计算

    一 电容容值计算 1 电容整流波形分析 经过整流后三相电压整流为六脉波电压 电压波形如下图 上图中各时期充电过程如下 在t0 t3阶段是一个T 6周期 一个完整波头阶段 在t0 t1阶段 电容放电 给负载提供能量 此时输入电压小于电容电压
  • openEuler实验之A-Tune智能调优

    1 A Tune介绍 A Tune是一款基于AI开发的系统性能优化引擎 它利用人工智能技术 对业务场景建立精准的系统画像 感知并推理出业务特征 进而做出智能决策 匹配并推荐最佳的系统参数配置组合 使业务处于最佳运行状态 1 1 A Tune
  • redis docker安装、进入命令行后启动服务

    下载redis镜像 首先查看一下redis是否正确 docker search redis 显示 NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis Redis is an open source
  • 一文读懂工厂MES系统的详细功能介绍

    一 工单管理 MES通过工单来管理生产执行 工单状态有 创建 下达 执行 完成 取消 计划员创建工单 审核通过后释放到设备或产线 仓库可收到工单下达的通知 及时备料 产线只能看到已下达的工单 执行工单 完成后登记报工 将相关信息反馈回ERP
  • 网络编程——实现HTTP服务器端

    参考 TCP IP网络编程 尹圣雨 Web服务器端 概述 Web服务器端是 基于HTTP Hypertext Transfer Protocol 协议 将网页对应文件传输给客户端的服务器端 Hypertext 超文本 是可以根据客户端请求而
  • redis-----08-----redigo管道以及事务-管道

    1 Redis 管道 正常的情况下 redis是请求响应模式 一条请求后那么正常就会返回一个响应 例如上图 但是只存在这种情况是无法满足我们开发的需求的 所以redis给我们提供了管道 redis的管道 pipeline 相关特点 1 re
  • 概念数据模型(E-R模型)

    概念数据模型 E R模型 概念数据模型是现实世界第一层次的抽象 是数据库设计人员和用户交流的工具 因此要求概念数据模型一方面应该具有较强的语义表达能力 能够方便 直接地表达应用中的各种语义知识 另一方面应该简单 直观和清晰 能为不具备专业知