数据库:实体关系图(ER图)「建议收藏」

数据库:实体关系图(ER图)「建议收藏」1,组成元素元素 描述 表示形似 实体 客观存在并可以相互区别的事物 用矩形框,矩形框内写明实体名 属性 实体所具有的一个属性 用椭圆型表示,并用无向边将其与相应的实体连接起来 关系 实体和实体之间以及实体内部的关系 用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来, 同时在无向边旁边标上联系的类型 2,关系详解一,一对一一对一关系是指对于实体集A与实体集B,A中的每一个实体至多与B中

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

1,组成元素

元素 描述 表示形似
实体 客观存在并可以相互区别的事物 用矩形框,矩形框内写明实体名
属性 实体所具有的一个属性 用椭圆型表示,并用无向边将其与相应的实体连接起来
关系 实体和实体之间以及实体内部的关系 用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁边标上联系的类型

2,关系详解

一对一:一对一关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

数据库:实体关系图(ER图)「建议收藏」

一对多:一对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

数据库:实体关系图(ER图)「建议收藏」

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

数据库:实体关系图(ER图)「建议收藏」

3,实例详解

问题描述:

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

ER图:

数据库:实体关系图(ER图)「建议收藏」

4,ER图的集成

确定公共实体类型:一般仅根据实体型名称和主键来认定公共实体型,即把同名实体型作为一个候选的公共实体型或把具有相同主键的实体型也作为一个候选的公共实体型。

合并分ER图:采用逐步合并的方式,首先将两个具有公共实体型的分E-R图进行合并,然后每次将一个新的、与前面已合并的E-R图具有公共实体型的分ER图合并起来……这样即可最终获得全局的初步E-R图。

检查并消除冲突:各个局部应用所面向的问题不同,各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。冲突类型:属性冲突、命名冲突、结构冲突。

属性冲突 属性域冲突,即属性值的类型、取值范围或取值集合不同 零件号,有的部门把它定义为整数,有的部门把它定义为字符型。
属性取值单位冲突 零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位
解决办法 通过讨论、协商等行政手段加以解决。
命名冲突 同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。 对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
通过讨论、协商等行政手段加以解决
结构冲突 同一对象在不同应用中具有不同的抽象 职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性
把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象
一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。 实体E1在ER1中三个属性,在ER2中四个属性。
使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序。
实体间的联系在不同的E-R图中为不同的类型。 实体E1E2在一个E-R图中是多对多联系,在另一个E-R图中是一对多联系
是根据应用的语义对实体联系的类型进行综合或调整。

5,ER图的优化

所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。

(1)实体型的合并,以减少实体类型的个数:合并不是指前面的“公共实体型”的分E-R图的合并, 而是指两个有联系的实体型的合并。

例如:两个具有1:1联系的实体型通常可以合并成一个实体型。

对于具有相同主键的两个实体型, 如果经常需要同时处理它们, 则也可以将它们合并, 但可能产生大量的空值。

(2)尽可能消除实体中的冗余属性:通常在各个分E-R图中是不允许冗余属性存在的, 但在合并为全局的初步E-R图以后, 可能产生全局范围的冗余属性。

例如:在某大学的数据库设计中, 一个分E-R图中可能有已毕业学生数、招生数、在校学生数和即将毕业的学生数,而另一个分E-R图中可能有毕业学生数、招生数、各年级在校学生数和即将毕业学生数,则这两个分E-R图自身都没有冗余,但合并为一个全局E-R图时,“在校学生数”就成为冗余属性,因此可以考虑将其删除。

(3)尽可能消除冗余的联系:除分析的方法外, 还可应用规范化理论来发现和消除冗余的联系。

确定分E-R图实体之间的数据依赖。实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。于是有函数依赖集FL

求FL的最小覆盖GL,差集为 D=FL-GL。逐一考察D中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。

例如:部门和职工之间有一个一对一的 “领导”联系和一个一对多的“属于”联系 , 其“属于”联系表示为:  职工号→部门号。而其“领导”联系则应表示为:负责人.职工号→部门号  或  部门号→负责人.职工号。

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

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

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


相关推荐

  • SPI协议简单介绍

    SPI协议简单介绍导言SPI是串行扩展总线。串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时系统的更改和扩充极为容易。常用的串行扩展总线有:I2C(InterICBus)总线、单总线(1-WIREBUS)、SPI(SerialPeripheralInterface)总线及Microwire/PLUS等。一、SPI协议SPI总线是微控制器四线的外部总线。SPI没有明文标准,是一种事实总线,对通信操作的实现由芯片厂商和驱动开发者通过datasheet和applicat..

    2022年10月15日
    1
  • mysql的建表语句_mysql如何查询建表语句

    mysql的建表语句_mysql如何查询建表语句mysql建表语句mysql安装教程见博客:MySQL7.7.25图文安装教程(Win10)本篇博客以学生表、课程表以及学生-课程表为例,讲解mysql常用的建表语句。1.学生表Sno(学号)Sname(姓名)Sex(性别)Sage(年龄)Sdept(系)201215121李勇男20CS201215122刘晨女19CS201215…

    2022年9月8日
    0
  • lvm扩容磁盘空间[通俗易懂]

    lvm扩容磁盘空间[通俗易懂]1lvm的基本概念物理卷pv:指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数卷组vg:类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)逻辑卷lv:类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等2LVM能作什么?答:linux的系统..

    2022年6月20日
    43
  • SQLite可视化管理工具汇总

    SQLite可视化管理工具汇总搜集了一些SQLite工具,在这里做个总结,有的工具用的多一些,有的只是简单试用,甚至未试用,所以有描述不当的还请回复指正,也欢迎补充完善!【免费且保持更新】1、SQLiteSpy免费单文件http://www.yunqa.de/delphi/doku.php/products/sqlitespy/截至2012/9/14最新版本SQLiteSpy1.9.1–28Ju

    2022年6月25日
    25
  • MATLAB GUI的运行原理理解

    MATLAB GUI的运行原理理解MATLABGUI原理的一些个人理解

    2022年5月20日
    29
  • ac测评题库_awing

    ac测评题库_awing杭州人称那些傻乎乎粘嗒嗒的人为 62(音:laoer)。杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有 4 或 62 的号码。例如:62315,73418,88914 都属于不吉利号码。但是,61152 虽然含有 6 和 2,但不是 连号,所以不属于不吉利数字之列。你的任务是,对于每次给出的一个牌照号区间 [n,m],推断出交管局今后又要实际上给多少辆新的士车上牌

    2022年8月9日
    1

发表回复

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

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