什么是ER图?数据库ER图基础概念整理

什么是ER图?数据库ER图基础概念整理前置知识概述:数据模型的基本概念模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。对于具体的模型人们并不陌生,如航模飞机、地图和建筑设计沙盘等都是具体的模型。最常用的数据模型分为概念数据模型和基本数据模型。1)概念数据模型概念数据模型也称为信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体联系模型,简称E-R模型。2)基本数据

大家好,又见面了,我是你们的朋友全栈君。

前置知识

概述:数据模型的基本概念

模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。对于具体的模型人们并不陌生,如航模飞机、地图和建筑设计沙盘等都是具体的模型。最常用的数据模型分为概念数据模型和基本数据模型。

1)概念数据模型

概念数据模型也称为信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体联系模型,简称E-R模型

2)基本数据模型

基本数据模型是按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现,不同的数据模型具有不同的数据结构形式,目前最常用的数据结构模型有层次 模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)和面向 对象数据模型(Objct Oriented Model)。其中,层次模型和网状模型统称为非关系模型。非关系模型的数据库系统在20世纪70年代非常流行,在数据库系统产品中占据了主导地位。

E-R模型(什么是E-R图)

    概念模型是对信息世界的建模。所以概念模型能够方便、准确地表示信息世界中的常用概念。概念模型有很多种表示方法,其中最常用的是 P.P.S.Chen 于 1976 年提出的 实体-联系 方法(Entity Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型(Entity-Relationship Model,E-R模型)

    E-R模型是软件工程设计中的一个重要方法,在数据库设计中,常用E-R模型来描述现实世界到信息世界的问题。因为它接近于人的思维方式,容易理解并且于计算机无关,所以用户容易接受,是用户和数据库设计人员交流的语言。但是, E-R模型只能说明实体间的语义联系,还不能进一步地详细说明数据结构。在解决实际应用问题时,通常应该先设计一个E-R模型,然后再将其转换成计算机能接受地数据模型。

E-R图中的主要构件:

什么是ER图?数据库ER图基础概念整理

 在E-R图中,实体集作为主码(或主键)的一部分属性名下面加 下画线 标明。另外,在实体集于联系的线段上标注联系的类型。

什么是ER图?数据库ER图基础概念整理

实体(Entity) 在E-R图中实体用矩形表示,通常在矩形框内写明实体名。实体是现实世界中可以区别于其他对象的“事件”或“物体”。例如,企业中每个人都是一个实体。每个实体由一组特性(属性)来表示,其中的某一部分属性可以唯一标识实体,如职工号。实体集是具有相同属性的实体集合,例如,学校所有教师具有相同属性,因此教师的集合可以定义为一个实体集,学生具有相同的属性,因此学生的集合可以定义为另一个实体集。

联系(Relationship) 在E-R模型中,联系用菱形表示。通常可在菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标注上联系的类型(1:1、1:* 或 *:* )。实体的联系分为实体内部的联系和实体与实体之间的联系。实体内部的联系反映数据在同一记录内部各字段间的联系。

1)两个不同实体之间的联系

两个实体之间的联系可分为3类:一对联系记为1:1,一对多联系记为1:*(或1:n),多对多联系记为  *:*(m:n)。

(1) 1:1。如果对于实体集A中的每一个实体, 实体集B中至多有一个实体与之对应;反之亦然,则称A与B具有一对一联系。

(2) 1:*。如果对于实体集A中的每一个实体, 实体集B中有n个实体(n≥0)与 之对应;反之, 对于实体集B中的每一个实体,实体集A中至多只有一个实体与之对应,则称A与B具有一对多联系。

(3) *:*。如果对于实体集A中的每一个实体, 实体集B中有n个实体(n≥0)与 之对应;反之,对于实体集B中的每一个实体,实体集A 中也有m个实体(m≥0)与之对应,则称A与B具有多对多联系。

什么是ER图?数据库ER图基础概念整理

2)两个以上不同实体集之间的联系

两个以上不同实体集之间存在 1:1:1、1:1:*、1:*:* 和 *:*:*的联系。

什么是ER图?数据库ER图基础概念整理

3)同一实体集内的二元联系

同一实体集内的各实体之间也存在 1:1、1:*和*:*的联系。

什么是ER图?数据库ER图基础概念整理

属性(attribute) 属性是实体某方面的特性。例如,职工实体集具有职工号、姓名、年龄、参加工作时间和通信地址等属性。每个属性都有其取值范围,如职工号为0001-9999的4位整型数,姓名为10位的字符串,年龄的取值范围为18-60等。在同一实体集中,每个实体的属性及其域是相同的,但可能取不同的值。E-R模型中的属性有如下分类。

1)简单属性和复合属性。

简单属性是原子的、不可再分的,复合属性可以细分为更小的部分(即划分为别的属性)。有时用户希望访问整个属性,有时希望访问属性的某个成分,那么在模式设计时可采用复合属性。例如,职工实体集的通信地址可以进一步分为邮编、省、市、街道。若不特别声明,通常指的是简单属性。

