ER图详解及实例_er图例子

ER图详解及实例_er图例子文章目录ER图基本概念ER图实例ER图基本概念ER图分为实体、属性、关系三个核心部分。在ER图中,实体是长方形,属性是椭圆形,关系为菱形。实体(entity):即数据模型中的数据对象(即数据表),用长方体来表示,每个实体都有自己的实体成员(entitymember)或者说实体对象(entityinstance),例如学生实体里包括张三、李四等。实体还会细分为弱实体和复合实体,一个实体…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

ER图基本概念

ER图分为实体、属性、关系三个核心部分。在ER图中,实体是长方形,属性是椭圆形,关系为菱形。
实体(entity):
即数据模型中的数据对象(即数据表),用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等。
实体还会细分为弱实体和复合实体,一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体。
弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形。
复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系,它由每个关联实体的主码组成,用长方体内加一个菱形来表示。

属性(attribute):
即实体所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。
ER图的属性还细分为复合属性、多值属性和派生属性、可选属性,同时还有用来表示联系的属性,称为联系属性。

  • 复合属性是指具有多个属性的组合,例如名字属性,它可以包含姓氏属性和名字属性。复合属性也有唯一属性,例如学生的所在班级属性,由于多个年级都有班级,所以单单班级属性是不唯一的,但是和年级组成的复合属性后则可以匹配成唯一属性。
  • 多值属性:一个实体的某个属性可以有多个不同的取值,称为多值属性。例如一本书的分类属性,这本书有多个分类。
  • 派生属性:是非永久性存于数据库的属性。派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示。
  • 可选属性:并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性,在椭圆的文字后用(O)来表示。
  • 联系属性:联系属于用户表示多个实体之间联系所具有的属性,一般来讲M:N的两个实体的联系具有联系属性,在1:1和1:M的实体联系中联系属性并不必要。

关系(relationship):
用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。
关联关系有三种:

  • 1对1(1:1):指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。
  • 1对多(1:N):1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。
  • 多对多(M:N):多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

ER图实例

假设教学管理规定:
一个学生可选修多门课,一门课有若干学生选修;
一个教师可讲授多门课,一门课只有一个教师讲授;
一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。

要求:根据上述语义画出ER 图,要求在图中画出实体的属性并注明联系的类型。
在这里插入图片描述

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用python图像处理_python图像处理库

    用python图像处理_python图像处理库第1章图像处理入门1.1什么是图像处理及图像处理的应用1.1.1什么是图像以及图像是如何存储的1.1.2什么是图像处理1.1.3图像处理的应用1.2图像处理流程1.3在Python中安装不同的图像处理库1.3.1安装pip1.3.2在Python中安装图像处理库1.3.3安装Anaconda发行版1.3.4安装Jupyter笔记本1.4使用Pytho…

    2022年8月31日
    1
  • 将JSON数组转化为List集合[通俗易懂]

    将JSON数组转化为List集合[通俗易懂]假如我们向redis中存放了一个JSON数组,从中获取的时候需要将JSON数组转化为List集合,然后将List对象返回给前端。1.引入hutool和fastjson依赖<!–hutool–><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId&gt

    2022年6月29日
    129
  • go mod 在使用私有gitlab时“go-get=1”错误解决

    go mod 在使用私有gitlab时“go-get=1”错误解决

    2021年6月21日
    230
  • hadoop入门教程列表

    hadoop入门教程列表最近也在看hadoop,搜集了一些入门的教程。感觉不错。写在这里分享下。1、从安装到实例以及基本的原理都有涉及:虾虾皮hadoop系列入门。2、一份不错的单节点hadoop搭建环境以及运行WordCount的教程:running-hadoop-on-ubuntu-linux-single-node-cluster 。3、Eclipse远程编译运

    2022年6月9日
    28
  • Shared MLP的作用是什么

    Shared MLP的作用是什么MLP是多层感知机的简写,在三维点云处理网络中经常能看到一层SharedMLP.MLP的结构可以简单看成:Output=Input×Weights+biases其中:Input:N×C1Weights:C1×C2biases:C2×1Output:N×C2Input一共N行,每行C1个Feature,MLP能够实现将C1维转换为C2维。这C2维中每一维都整合了原来全部C1维的信…

    2022年6月21日
    41
  • pycharm和anaconda区别_python init

    pycharm和anaconda区别_python initIcurrentlyhavePycharm5.0.4rightnowandmyteacherwantsmetochangetoAnaconda.DodifferentGUIsactuallyaffectyourprogramming?WhatarelibrariesandwhatcausesoneGUItobemoreadvanced…

    2022年8月25日
    5

发表回复

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

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