数据库:实体关系图(ER图)
1,组成元素
元素 描述 表示形似 实体 客观存在并可以相互区别的事物 用矩形框,矩形框内写明实体名 属性 实体所具有的一个属性 用椭圆型表示,并用无向边将其与相应的实体连接起来 关系 实体和实体之间以及实体内部的关系 用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁边标上联系的类型
2,关系详解
一对一:一对一关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。
一对多:一对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。
多对多:多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。
3,实例详解
问题描述:
- 一个学生可选修多门课,一门课有若干学生选修;
- 一个教师可讲授多门课,一门课只有一个教师讲授;
- 一个学生选修一门课,仅有一个成绩。
- 学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
ER图:
4,ER图的集成
确定公共实体类型:一般仅根据实体型名称和主键来认定公共实体型,即把同名实体型作为一个候选的公共实体型或把具有相同主键的实体型也作为一个候选的公共实体型。
合并分ER图:采用逐步合并的方式,首先将两个具有公共实体型的分E-R图进行合并,然后每次将一个新的、与前面已合并的E-R图具有公共实体型的分ER图合并起来……,这样即可最终获得全局的初步E-R图。
检查并消除冲突:各个局部应用所面向的问题不同,各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。冲突类型:属性冲突、命名冲突、结构冲突。
属性冲突 属性域冲突,即属性值的类型、取值范围或取值集合不同。 零件号,有的部门把它定义为整数,有的部门把它定义为字符型。 属性取值单位冲突。 零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。 解决办法 通过讨论、协商等行政手段加以解决。 命名冲突 同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。 对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。 异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。 通过讨论、协商等行政手段加以解决 结构冲突 同一对象在不同应用中具有不同的抽象。 职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。 把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象 同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。 实体E1在ER1中三个属性,在ER2中四个属性。 使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序。 实体间的联系在不同的E-R图中为不同的类型。 实体E1与E2在一个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中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。
例如:部门和职工之间有一个一对一的 “领导”联系和一个一对多的“属于”联系 , 其“属于”联系表示为: 职工号→部门号。而其“领导”联系则应表示为:负责人.职工号→部门号 或 部门号→负责人.职工号。
数据库:实体关系图(ER图)相关推荐
- mysql _外键、实体关系与ER图
外键约束概念: A实体的某个字段指向 B实体的主键, 则称A实体的那个字段为该实体的外键, 一个表里可以有多个外键drop table if exists class;create table cla ...
- 实体关系图(ER图)
实体关系图也是设计数据库的关键问题,同时开发工程师也需要理解系统设计人员发布的ER图.是开发不可避免并经常用到的问题.所以加以论述.而本章使用的Microsoft SQL Server2000.由于其 ...
- 实体关系图E-R图(Entity Relationship Diagram)
1.什么是E-R图 E-R图即实体-联系图(Entity Relationship Diagram),是指提供了表示实体型.属性和联系的方法,用来描述现实世界的概念模型.E-R方法:是"实体 ...
- 实体关系 (ER) 图的几种不同风格的符号
什么是 ER 图? 实体关系 (ER) 图是一种流程图,用于说明"实体"(如人.对象或概念)如何在系统中相互关联.ER 图最常用于设计或调试软件工程.商业信息系统.教育和研究领域的 ...
- 如何用Visio画数据库实体关系图
在百度经验中浏览:http://jingyan.baidu.com/article/e4511cf3374a862b855eaf58.html 在设计数据库表结构时,通常都是先画数据库实体关系图,这样 ...
- 数据库与计算机辅助设计ER图,ER图对象联系图和UML类图
ER图对象联系图和UML类图 ER图.对象联系图和UML类图 0124086 梁斌 一. 引言 从文件系统到数据库系统,标志着数据管理技术在质上的飞跃.数据库系统的出现使信息系统的研制中心从加工数据的 ...
- AI:人工智能领域主要方向(技术和应用)、与机器学习/深度学习的关系、数据科学关键技术与知识发现/数据挖掘/统计学/模式识别/神经计算学/数据库的关系(几张图理清之间的暧昧关系)
AI:人工智能领域主要方向(技术和应用).与机器学习/深度学习的关系.数据科学关键技术与知识发现/数据挖掘/统计学/模式识别/神经计算学/数据库的关系(几张图理清之间的暧昧关系) 目录 人工智能主要领 ...
- 【ER图】数据库实体关系图
ER图(Entity-Relationship Diagram)是一种图形化的数据建模工具,用于描述实体之间的关系,是数据库设计的重要工具.主要分为以下两种类型: 1. 概念型ER图:常用于数据库设计 ...
- 数据库关系建模(ER图设计关系表)
目录 一.概述 二.基本概念 1. 关系(relation) 2. 列(column) 3. 行(row) 4. 关系表 VS 一般的表 5. 主码(主键primary key) 6. 实体完整性约束 ...
- 数据库实体关系图(ERD)及其画法
文章目录 1. 什么是ER图? 2. 什么时候画ER图? 2.1. 数据库设计 2.2. 数据库调试 2.3. 数据库创建和补丁 2.4. 帮助收集需求 3. ERD符号指南 4. 概念.逻辑和物理数 ...
最新文章
- 工厂方法模式(Factory Method)
- Cisco路由器的口令恢復
- python操作mysql(四)
- java替换数组中的元素_如何使用Java 8流快速替换列表中的元素
- Beam概念学习系列之Pipeline Runners
- 数据库高级知识——查询截取分析(一)
- android 3.x,Android Studio3.x的坑(三)
- 【华为云技术分享】如何用交互式特征工程工具进行数据分析处理
- mysql select 进阶_MySQL进阶_SELECT篇(一)
- zabbix3.0.3-源码安装
- vcpkg安装_以太坊2.0客户端(Prysm,lighthouse)安装体验
- java坦克加快速度_Java坦克大战 (三) 之可完全控制坦克朝八个方向运动
- loadrunner教程系列
- 苹果硅:Wintel的过去
- 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因?
- 基于javaEE的超市库存管理系统
- 微服务 —— ThoughtWorks首席科学家的早期文章
- android利用多线程加载图片【不使用第三方库】
- python的matplotlib风格_Python可视化|matplotlib04-绘图风格(plt.style)大全
- 财经365零基础学投资:用江恩展望下半年股市