2)单值属性和多值属性。

前面所举的例子中,定义的属性对于一个特定的实体都只有单独的一个值。例如,对于一个特定的职工,只对应一个职工号、职工姓名,这样的属性叫作单值属性。但是,在某些特定情况下,一个属性可能对应一组值。例如,职工可能有0个、1个或多个亲属,那么职工的亲属的姓名可能有多个数目,这样的属性称为多值属性。

3) NULL属性。

当实体在某个属性上没有值或属性值未知时,使用NULL值。表示无意义或不知道。

4)派生属性。

派生属性可以从其他属性得来。例如,职工实体集中有“参加工作时间”和“工作年限”属性,那么“工作年限”的值可以由当前时间和参加工作时间得到。这里,“工作年限”就是一个派生属性。年龄可从身份证号中得出,因此年龄也属于派生属性。

扩充的 E-R 模型

    尽管基本的 E-R 模型是对大多数数据库特征建模,但数据库某些情况下的特殊语义,仅用基本的 E-R 模型无法表达清楚。所以引入了扩充的 E-R 模型,包括:弱实体、特殊化、概括和聚集等概念。

1)弱实体: 即一个实体的存在必须以另一个实体为背景,将这类实体称为弱实体。在扩展的 E-R 图中,弱实体用双边矩形表示。

什么是ER图?数据库ER图基础概念整理

 2)特殊化:某些实体在一方面具有一些共性,另一方面还具有各自的特殊性。

什么是ER图?数据库ER图基础概念整理

    这样,一个实体集可以按照某些特征区分为几个子实体。设有实体集E,如果 S 是 E 的某些真子集的集合,则称 S 是 E 的一个特殊化,E 是 S 的超类,S 是 E 的子类。图中,学生是超类,专科生、本科生和研究生是学生的子类。

    如果,所有子集 S1、S2、….、Sn的并集等于 E,则称 S 是 E 的全特殊化,否则是 E 的部分特殊化。

    如果,Si 与 Sj 的交集为空集,i ≠ j,则 S 是不相交特殊化,否则是重叠特殊化。

扩充 E-R 图中的主要构件:

什么是ER图?数据库ER图基础概念整理

.….部分内容来自《数据库系统工程师教程》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152018.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月21日 上午7:46
下一篇 2022年6月21日 上午7:46


相关推荐

  • Python安装教程:

    Python安装教程:Python安装教程:原文链接:www.dushunchang.topPython简介:菜鸟教程官方解释。Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python是交互式语言:这意味着,您可以在一个Python提示符

    2022年6月11日
    34
  • xp系统http服务器,WinXP HTTP500内部服务器错误的解决方法

    xp系统http服务器,WinXP HTTP500内部服务器错误的解决方法在系统造成500内部服务器错误有很多原因,而系统中出现的故障是用户最不想看到的,有时候就是因为这些故障让我们折腾个大半天才能够搞定。打开网站出现了HTTP500内部服务器错误的提示,这究竟是怎么一回事呢?下面我们就来说说WinXPHTTP500内部服务器错误的解决方法。具体解决方法如下:一、造成500错误常见原因有:ASP语法出错、ACCESS数据库连接语句出错、文件引用与包含路径出错、使用了服…

    2022年8月12日
    8
  • java ee eclipse使用教程(使用maven创建web项目)

    笔者开发javaee项目时惯用myeclipse,但由于个人笔记本性能较低,myeclipse对内存的消耗极大,所以考虑换成eclipse开发。本文介绍eclipse配置javaee开发环境的一些体会。配置tomcat与myeclipse配置tomcat的方式不同,eclipse需要先安装tomcat插件,再指定tomcat的路径。第一步:将解压后的zip文件置于eclipse/plugins目录…

    2022年4月10日
    132
  • AI智能体|扣子Coze实战教程:搭建Labubu小红书图文智能体

    AI智能体|扣子Coze实战教程:搭建Labubu小红书图文智能体

    2026年3月12日
    1
  • 设置CSS透明度的方法

    设置CSS透明度的方法一 cssrgba 设置颜色透明度语法 rgba R G B A RGBA 是代表 Red 红色 Green 绿色 Blue 蓝色 和 Alpha 不透明度 三个单词的缩写 RGBA 颜色值是 RGB 颜色值的扩展 带有一个 alpha 通道 它规定了对象的不透明度 rgba 里的值的介绍 R 红色值 正整数 0 255 G 绿色值 正整数 0 255 B 蓝色值 正整数 0 255 A 透明度 取值 0 1 之间 rgba 只是单纯的可以设置颜色透明度 这样在页面的布局中有很多应用 比如说 让背景

    2026年3月16日
    2
  • windows打开多个微信_win7怎么运行两个相同软件

    windows打开多个微信_win7怎么运行两个相同软件windows 打开多个微信

    2022年4月21日
    113

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号