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. 基于MVC4+EasyUI的Web开发框架形成之旅(7)--权限控制

    我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大概介绍了基于MVC的Web开发框架的权限控制总体思路.其中的权限控制就是分为“用户登录身份验证” ...

  2. SQL Server 数值四舍五入,小数点后保留2位

    1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位. 2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后 ...

  3. Feign 使用入门

    Feign 的目的是简化 Web Service 客户端的开发,在使用 Feign 时,使用注解来修饰接口,被注解修饰的接口具有访问 Web Service 的能力,包括 Feign 自带的注解,也支 ...

  4. Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(6)

    Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis>(6) 1.创建工程与开启GUI 2.调试 查看关于 ...

  5. linux环境下python的pdb调试方法

    一些常用指令: h(elp) [comman]  #打印可用指令及帮助信息 r(eturn)  #运行代码直到下一个断点或当前函数返回 b(reak) [[filename:]lineno | fun ...

  6. msp430学习笔记-TA

    定时器,CCR2,CCR1三者共用一个中断向量 定时器A是一个16位的定时/计数器.它有3个捕获/比较寄存器:能支持多个时序控制.多个捕获/比较功能和多个PWM输出:有广泛的中断功能,中断可由计数器溢 ...

  7. Flask--四种请求钩子函数

    请求钩子函数:请求前,请求后需要做的处理 @app.before_first_request-在第一次请求之前执行 @app.before_request-在每一次请求之前执行 @app.after_ ...

  8. 三星GT-N8010刷机教程

    本刷机教程只针对三星GT-N8010机器(以下简称GT-N8010),以下操作本人已在GT-N8010机器上亲测,且都成功,其它机器没有测试不能保证成功. 刷机有风险,请谨慎使用!请先备份资料和信息. ...

  9. 筛选法求n以内所有的素数

    求n以内所有的素数? 筛选法:将2到n中所有的数都列出来,然后从2开始,先化掉所有2的倍数,然后每次从下一个剩下的数(必然是素数)开始,划掉其内所有的倍数,最后剩下来的数就都是素数 例:13  红色为 ...

  10. flume-sink

    概述 从Flume Agent移除数据并写入到另一个Agent或数据存储或一些其他存储系统的组件被称为sink.Sink不断的轮询channel中的事件且批量的移除它们.这些事件批量写入到存储或索引系 ...