ER模型(实体联系模型)的基本元素

实体:是一个数据对象,在ER模型中,实体用方框表示,方框内注明实体的名称

联系:表示一个或多个实体之间的关联关系,联系用菱形框表示,并用线段将其与相关的实体联系起来

属性:实体的某一特性称为属性,属性用椭圆形框表示,加下划线的的属性为标识符,在一个实体中,能唯一标识实体的属性或属性集称为“实体标识符”

属性的分类

简单属性:不可再分割的属性,如性别、年龄等

复合属性:可再分解为其他是属性的属性,如省市名称

单值属性:同一实体的属性只能取一个值,如同一学生的年龄为单值属性

多值属性:同一实体的某些属性可能取多个值,如一个人的学位就是多值属性,多值属性用双线椭圆形表示

存储属性:派生属性的值不必存储在数据库中,而其他需要存储值的属性称为存储属性

派生属性:可以从其他属性值推导出来的属性,派生属性的值不必存储在数据库内,派生属性用虚线椭圆形与实体相连

允许为空值的属性:当实体在某个属性上没有值时应使用空值

联系的设计

联系的元数:一个联系涉及到的实体集个数,称为该联系的元数或度数

联系类型的约束:

  1、基数约束:实体集E1和E2之间有二元联系,则参与一个联系中实体数目称为映射基数,对于一个二元联系类型,可能的映射基数有1:1、1:N、M:N、M:1四种,在具体实现时,有时我们队映射基数还要做出更精确的描述,即对参与联系的实体数目指明相关的最小映射基数min和最大映射基数max,用范围“min,max”的方式表达

  2、完全参与:如果实体集E中每一个实体都参与联系集R的至少一个联系中,我们称实体集E“完全参与实体集R”,完全参与用双线边表示

  3、部分参与:如果实体集E中只有部分参与联系集R的联系中,我们称实体集E部分参与实体集R,部分参与哟弄单线边表达

ER模型的操作

对ER模型的操作包括实体类型、联系类型和属性的分裂、合并、增删等等

水平分裂:如把教师分为男教师和女教师

垂直分裂:把固定不变的属性组成另一个实体类型,在垂直分裂中,键必须在分裂后的诸实体类型中出现

合并:是分裂的逆过程,必须注意,合并的联系类型必须是定义在相同的实体类型组合中

采用ER模型的数据库概念设计步骤

分为三步:首先设计局部ER模型,然后把各局部ER模型综合成一个全局ER模型,最后对全局ER模型进行优化,得到最终的ER模型,即概念模型

设计局部ER模型

  1、确定局部ER模型

  2、定义实体

  3、定义联系(通常采用某个动词命名)

  4、分配属性(属性应该是不可再分解的语义单位)

设计全局ER模型(视图集成)

  1、确定公共实体类型(我们仅根据实体类型名和键来认定公共实体类型)

  2、合并局部ER模型(首先进行两两合并,先合并那些现实世界中有联系的局部结构,合并从公共类型开始,最后再加入独立的局部结构)

  3、消除冲突(属性冲突、结构冲突和命名冲突)

全局ER模型的优化

  1、合并实体类型

  2、消除冗余属性

  3、消除冗余联系

