E-R模型是软件设计中的一个重要工具,其主要概念有实体、联系和属性。
1.实体:是现实世界中可以区别于其他对象的“事件”或“物体”。
2.联系:实体的联系分为实体内部的联系和实体和实体之间的联系。实体内部的联系反映数据在同一记录内部各字段间的联系。实体集之间的联系包括:
1)两个不同实体之间的联系
一对一:指实体集E1中的一个实体最多只与实体集E2中一个实体相联系,记为1:1,如观众和座位
一对多:指实体集E1中的一个实体最多只与实体集E2中多个实体相联系,记为1:n,如部门和职工
多对多:指实体集E1中的多个实体最多只与实体集E2中多个实体相联系,记为m:n,如项目和职工
2)两个以上不同实体集之间的联系
两个以上不同实体集之间存在1:1:1,1:1:n,1:m:n和r:m:n的联系。
3.属性:是实体某方面的特性。例如职工实体集具有职工号、姓名、年龄、参加工作时间和通信地址等属性。每个属性都有其取值范围,如职工号为0001~9999的四位整型数,姓名为10位的字符串,年龄的取值范围为18~60等。在同一实体集中,每个实体的属性和值域是相同的,但可能取得不同的值。E-R模型中的属性有如下分类:
1)简单属性和复合属性。简单属性是原子的、不可再分的,复合属性可以再细分为更小的部分(即划分为别的属性)。有时用户希望访问整个属性,有时希望访问属性的某个部分,那么在模式设计是可采用复合属性。例如,职工实体集的通信地址可以进一步分为邮编、省、市、街道。
2)单值属性和多值属性。单值属性是指属性对于特定的一个实体都只有单独的一个值。例如,对于一个特定的职工,在系统中只对应一个职工号、职工姓名,这样的属性叫做单值属性。但是,在某些特定情况下,一个属性值可能对应一组值。例如,职工可能有0个、1个或多个亲属,那么职工亲属的姓名可能有多个,这样的属性成为多值属性。
3)NULL属性。当实体在某个属性上没有值或属性值未知时使用,表示无意义或不知道。
4)派生属性。派生属性可以由其他属性得来。例如,职工实体集中有“参加工作时间”和“工作年限”属性,那么“工作年限”的值可以由当前时间和参加工作时间得到。这里,“工作年限”就是一个派生属性。
-
概念模型-逻辑模型-物理模型之间的…
2015-12-15 23:19:501.概念模型的表示方法 E-R图主要是由实体、属性和联系三个要素构成的。在E-R图中,使用了下面四种基本的图形符号。 2.确定系统实体、属性及联系 系统分析阶段建立数据字典和数据流程图->建立 -
E-R模型
2019-09-26 14:32:19E-R模型是软件设计中的一个重要工具,其主要概念有实体、联系和属性。...实体集之间的联系包括: 1)两个不同实体之间的联系 一对一:指实体集E1中的一个实体最多只与实体集E2中一个实体相联系,记...转载于:https://www.cnblogs.com/emituofo/archive/2012/11/15/2772107.html
-
数据库设计和E-R模型
2018-07-30 21:17:47定义了数据库中表示的实体、实体的属性、实体之间的联系、以及实体和联系上的约束 从抽象数据到数据库实现的转换过程 逻辑设计阶段 实现数据模型通常是关系数据模型,该阶段通常包括将以实体-联系模型定义的...数据库设计和E-R模型
概念设计
定义了数据库中表示的实体、实体的属性、实体之间的联系、以及实体和联系上的约束
从抽象数据到数据库实现的转换过程
逻辑设计阶段
实现数据模型通常是关系数据模型,该阶段通常包括将以实体-联系模型定义的概念模式映射到关系模式
物理设计阶段
指明数据库的物理特征,包括文件组织格式和索引结构的选择
设计选择
在设计数据库模式的时候需要避免的两个主要的缺陷:
冗余(根本原因是可能会导致数据的不一致)和不完整实体-联系模型
三个基本概念:实体集、联系集和属性
参与:实体集之间的关联:实体集参与联系集R
联系实例:在锁建模的显式世界中命名实体间的一个关联,比如一个教师ID位9527的instructor实体Katz和一个学生ID为12345的student实体Shankar参与到advisor的一个联系实例中。这一联系实例表示在大学中教师Katz指导学生Shankar
描述属性:联系集的描述属性,比如实体集instructor和student之间的联系集advisor。我们可以将属性date与该联系关联起来,称为具有描述属性date的联系集advisor
给定一个联系集中的一个联系实例必须是由其参与实体唯一标识的,而不必使用其描述属性属性
简单属性:不能划分为更小的部分
复合属性:可以再划分为更小的部分(复合属性可以是有层次的)
单值属性:属性对一个特定实体只有单独的一个值
多值属性:对某个特定实体而言,一个属性可能会对应于一组值
派生属性:可以从别的实体或相关属性派生出来,比如年龄age,就是出生日期birth派生出来的属性约束
映射基数
一对一
一对多
多对多参与约束
全部参与:如果实体集E中的每个实体都参与到联系集R的至少一个联系中,实体集E在联系集R中的参与称为全部的
部分参与:E中只有部分实体参与到R的联系中码
码:一个足以区分每个实体的属性集。关系模式中的超码、候选码、主码的概念同样适用于实体集
联系集的主码
- 如果联系集R没有属性(描述属性)与之关联,那么参与到R中的实体集E1,E2,…,En的主码的并集描述了这个关系R
- 如果联系集R有属性(描述属性),用A来表示这个属性集,则的主码的并集和A的并集描述了这个关系R
- 如果一个联系集R是多对多的,那么R的主码是参与到R的实体集的主码的并集组成
- 如果一个联系集R是多对一的,那么R的主码是“多”对应的实体集的主码,比如,如果联系是从student到instructor多对一的,也就是一个instructor可以对应多个student,那么student的主码就是advisor的主码,如果联系是从instructor到student多对一的,也就是一个student可以对应多个instructor,那么advisor的主码就是instructor的主码
从实体集中删除冗余属性
对两个实体集E、F,共同参与一个联系R,如果E中有一个属性a(不是E的主码)是F的主码,那么a在E中是冗余属性,在E中应该删除a属性
比如:
instructor(ID,name,dept_name,salary),primary key(ID)
department(dept_name,building,budget),primary key(dept_name)
联系集inst_dept
只有当instructor和dept是多对一的时候也就是一个教师最多对应一个系的时候,那么dept_name才会添加到instructor中去非二元的联系集
在一个联系集外我们至多允许一个箭头
弱实体集和强实体集
弱实体集:没有足够的属性以形成主码的实体集
强实体集:有主码的实体集
弱实体集在联系中的参与是全部的,标识性联系集不应该有任何描述性属性,因为这种属性中的任何一个都可以与弱实体集关联
比如:section的标识实体集是course,将section实体和它们对应的course实体关联在一起的sec_course是标识性联系
分辨符:虽然弱实体集没有主码,但是也需要区分依赖于特定强实体集的弱实体集中的实体的方法,分辨符是使得我们进行这种区分的属性集
弱实体集的主码:标识实体集的主码加上自己的分辨符强实体集的表示
具有简单属性的强实体集的表示
对于从强实体集转换而来的模式,强实体集的主码就是生成的模式的主码。
具有复杂属性的强实体集的表示
复合属性
我们并不为复合属性自身创建一个单独的属性,而是将它拆分为若干个单独的属性
instructor: ID name first_name middle_initial last_name address street street_number street_name apt_number city state zip {phone_number} date_of_birth age ()
(其中,instructor的主码是ID)
可以改为instructor(ID, first_name, middle_initial, last_name, street_number, street_name, apt_number, city, state, zip, date_of_birth)
而把多值属性单独拿出来创建新的关系模式
instructor_phone(ID, phone_number)
(其中instructor_phone的主码是ID和phone_number)
注意:由多值属性新创建的关系模式的主码是它所包含的所有属性多值复合属性
time_slot(time_slot_id, {(day, start_time, end_time)})
这个实体集有两个属性,一个是主码time_slot_id, 一个是多值属性,而且这个多值属性还是复合的,先按多值属性进行处理,创建一个新的关系模式,假设叫time(time_slot_id, (day, start_time, end_time),然后按复合属性进行处理,new_time(time_slot_id, day, start_time, end_time)
所以我们最终拥有了两个关系模式time_slot(time_slot_id)
new_time(time_slot_id, day, start_time, end_time)
很明显第一个关系模式是毫无意义的,该实体集的关系模式只包含一个属性,就是它的主码。可以删掉这个关系,保留新创建的关系。也就是
time_slot(time_slot_id, day, start_time, end_time)最后,书上是这样说的
Although not represented as a constraint on the E-R diagram, we know that there cannot be two meetings of a class that start at the same time of the same day-of-the-week but end at different times; based on this constraint, end time has been omitted from the primary key of the time slot schema.
外码
在多值属性构建的关系模式上建立外码约束,由实体集的主码所生成的属性去参照实体集所形成的关系,例如:instructor_phone关系上的外码约束是属性ID(instructor_phone(ID,phone_number))参照instructor关系
弱实体集表示
弱实体集A,拥有属性集
A的依赖强实体集B,拥有属性
则联系集R的属性集为∪
除了创建主码之外,还要在弱实体集生成的关系A上建立外码约束,该约束指明属性参照关系B的主码
弱实体集的ER图以虚下划线来标识,关联弱实体集和强实体集的联系集以双菱形表示,弱实体集的主码是由标识实体集(强实体集)的主码加上该弱实体集的分辨符构成。还有外码约束,保证弱实体的每一个元组都有一个表示相应强实体的元组与之对应联系集的表示
属性
R是实体集A和实体集B的联系集,则R的属性是A的属性和B的属性的并集再并上R自己的描述性属性
主码
二元联系集:
一对一:任意一个实体集的主码作为主码
多对多:参与实体集的主码的并集作为主码
多对一或一对多:多的实体集的主码作为主码
n元联系集:
边上没有箭头的:所有参与的实体集的主码的并集作为主码
因为一个联系集只允许一个箭头,所以对于边上有一个箭头的,选择不在箭头一侧的实体集的主码作为主码
R上还有外码约束:sec_cource有参照section和cource的外码,teaches有参照instructor和student的外码,takes有参照student和section的外码
以advisor为例,advisor是instructor(主码为ID)和student(主码为ID)的两个实体集的联系集
那么,因为advisor没有描述属性,则advisor有两个属性,instructor和student的主码。由于这两个主码名字相同,将它们重命名为i_ID和s_ID,因为advisor联系集是从student到instructr多对一的,所以关系模式advisor的主码是s_ID,而且advisor中的属性s_ID是外码,参照实体集student中的ID属性,advisor中的属性i_ID是外码,参照实体集instructor中的ID属性模式冗余
cource(cource_id, title, credits)
section(cource_id, sec_id, semester, year)
sec_course(cource_id, sec_id, semester, year)
如上,section和sec_course的属性一摸一样,那就必然造成了冗余,所以,一般情况下,连接弱实体集与其依赖的强实体集的模式是冗余的,而且在基于E-R的关系数据库中不必给出模式合并
1、ARB,多对一,A全部参与
我们可以得到3个关系模式:A、B、AB,则把AB合并到A中, consisting of the union of attributes of both schemas
2、ARB,一对一
可以和参与联系的任意一个实体集的模式进行合并
3、部分参与的
也可以用空值来进行模式的合并
4、外键约束
We drop the constraint referencing the entity set into whose schema the relationship set schema is merged, and add the other foreign-key constraints to the combined schema. For example, inst_dept has a foreign key constraint of the attribute dept_name referencing the department relation. This foreign constraint is added to the instructor relation when the schema for inst dept is merged into instructor实体-联系设计问题
用实体集还是属性
一个常见的错误是用一个实体集的主码去做另一个实体集的属性,而不是用联系(前面所说的冗余)。例如,即使每名教师只指导一名学生,将student的ID作为instructor的属性也是不正确的。用advisor联系代表学生和教师的关联才是正确的,因为这样可以明确地表示出两者之间的关系,而不是将这种关系隐含在属性中
用实体集还是用联系集
原则:当描述发生在实体间的行为时采用联系集,这一方法在决定是否将某些属性表示为联系时可能更适用也很有用
联系属性的布局
一个联系的映射基数比率会影响联系属性的布局。因此,一对一或者一对多的联系集的属性可以放到一个参与该联系的实体集中,而不是放到联系集中
例如:advisor是一个一对多的联系集,一个教师可以指导多个学生,但是每个学生只能有一个导师,表示教师何时成为学生导师的属性date可以与student实体集相关联。
一对多联系集的属性仅可以重置到参与联系的“多”方的实体集中,而对于一对一的联系集,联系的属性可以放到任意一个参与联系的实体中 -
几种模型文件(CDM、LDM、PDM、OOM、BPM)
2018-05-13 18:01:00概念数据模型 (CDM): 帮助你分析信息系统的概念结构,识别主要实体、实体...一个概念模型经常包括在物理数据库中仍然不实现的数据对象。CDM可生成LDM、PDM和OOM 逻辑数据模型(LDM): 帮助分析信息系统的结构,它...概念数据模型 (CDM):
帮助你分析信息系统的概念结构,识别主要实体、实体的属性及实体之间的联系。概念数据模型(CDM)比逻辑数据模型 (LDM)和物理数据模型(PDM)抽象。CDM 表现数据库的全部逻辑的结构,与任何的软件或数据存储结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。CDM可生成LDM、PDM和OOM
逻辑数据模型(LDM):
帮助分析信息系统的结构,它独立于具体物理数据库的实现。LDM比概念数据模型(CDM)具体,但不允许定义视图、索引以及其他在
物理数据模型(PDM)中处理的细节。可以把逻辑数据模型作为数据库设计的中间步骤,它在概念数据模型与物理数据模型之间。
物理数据模型(PDM):
帮助分析数据库中的表、视图及其他对象,还包括数据仓库所需的多维对象。可针对目前主流数据库进行建模、逆向工程以及产生代码。
面向对象模型 (OOM):
包含一系列包、类、接口和他们的关系。这些对象一起形成所有的(或部份)一个软件系统的逻辑的设计视图的类结构。 一个OOM 本质上是软件系统的一个静态的概念模型。使用PowerDesigner面向对象模型建立面向对象模型(OOM),能为纯粹地面向对象的系统建立一个OOM,产生Java 文件或者PowerBuilder 文件,或使用一个来自OOM的物理数据模型(PDM)对象,来表示关系数据库设计分析。
业务流程模型 (BPM):BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序、流程、信息和合作协议之间的交互作用。
转载于:https://www.cnblogs.com/weiying121/p/9032836.html
-
怎样在EA中画E-R图
2019-08-11 09:33:34E-R图也称为实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述显示世界的概念模型。 2E-R包括什么? 实体:客观存在并可以相互区别的事物。 属性:实体所具有的一个属性。 关系:实体和... -
类和类之间的依赖、关联、聚合、组合关系
2013-06-01 14:08:24在OOA中要求用消息连接表示出对象之间的动态联系。 (8)粒度控制:一般来讲,人在面对一个复杂的问题域时,不可能在同一时刻既能纵观全局,又能洞察秋毫。因此需要控制自己的视野:考虑全局时,注意其大的组成部分... -
NoSQL与SQL的区别
2020-03-29 14:08:38现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。 数据库:包括一个或多个表 表(关系 Relation):是以列和行的形式组织起来的数据的集合 列(属性 Attribute):在数据库中经常被称为字段 行... -
access中dbs和dbms_access 题库-答案
2020-12-20 09:04:10Access 题库一、选择题1、数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)之间的关系是()A.DBS包括DB和DBMSB.DBMS包括DB和DBSC.DB包括DBS和DBMSD.DB就是DBS,也就是DBMS2、在关系中选择某些属性以组成新的关系的... -
将窗体中名称为iremark_access-题库-答案
2021-02-05 13:16:25Access 题库一、选择题1、数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)之间的关系是()A.DBS包括DB和DBMSB.DBMS包括DB和DBSC.DB包括DBS和DBMSD.DB就是DBS,也就是DBMS2、在关系中选择某些属性以组成新的关系的... -
数据库设计
2017-02-03 23:10:491、概念数据模型 (CDM) 概念数据模型(CDM)帮助你分析信息系统的概念结构,识别主要实体、实体的属性及...一个概念模型经常包括在物理数据库中仍然不实现的数据对象。CDM可生成LDM、PDM和OOM。 2、逻辑数据模型(LD -
E-R图/关系模式
2020-12-29 14:55:25用E-R图来描述现实世界的概念模型,包括实体、属性、实体之间的联系等 E-R图中:实体型用矩形表示,矩形框内写明实体名;属性用椭圆形表示,并用无向边将其与相应的实体型连接起来;联系用菱形表示,框内写明联系名... -
数据库复习
2019-06-27 21:12:00实体型之间的联系包括一对一联系、一对多联系和多对多联系三种类型。 数据库是长期存储在计算机中、有(组织)的、可(共享)的数据集合。 DBMS表示,它是位于(用户)和(操作系统)之间的一层数据管理软件。 根据... -
计算机二级C语言学习笔记(十五)
2019-09-13 19:59:37上一篇:计算机二级C语言学习笔记(十四) 公共基础知识点(四) ...4.在数据库系统中,数据模型包括概念模型、逻辑模型和物理模型 5.在E-R图中,用来表示实体之间联系的图形是菱形 6.E-R图中用来表... -
数据库系统基础:初级篇(第5版)(讲述数据库系统原理的经典教材)--详细书签版
2013-04-05 13:45:324.3.3 利用特化与泛化改进概念模型 75 4.4 采用类别的并类型建模 76 4.5 示例UNIVERSITY的EER模式设计选择和形式化定义 78 4.5.1 UNIVERSITY数据库示例 78 4.5.2 特化/泛化的设计选择 79 *... -
数据库系统概论(第四版)学习指导与习题解答-王珊.
2011-10-24 18:21:32定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图( E 一 R 图) 答: 实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名... -
数据库系统概论第四版答案
2011-10-24 18:22:19定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图( E 一 R 图) 答: 实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特 征和性质,用实体名及其属性... -
数据库系统基础:高级篇(第5版)(讲述数据库系统原理的经典教材)--详细书签版
2013-04-05 14:33:11他的主要研究方向是数据库系统、时间数据库、概念建模、面向对象数据库、Wed建模和本体论数据库模型和语言、DBMS系统实现、检索技术等。 Shamkant B.Navathe 世界知名的数据库学者。现任佐治亚理工学院计算学院... -
SQL Server 2008数据库设计与实现(关系数据库实现的通关宝典)--随书源代码
2013-02-06 12:04:001.3 实体之间的关系 20 1.3.1 二元关系 21 1.3.2 非二元关系 24 1.4 数据访问语言(SQL) 24 1.5 理解依赖性 25 1.5.1 函数依赖性 26 1.5.2 判定 26 1.6 总结 27 第2章 数据建模语言 28 2.1 数据建模介绍 ... -
SQL 编程思想:一切皆关系
2020-12-14 18:54:14无论是现实世界中的实体对象还是它们之间的联系都使用关系表示。我们在数据库系统中看到的关系就是二维表(Table),由行(Row)和列(Column)组成。因此,也可以说关系表是由行构成的集合。 关系模型由数据结构、... -
关系型数据库
2016-11-02 11:42:033.关系型数据库:建立在关系模型上的数据库系统,采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集与实体集之间的联系。借助于集合代数等数学概念和方法来处理数据库中的数据。 -
经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf
2013-02-18 10:06:32这个项目包括5个实体,这5个实体之间具有复杂的关联关系,而且业务逻辑也相对复杂,希望让读者理论联系实际,真正将jsf+ejb 3+jpa整合真正运用到实际开发中。该案例采用目前最流行、最规范的java ee架构,整个应用... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨... -
计算机二级公共基础知识
2011-04-30 14:00:09由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各... -
软件工程-理论与实践(许家珆)习题答案
2011-01-12 00:49:42需求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。 (3) 传递需求 传递需求的主要任务是书写软件需求规格说明。 (4) 认可需求 ... -
血红蛋白判断access程序答案_access 题库-答案
2020-12-24 03:46:06Access题库一、选择题1、数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)之间的关系是()A.DBS包括DB和DBMSB.DBMS包括DB和DBSC.DB包括DBS和DBMSD.DB就是DBS,也就是DBMS2、在关系中选择某些属性以组成新的关系的... -
计算机二级C语言考试题预测
2010-06-08 18:29:34模拟现实世界中不同事物之间的联系 B. 强调模拟现实世界中的算法而不强调概念 C. 使用现实世界的概念抽象地思考问题从而自然地解决问题 D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考 (47) 在结构... -
二级C语言公共基础知识
2009-11-20 11:26:03(29) 面向对象的模型中,最基本的概念是对象和 ______。 答:类 (30) 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。 答:完善性 (31) 算法的基本特征是可行性、确定性、______和... -
软件工程教程
2012-07-06 23:10:29任务2 UML的概念模型 UML基本的构造块 事物 关系 图 UML 公共机制 规格说明 UML模型: 使用图和图标可视化模型 各种建模元素的规格说明所组成 规格说明 模型元素的特征和语义的文本描述—模型的“肉” 形成了承载... -
黄淮学院2011数据库考试提目
2011-10-27 16:09:15用树型结构表示实体类型及实体间联系的数据模型称为__________模型,上一层的父结点和下一层的子结点之间的联系是 的联系。 13 .用有向图结构表示实体类型及实体间联系的数据模型称为__________模型,数据之间的... -
软件设计师考试试题分析二
2008-01-25 22:40:00数据库基础知识包括数据库模型,关系数据库的基础知识,数据库系统的结构,SQL的使用,常用数据库管理系统的知识。考生在复习时除了看教材相关部分外,还应该多做历届...对于三个不同实体集和它们之间的多对多联系m:n:p,最
-
初探并发编程:秒杀系统
-
access应用的3个开发实例
-
linux基础入门和项目实战部署系列课程
-
2021.2.28 前端题
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
mysql-8.0.11-winx64.zip
-
从Docker到Kubernetes之技术实战.pdf
-
用Go语言来写区块链(一)
-
iperf3常用命令参数
-
客户端向日葵SunloginEnterprise_3.0.0.27372.exe
-
华为1+X——网络系统建设与运维(高级)
-
计算机复试英语准备.pdf
-
MPC第1期.rar
-
机器学习可视化软件机器学习可视化软件
-
MySQL 多实例安装 及配置主从复制实验环境
-
关于pytorch语义分割二分类问题的两种做法
-
ansys electronic 19
-
DNAMAN.exe
-
Trie字符串统计(Trie)
-
Tribological-behaviour-and-wear-mechanism-of-MoS2-Cr-coat_2003_Tribology-Int.pdf