数据库设计和ER模型-------之ER模型的基本概念(第二章)的更多相关文章

  1. 数据库系统(四)---关系型数据库设计及E-R图

    1.关系型数据库: 关系型数据库是一类采用关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析.概念结构设计.逻辑结构设计.物理结构设计.数据库实施.数据库的运行和维护等阶段 ...

  2. SQL SERVER学习2——数据库设计

    数据库设计是数据库知识中比较重要的部分,我们需要了解数据库设计的基本步骤,E-R图的画法. 数据库设计的基本概述 检验一个数据库设计好坏的标准就是,看他是否能够方便的执行各种数据检索和处理操作,并且有 ...

  3. day39 python 学习 数据库学习 五个约束,数据库设计(一对一,一对多等等)

    删除重复数据:  注意数据库不能又查又删 *******#删除作者为重复数据并保留ID最大的是数据 delete from ren where author in (select * from(sel ...

  4. 数据库设计与 ER 模型 - 数据库系统原理

    数据库系统生存周期 数据库应用系统的开发是一项软件工程,一般具有信息的采集.组织.加工.抽取.综合.传播等功能,但又有自己的特点,所以称为 数据库工程. 数据库应用系统从开始规划.设计.实现.维护到最 ...

  5. 基于E-R模型的关系型数据库设计方法

    摘要 在管理信息系统开发中,数据库设计的目标是建立DBMS能识别的关系数据模型.而关系数据模型建立的基础是首先建立E-R模型,通过E-R模型才能转换为关系数据模型.如何建立E-R模型以及如何将E-R模 ...

  6. MySQL数据分析-(5)数据库设计之ER模型

    大家好,我是jacky,很高兴跟大家分享本课时的内容,从本节课开始,就开始了我们第二章的学习,第一章我们抛出了若干问题,从第二章开始往后,都是解决问题的一个过程: 第一章的案例中,我们拿手机销售公司举 ...

  7. 数据库设计和ER模型-------之关系模型的基本概念(第二章)

    关系模型的基本术语 定义:用二维表格来表示实体集,用关键码表示实体之间联系的数据模型称为关系模型 有时也习惯称呼关系为表或表格,元组为行(Row),属性为列.关系中属性个数称为“元数”,元组个数称为“ ...

  8. 数据库设计和ER模型-------之数据库系统生存期(第二章)

    数据库设计 概念:开发人员利用开发环境表达用户要求.设计构造最优的数据模型,然后据此建立数据库以及其应用系统,这个过程称为数据库设计 数据库生存期 1968年首次提出“软件工程”的概念 概念:我们把数 ...

  9. 数据库原理 第七章 数据库设计和ER模型

    第七章讲述一个E-R设计如何转换成一个关系模式的集合以及如何在该设计中找到某些约束. 1.概念设计定义了数据库中表示的实体.实体的属性.实体之间的联系,以及实体和联系上的约束 在设计一个数据库模型的时 ...

  10. 2017(2)数据库设计,数据库设计过程,ER模型,规范化理论

    试题二(共 25 分〉 阅读以下关于系统数据分析与建模的叙述,在答题纸上回答问题1 至问题 3. [说明] 某软件公司受快递公司委托,拟开发一套快递业务综合管理系统,实现快递单和物流信息的综合管理.项 ...

随机推荐

  1. JDK1.8中如何用ScriptEngine动态执行JS

    JDK1.8中如何用ScriptEngine动态执行JS jdk1.6开始就提供了动态脚本语言诸如JavaScript动态的支持.这无疑是一个很好的功能,毕竟Java的语法不是适合成为动态语言.而JD ...

  2. 分布式超级账本Hyperledger里zookeeper的作用

    Zookeeper是一种在分布式系统中被广泛用来作为:分布式状态管理.分布式协调管理.分布式配置管理.和分布式锁服务的集群.kafka增加和减少服务器都会在Zookeeper节点上触发相应的事件kaf ...

  3. XBOX360

    [汇总+分享]XBOX360多人游戏汇总贴https://tieba.baidu.com/p/3550398060?pn=13&red_tag=3423139816&traceid= ...

  4. Winform 实现无边框窗体移动功能

    #region 窗体移动 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImp ...

  5. SQL判断某列中是否包含中文字符或者英文字符

    SQL判断某列中是否包含中文字符或者英文字符   [sql]  select * from 表名 where 某列 like '%[吖-座]%'     select * from 表名 where ...

  6. spring 整合Junit学习

    测试一般是测试的局部功能,使用时需要自己写个测试相关的spring配置文件,比较费劲,所以常用的是纯配置的方式来实现测试. @RunWith(SpringJUnit4ClassRunner.class ...

  7. [Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列

    为easyui的datagrid.treegrid增加表头菜单,用于显示或隐藏列 /** * @author 孙宇 * * @requires jQuery,EasyUI * * 为datagrid. ...

  8. 父级元素position:absolute,子节点也是absolute

    当父级属性position是absolute,子节点也是absolute的时候,子节点是相对父级absolute的,举个例子 <div class="headManage"& ...

  9. MySQL学习----多版本并发mvcc

    MySQL中的大多数事务性存储引擎实现的都不是简单的行级锁.基于提升并发性能的考虑,他们一般实现了多版本并发控制(mvcc).不仅是mysql,包括oracle,postgresql等其他数据库也实现 ...

  10. [UE4]Canvas Panel

    一.Canvas Panel:画布.Canvas Panel中内的元素可以任何摆放位置.Canvas Panel是UserWiget默认的根节点容器,可以把跟节点删除替换生成任何的UI元素. 二.选择 ...