精华内容
下载资源
问答
  • 实体-联系模型
    千次阅读
    2020-12-20 22:08:32

    实体-联系(Entity-Relationship, E-R)模型(以下简称E-R模型)的提出旨在方便数据库的设计,它是通过允许定义代表数据全局逻辑结构的企业模式实现的。
    E-R模型采用三个基本概念:实体集、联系集和属性。

    实体集

    实体(entity)是现实世界中可区别于所有其他对象的一个“事物”或“对象”。(与面向对象的类含义类似)实体集是相同类型即具有相同性质(或属性)的一个实体集合。在建模汇中,我们通常抽象地使用术语“实体集”,而不是指某个个别实体的特别集合。
    实体集不必互不相交。如可以定义大学里所有人的实体集(person)。一个person实体可以是teacher实体,也可以是student实体,可以既是teacher实体又是student实体,也可以都不是。
    实体通过一组属性(attribute)来表示。属性是实体集中每个成员所拥有的描述性性质。且每个属性都有一个值。

    弱实体集

    没有足够的属性以形成主码的实体集称为弱实体集(weak entity set)。有主码的实体集称作强实体集(strong entity set)。弱实体集必须与另一个称作标识(identitying)或属主实体集的实体集关联才能有意义。也就是说,弱实体集的存在依赖于标识实体集。将弱实体集与其标识实体集相连的联系称为标识性联系
    标识性联系是从弱实体集到标识实体集多对一的,并且弱实体集在联系中的参与是全部的。
    虽然弱实体集没有主码,但仍需要区分依赖于特定强实体集的弱实体集中实体的方法。弱实体集的分辨符是使得我们进行这种区分的属性集合。弱实体集的分辨符也称为该实体集的部分码
    弱实体的主码由标志实体集的主码加上该弱实体集的分辨符构成。

    联系集

    联系(relationship)是指多个实体间的相互关联。联系集是相同类型联系的集合。
    联系集也可以具有描述性属性(descriptive attribute)。如果teacher实体集与student实体集的联系集advisor。可以将属性date与该联系集联系起来,以表示教师成为学生的老师的日期。
    数据库中的大部分联系集都是二元的。然而,有时联系集会涉及多于两个实体集。参与联系集的实体集的数目称为联系集的度(degree)。二元联系集的度为2,三元联系集的度为3,以此类推。

    非二元的联系集

    对于非二元联系集,为了避免混淆,只允许在一个联系集外有一个箭头。(如果有多个箭头,则无法表明对应的哪个实体)。而函数依赖可以以一种不会混淆的方式描述实体间的联系。

    属性

    每个属性都有一个可取值的集合,称为该属性的域(domain),或者值集(value set)。 严格来说,实体集的属性是将实体集映射到域的函数。由于一个实体集可能有多个属性,因此每个实体可以用一组(属性,数据值)对来表示,实体集的每个属性对应一个这样的对。
    E-R模型中的属性可以按照如下的属性类型来划分:

    • 简单(simple)和复合(composite)属性。简单属性不能划分为更小的部分。复合属性可以再划分为更小的部分。 复合属性帮助我们把相关属性聚集起来,使模型更清晰。注意,复合属性可以是有层次的。如address可以包含street、city、state等,而street可以进一步分解为street_number、street_name、apartment_number。
    • 单值(single-valued)和多值(multi-valued)属性。一般情况下,一个属性对应一个值,这样的属性称为单值属性。如stuent_ID属性只对应于一个学生ID。而在某些情况下对某个特定实体而言,一个属性可能对应于一组值。以phone_number为例,每个教师可以有零个、一个或多个电话号码。这样的属性称为多值属性。为了表示一个多值属性,用花括号将属性名包住;如{phone_number}。
    • 派生(derived属性)。派生属性的值可以从别的相关属性或实体派生(计算)出来。如age属性表示年龄,如果还具有属性date_of_birth,就可以从当前的日期和date_of_birth计算出age。派生属性的值不存储,而是在需要时计算出来。
      当实体在某个属性上没有值时,使用空(null)值。空值可以表示“不适用”,即该实体的这个属性不存在值。空还可以用来表示属性值未知。未知的值可能是缺失的(值不存在),或不知道的(不知道该值是否确实存在)。

    删除冗余属性

    一个好的实体-联系设计不包含冗余的属性。但是在实际开发中,实现这一点需要极大的代价。

    约束

    可以定义一些数据库中的数据必须要满足的约束。

    映射基数(Mapping Cardinality)

    映射基数表示一个实体通过一个联系集能关联的实体的个数。对于实体集A和B之间的二元联系集R来说,映射基数必然是以下情况之一:
    一对一(one-to-one):A中的一个实体至多与B中的一个实体相关联,并且B中的一个实体也至多与A中的一个实体相关联。
    一对多(one-to-many):A中的一个实体可以与B中的任意数目(零个或多个)实体相关联,而B中的一个实体至多与A中的一个实体相关联。
    多对一(many-to-one):A中的一个实体至多与B中的一个实体相关联,而B中的一个实体可以与A中的任意数目(零个或多个)的实体相关联。
    多对多(many-to-many):A中的一个实体可以与B中的任意数目(零个或多个)实体相关联,,并且B中的一个实体也可以与A中的任意数目(零个或多个)的实体相关联。
    注意,考虑映射关系时,一定要同时考虑A->B和B->A两个方面,而不能只考虑其中一方面而忽略另一方面,从而导致错误的设计。

    参与约束

    如果实体集E中的每个实体都参与到联系集R的至少一个联系中,那么实体集E在联系集R中的参与称为全部的。如果实体集E中只有部分参与到联系集R中,那么实体集E在联系集R中的参与称为部分的。如我们期望每个student实体通过advisor联系同至少一名教师相联系,因此student在联系集advisor中的参与是全部的。相反地,一个teacher不是必须要指导一个学生。因此,很可能只有一部分teacher实体通过advisor联系同student相关联,于是teacher在advisor中的参与是部分的。

    我们必须有一个区分给定实体集中实体的方法。从概念上来说,各个实体是互异的;但从数据库的观点来看,它们的区别必须通过其属性表明。实体的码是一个足以区分每个实体属性集。关系模式中的超码、候选码、主码的概念同样适用于实体集。
    码同样可以唯一标识联系,并从而将联系相互区分开来。联系集的主码结构依赖于联系集的映射基数。如果联系集是多对多的,那么联系集的主码由两个实体集的主码的并集构成。如果联系是多对一的,那么多的实体的主码就是联系集的主码。如果联系集是一对一的,那么两个实体的任一主码就是联系集的主码。

    E-R数据模式转换为关系模式

    E-R模型和关系数据库模型都是现实世界企业抽象的逻辑表示。由于两种模型采用类似的设计原则,因此可将E-R设计转换为关系设计。

    具有简单属性的强实体集的表示

    设E是只具有简单描述性属性a1,a2,…,an的强实体集。我们用具有n个不同属性的模式E来表示这个实体集。对于从强实体集转换而来的模式,强实体集的主码就是生成的模式的主码。

    具有复杂属性的强实体集的表示

    当一个强实体集具有非简单属性时,可以通过为每个子属性创建一个单独的属性来处理复合属性,而不为复合属性自身创建一个单独的属性。
    多值属性的处理不同于其他属性。对于一个多值属性M,构建关系模式R,该模式包含一个对应于M的属性A,以及对应于M所在的实体集或联系集的主码的属性。另外,在多值属性构建的关系模式上建立外码约束,由实体集的主码所生成的属性去参照实体集所生成的关系。
    派生属性并不在关系数据模型中显式地表达出来。

    弱实体集的表示

    设A是具有属性a1,a2,…,an的弱实体集,设B是A所依赖的强实体集,设B的主码包括b1,b2,…,bn。
    对于从弱实体集转换而来的模式,该模式的主码由其所依赖的强实体集的主码与弱实体集的分辨符组合而成。除了创建主码之外,还要在关系A上建立外码约束,该约束指明属性b1,b2,…,bn参照关系B的主码。外码约束保证表示弱实体的每个元组都有一个表示相应强实体的元组与之对应。

    联系集的表示

    设R是联系集,设a1,a2,…,an表示所有参与R的实体集的主码的并集构成的属性集合,设R的描述性属性(如果有)为b1,b2,…,bn。映射基数不同,主码的选择方式不同:

    • 对于多对多的二元联系集,参与实体集的主码属性的并集成为主码。
    • 对于一对多的二元联系集,任何一个实体集的主码都可以选作主码。这个选择是任意的。
    • 对于多对一或一对多的二元联系集,联系集中多的那一方的实体集的主码构成主码。
    • 对于边上没有箭头的n元联系集,所有参与实体集的主码属性的并集构成主码。
    • 对于边上有一个箭头的n元联系集,不在"箭头"侧的实体集的主码属性为模式的主码。
      此外,还需在关系模式R上建立外键约束。

    模式的冗余

    连接弱实体集和相应强实体集的联系集比较特殊。弱实体集的主码包含强实体集的主码。连接弱实体集与其所依赖强实体集的联系集的模式是冗余的,而且在基于E-R图的关系数据库设计不必给出。

    模式的合并

    在一对一的联系的情况下,联系集的关系模式可以跟参与联系的任何一个实体集的模式进行合并。即使参与是部分的,也可以通过空值来进行模式的合并。
    最后,还需考虑表示联系集的模式上本应有的外码约束。参照每一个参与联系集的实体集的外码约束本应存在。我们舍弃了参照联系集模式所合并入的实体集模式的约束,然后将另一个外码约束加到合并的模式中。

    实体-联系设计问题

    在实体-联系数据库模式中涉及到一些基本问题。

    用实体集还是用属性

    什么构成属性?什么构成实体集?对这两个问题并不能简单地回答。区分它们主要依赖于被建模的现实世界的企业结构,以及被讨论的属性的相关语义。
    一个常见的错误是用一个实体集的主码作为另一个实体集的属性,而不是用联系。例如,即使每名教师指指导一名学生,将student的ID作为teacher的属性也是不正确的。用advisor联系代表学生和教师之间的关联才是正确的方法,因为这样可以明确表示出两者之间的关系而不是将这种关系隐含在属性中。
    另一个常见的错误是将相关实体集主码属性为联系集的属性。这种做法是不对的,因为在联系集中已隐含这些主码属性。(这些属性默认已经在联系集中,不应再明确表示出来)

    用实体集还是联系集

    一个对象最好被表述为实体集还是联系集并不总是显而易见。在决定用实体集还是联系集可采用一个原则是,当描述发生在实体间的行为时采用联系集。这一方法在决定是否将某些属性表示为联系可能更适合时也很有用。

    二元还是n元联系集

    数据库中的联系通常都是二元的。一些看来非二元的联系实际上可以用多个二元联系更好地表示。事实上,一个非二元的(n元,n>2)联系集总可以用一组不同的二元联系集来替代。可以将这一过程直接推广到n元联系集的情况。因此在概念上可以限制E-R模型只包含二元联系集。然而,这种限制并不总是令人满意的。

    • 对于为表示联系集而创建的实体集,可能不得不为其创建一个标识属性。该标识属性和额外所需的那些联系集增加了设计的复杂度以及对总的存储空间的需求。
    • n元联系集可以更清晰地表示几个实体集参与单个联系集。
    • 有可能无法将三元联系上的约束转变为二元联系上的约束。例如,考虑一个约束,表明R是从A、B到C多对一的;也就是,来自A和B的每一对实体最多与一个C实体关联。这种约束就不能用联系集Ra、Rb和Rc上的基数约束表示。

    联系集中属性的布局

    一个联系的映射基数比率会影响联系集中属性的布局。因此,一对一或一对多联系集的属性可以放到一个参与该联系的实体集中,而不是放到联系集中。一对多联系集的属性仅可以重置到参与联系的“多”方的实体集中。而对于一对一的联系集,联系的属性可以放到任意一个参与联系的实体中。
    设计时将描述性属性作为联系集的属性还是实体集的属性这一决定反映出被建模企业的特点。
    属性位置的选择在多对多的联系集中体现得更清楚。同名的属性,放在实体集中还是联系集中其作用不同。

    扩展的E-R特性

    虽然基本的E-R概念足以对大多数数据库特征建模,但数据库的某些方面可以通过基本E-R模型作某些扩展来更恰当地表达。

    特化(Specialization)

    在实体集内部进行分组的过程称为特化。一个实体集可以根据多个可区分的特征进行特化。在E-R图中,特化用从特化实体指向另一个实体的空心箭头来表示。所以,这种关系也称为ISA关系。特化关系还可能形成超类-子类(superclass-subclass)联系。

    概化(Generalization)

    实体的共性可以通过概化来表达,概化是高层实体集与一个或多个低层实体集间的包含关系。对于所有实际应用来说,概化只不过是特化的逆过程。为企业设计E-R模型时,将配合使用这两个过程。

    聚集(Aggregation)

    聚集是一种抽象,通过这种抽象,联系被视为高层实体。
    当把聚集像其他实体集一样看待时,之前用于在联系集上创建主码和外码约束的规则,也同样可以应用于与聚集相关联的联系集。聚集的主码是定义该聚集的联系集的主码。不需要单独的关系来表示聚集;而使用从定义该聚集的联系创建出来的关系即可。

    数据库设计的其他方面

    数据约束和关系数据库设计

    使用SQL可以表达多种数据约束,包括主码约束、外码约束、check约束、断言和触发器。约束有多种目的。最明显的一个目的是自动的一致性保持。通过在SQL数据定义语言中表达约束,设计者能够确保数据库系统自己执行这些约束(显式声明约束)。
    显式声明约束的另一个优点是一些约束在数据库模式的设计中特别有用。
    数据约束在确定数据的物理结构时同样有用,可以将彼此紧密相关的数据存储在磁盘上邻近的区域,以便在磁盘访问时提高效率。如将索引建立在主码上,索引结构工作得更好。
    每次数据库更新时,执行约束会在性能上带来潜在的高代价。对于每次更新,系统都必须检查所有的约束,然后要么拒绝与约束冲突的更新,要么运行相应的触发器。性能损失的严重性,不仅仅取决于更新的频率,而且依赖于数据库的设计方式。

    使用需求:查询、性能

    数据库系统的性能时绝大多数企业信息系统的一个关键因素。性能不仅与计算能力的有效利用以及所使用的存储硬件有关,而且受到与系统交互的人的效率以及依赖数据库数据的处理的效率的影响。以下是效率的两个主要度量方法:

    • 吞吐量(throughput)————每单位时间里能够处理的查询或更新(通常指事务)的平均数量。
    • 响应时间(response time)————单个事务从开始到结束所需的平均时间或最长时间。

    授权需求

    授权约束同样会影响数据库的设计,因为SQL允许在数据库逻辑设计组件的基础上将访问权限授予用户。(现有主流数据库系统均已合理实现授权(基于角色分配))

    数据流、工作流

    术语工作流表示一个流程中的数据和任务的组合。当工作流在用户间移动以及用户执行他们在工作流中的任务时,工作流会与数据库系统交互。

    数据库设计的其他问题

    数据库设计通常不是一个一蹴而就的工作。一个组织的需求不断发展,它所需要存储的数据也会相应地发展。但是,对于一个已明确的需求,还是可以给出稳定的设计的。
    一个好的设计应该不止考虑当前的规定,还应该避免或者最小化由预计或有可能发生的改变而带来的改动。(需要做向上兼容的思考)
    最后,数据库设计在两个意义上是面向人的工作:系统的最终用户是人(使用该程序的用户);数据库设计者需与应用领域的专家进行广泛交互以理解应用的数据需求。所有涉及数据的人都有需要和偏好,为了数据库设计和部署在企业中获得成功,这些都是需要考虑的。

    参考

    数据库系统概念(第六版) A. Silberschatz H. F. Korth S. Sudarshan著 杨冬青 等译 第七章

    更多相关内容
  • 关系模型是从表(table)以及表的处理方式抽象出来的 形象的说,一个关系(relatioin)就是一个Table 关系模型组成: 描述数据库的数据的基本结构 描述表之间的各种操作(关系运算) 操作应该遵循的约束条件...

    第三讲关系模型之基本概念

    关系模型简述

    1. 关系模型是从表(table)以及表的处理方式中抽象出来的
    2. 形象的说,一个关系(relatioin)就是一个Table
    3. 关系模型组成:
    • 描述数据库的数据的基本结构
    • 描述表之间的各种操作(关系运算)
    • 操作应该遵循的约束条件(完整性约束)

    什么是关系

    相关概念

    • 域:一组值的集合,值有相同数据类型

    • 域的基数:集合中元素个数

    • 元组:每一个域中任取一个值所形成的组合

    • 元组分量:元组中的每个值都叫做一个分量

    • 笛卡尔积:所有可能组合而成的元组的集合

    因为笛卡尔积中的所有元组并不都有意义,所以

    关系:

    • 是笛卡尔积的子集

    • 笛卡尔积具有某方面意义的那些元组被称为一个关系

    • 关系不同列可能来自同一个域,为区分,需为每列起名,该名即为属性名

    • 例:设有一个”人类“域:里面有男人,也有女人。男女可以分别组成男女列,此为不同列可以来自同一个域

    • 关系的度/目(degree):列的数量

    • 关系的基数:元组数量

    关系模式与关系:

    • 关系模式就是关系的结构(也可以称为表的结构)

    • 关系是关系模式在某一刻的数据

    • 一个关系模式下可以有很多的关系(表)

    例:

    在这里插入图片描述

    在这里插入图片描述

    • 关系是以内容来区分的,而不是属性或者元组在关系中的顺序。

    • 例:

    在这里插入图片描述

    在这里插入图片描述

    上图是完全相同的关系

    • 关系第一范式:属性不可再分割

    • 候选码:

      • 关系中的一个属性/属性组,能唯一标识一个元组,这样的属性/属性组称为候选码
    • 主码/主键(primary key):

      • 当有多个候选码时,可以选择一个作为主码
      • DBMS以主码为主要线索管理关系中的各个元组
    • 主属性:包含在任意一个候选码中的属性被称为主属性

    • 非主属性:主属性之外的其他属性被称为非主属性

    • 外码/外键(foreign key):

      • 关系R中的一个属性组,它不是关系R的候选码,但它与另外一个关系S的候选码对应此属性组被称为关系R的外码或者外键
      • 两个关系通常靠外码连接起来

    关系模型中的完整性

    实体完整性

    实体完整性对应的是主码

    • 关系中主码的属性值不能为空值
      • 空值:不知道或者无意义的值,有空值的时候需要特殊处理
      • 意义:关系中的元组是以主码来唯一标识的,若主码为空,就会出现不可标识的元组

    参照完整性

    参照完整性对应的是外码

    • 关系R1中的外码与关系R2的主码相对应或者R1中的外码为空值(空值可以看作尚未选择外码)
      • 意义:若关系R1的某元组t1参照关系R2的某个元组t2,则t2必须存在

    用户自定义完整性

    用户自己定义的约束条件

    例如:

    1. 性别属性值的取值范围只能为 “男” 或 “女”
    2. 姓名必须在8个汉字字符之内
    3. 年龄必须在0-150之间

    DBMS对关系完整性的支持

    1. 实体完整性和参照完整性由DBMS自动支持
    2. DBMS通常提供如下机制:
      1. 可以使用户自己定义有关的完整性约束条件
      2. 有操作发生时,DBMS自动判定操作是否符合用户自己定义的完整性规则
    展开全文
  • 一、数据模型概述数据库设计两种不同的模型:(1)概念模型:面向现实世界,与计算机无关。(2)数据模型:面向计算机实现。分为逻辑数据模型,物理数据模型。(一)数据模型三要素1、数据结构:数据库数据,以及数据...

    一、数据模型概述

    数据库设计中两种不同的模型:

    (1)概念模型:面向现实世界,与计算机无关。

    (2)数据模型:面向计算机实现。分为逻辑数据模型,物理数据模型。

    (一)数据模型三要素

    1、数据结构:数据库数据,以及数据之间的联系。

    2、数据操作:数据库对象允许执行操作的集合。

    3、数据的约束条件:数据库完整性规则的集合。

    规定数据及其联系所受到的制约

    限制数据库状态,以及状态的变化,以保证数据库数据的正确、有效、相容。

    (二)、一些主要的数据模型、

    层次模型

    网状模型

    关系模型

    面向对象模型

    对象-关系模型

    二、关系模型的基本概念

    6b3bd0880cf5c70d9d9c0ffaba7232f2.png

    1、关系

    一个关系就是一张命名的二维表。

    2、属性:表的一列称为表的一个属性,列的名字称为属性名。

    3、域:属性取值的范围。

    (1)简单域:域中元素都是原子的(不可再分的)

    (2)组合域:域中元素是可在分的。

    注:关系的属性域总是简单域。

    4、元组:关系的一行叫一个元组。

    5、元组分量:关系中元组的属性值。

    6、关系的键码(或称:候选码、码)、主属性:能够唯一标识一个元组的最少属性(或属性组),

    称为关系的键码,简称为码。

    键码的特性:  (1)唯一性  (2)最小性

    注:当一个关系有不止一个键码时,也把键码称为候选码。

    构成键码(或候选码)的属性称为主属性,而其他属性称为非主属性。

    7、主码:

    主码由键码构成。(主码必定是键码)

    一个关系必须有且只能有一个主码。

    若一个关系有多个键码,则必须指定一个键码作为关系的主码。

    8、全码:若一个关系的键码由关系的所有属性构成,则这样的键码称为全码。

    9、超码:一个关系中,能够唯一标识一个元组的属性(或属性组),称为该关系的超码。

    fb93220ab7056fc71b97a0ea2f257abb.png

    (二)、关系模式与关系实例的概念及特点

    1、关系模式

    关系名,以及关系属性集合,称为关系模式。

    例 S(SNO,SNAME,STATUS,CITY)

    关系模式是对关系的描述,是关系的“框架”,关系模式相对稳定。

    2、关系实例

    一个关系的当前元组的集合,称为关系实例。关系实例相对可变化。

    3、关系数据库模式:若干个关系模式集合,构成了一个关系数据库模式。

    e434abcf623f5625283a5baacbf5f8b0.png

    4、关系的性质

    (1)基于某一关系模式的关系是随时间变化的。

    (元组数量或属性取值是可变的)

    (2)一个关系中,在任何时候都不能同时出现取值相同的两个元组。

    (3)一个关系的不同元组,上下无序。

    (4)一个关系的不同列的先后次序无关紧要。

    (5)元组各分量必须是不可再分的。(属性的域必须是简单域)

    三、从概念模型(E-R图)到关系数据模型的转换

    (一)、转换一般实体集:把E-R图的一个实体集转换成一个关系模式,实体集的属性和主码

    转换成关系模式的属性和主码。

    784ee575b1bebf33dbc1600a41aee068.png

    (二)、转换E-R图的联系

    一般原则:为联系建立一个关系模式

    1c680787ecdb036fc64115b1ae73a80e.png

    b49abafcdd74f452e26325cca66e1af6.png

    14b1ca1e1a509d66885730fb6ac7902c.png

    093979df532854327fec2932c95e423f.png

    (三)、子类实体集的转换

    1、E-R图方法:(1)转换实体集,并选好键码。

    (2)“isa”无需变换

    69a6c64f3a0ca7ddd272a27cc824bf11.png

    5a174832be1d9b92be253e83c40bf87e.png

    3、空值法:

    特点:每一个实体对应关系的一个元组。与特定实体无关的属性,值“空”值。

    de65b11e9e9b27702518ac5af0cbf8dc.png

    (四)、弱实体集的转换

    1、弱实体集转换为关系模式。关系模式的键码由自身的键码属性,以及弱实体集所依赖的那些

    实体集的键码属性,共同构成。

    2、弱实体集和它所依赖的实体集之间的联系,无需处理。

    cd80849966f8fc3ad57047127fa2c840.png

    展开全文
  • 实体—联系模型

    千次阅读 2018-06-25 01:36:53
    一、实体—联系(E-R)数据模型概述 该数据模型基于对现实世界的这样一种认识:世界由一组称为实体的基本对象及这些对象间的联系组成,该模型是一种语义模型模型的语义方面主要体现在模型力图去表达数据的意义。...

    一、实体—联系(E-R)数据模型概述

         该数据模型基于对现实世界的这样一种认识:世界由一组称为实体的基本对象及这些对象间的联系组成,该模型是一种语义模型,模型的语义方面主要体现在模型力图去表达数据的意义。


    1.1 实体集

          实体是现实世界中可区别于其他对象的“事件”或“物体”。每个实体有一组性质,其中一部分性质的取值可以唯一地标识实体。
            实体集是具有相同类型及共享相同性质(或属性)的实体集合。
            实体通过一组属性来表示。属性是实体集中每个成员具有的描述性性质。将一个属性赋予某实体集表明数据库为实体集中的每个实体存储相似信息,但每个实体在自己的每个属性上都有各自的值。而每个属性都有一个可取值的集合,称为该属性的域,或者该属性的值集。因此,数据库包括一组实体集,每个实体集中包括一些相同类型的实体。

    1.2 属性类型
            E-R模型中的属性可以按照以下的属性类型进行划分:
            1)简单属性和复合属性
                 例如,地址可以作为复合属性,因为从中可以更细分为国家、省、市、县、镇、村。可以看出,复合属性是有层次的。
            2)单值属性和多值属性
            3)派生属性
                  这类属性的值可以从其他的相关属性或实体派生出来。例如,一个的年龄可以由其出生年月派生而来。

    1.3 联系集
           联系是指多个实体间的相互关联。例如,定义一个客户与其贷款的联系。
           联系集是同类型联系的集合。例如,联系集是n(n>2)个实体集上的数学关系。

    二、约束

    2.1 映射基数
          映射基数,或基数比例,指明通过一个联系集能同时与另一实体相联系的实体数目。对于实体集A与B之间的二元联系集R来说,映射基数无非是这几种情况:一对一(A中的一个实体至多同B中的一个实体相联系,B中的一个实体也至多同A中的一个实体相联系);一对多(A中的一个实体可以同B中的任意数目的实体相联系,而B中的一个实体至多同A中的一个实体相联系);多对一(与前者相反);多对多。

    2.2 参与约束
            如果实体集E中的每个实体都参与到联系集R的至少一个联系中,则称之为实体集E全部参与联系集R;如果只有部分,则称之为实体集E部分参与联系集R。举例:对于银行的客户而言,由于每个贷款必须通过某种联系与客户相关联,但并不是每个客户都有贷款。这就是部分参与,集贷款实体集部分参与联系集。

    三、码
          码的概念可以使我们区别实体,也可以惟一地标识联系,并将联系相区分开来。

    3.1 实体集
          超码是一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中惟一地标识一个实体。例如,对于客户而言,其”客户编号“就是一个超码,该属性可以惟一区别一个实体(客户);而“客户编号”+“客户名称”的组合也是实体集的一个超码,但“客户名称”有可能出现重复,因此,“客户名称”不是超码。由此可以看出,超码中可能也包含了一些无关紧要的属性。须知,如果K是一个超码,那么K的任意超集也是超码。但这并没有多大探讨的意义,我们需要关注的是,如果K是一个超码,那么它的任意真子集都不能成为超码,这样的最小超码,称之为候选码。值得注意的是,几个不同的属性集都可以作为超码的情况是存在的,只要所给的属性足够严谨甚至苛刻。在这之中,我们使用主码(来源于候选码)来表示被开发者选用的超码。记住,码(主码、候选码、超码)是实体集的性质,而不是单个实体的性质。实体集中的任意两个实体都不允许同时在码属性上具有相同的值。

    3.2 联系集
              实体集的主码使得我们可以将实体集中不同的实体区别开来,而联系集的作用是如何选用主码来使得实体集A与实体集B达到某种合理的联系。


    四 实体—联系图

    E-R图的重要组件
    组件意义组件意义
    矩形表示实体集双椭圆表示多值属性
    椭圆表示属性虚椭圆表示派生属性
    棱形表示联系集双线表示一个实体全部参与到联系集中
    线段将属性连接到实体集或将实体集连接到联系集双矩形

    表示弱实体集

    注:
       线段:表示从实体集A到B是多对多或一对多的关系
       箭头:表示从实体集A到B是一对一或多对一的关系
    举例:
       


    3.3 弱实体集
         一个弱实体集的属性可能不足以形成主码,这样的实体集就称为弱实体集。与此相对,有主码的实体称为强实体集。例如实体集付款单payment,其具有属性payment-number、payment-date以及payment-amount。payment-number是从1开始的,虽然payment实体互不相同,但不同贷款的payment却可能具有相同的payment-number。因此,实体集payment-numner没有主码,是一个弱实体集。
         弱实体集必须与另一个标识实体或属主实体集关联才有意义。每个弱实体必须和一个标识实体关联,即,弱实体集是存在依赖于标识实体集。我们称标识实体集拥有它所标识的弱实体集。将弱实体与其标识实体集相联的联系集称为标识性联系。标识性联系是从弱实体集到标识实体集的多对一联系,并且弱实体集全部参与联系。
         虽然弱实体集没有主码,但仍需要使用某个属性来区分那些依赖于某个强实体集的弱实体集。弱实体集的分辨率是使得我们能进行这种区分的属性集合。对于下图中的payment弱实体而言,payment-number就是其分辨符。
    举例:


    四、扩展的特殊化

    4.1 特殊化
          实体集中有时包含一些子集,子集中的实体在某些方面区别于实体集中的其他实体。例如,实体集中某个实体子集可能具有不被该实体集中所有实体集中所有实体所共享的一些属性。须知,在实体集内部进行分组的过程称为特殊化。

    4.2 一般化
            对初始实体集求精产生一系列不同层次的实体子集代表自顶向下的设计过程,在这个自顶向下的设计过程中,区别被显示地表达出来。设计过程还可以是自底向上的,在这个过程中,根据共同具有的特征,多个实体集综合成一个较高的实体集。

    举例:在E-R图中,特殊化通过标记为ISA的三角形构建来表示。标记ISA表示“is a”,例如,一个客户“is a”人。ISA联系也称超类-子类联系。高层实体和低层实体仍如同普通实体的表示法,即以包含了实体集名称的矩形表示。

    展开全文
  • ❤️ 关系数据结构及形式化定义 1.笛卡尔积:当做一个表来说,就是一行是一个元组,一列是一个域,是域的基数的相乘 2.关系:一张规范的二维表 ...7.候选关系中的某一属性组的值能唯一地标识一个元组,而子集...
  • 关系数据库是建立在关系模型基础之上的数据库,本文的目的在于打通...从用户角度,关系模型中数据的逻辑结构是一张二维表 域(Domain) 一组值的集合,这组值具有相同的数据类型 笛卡尔积(Car'tesian Produc
  • 第二章 关系数据库

    2021-09-16 12:12:59
    关系模型关系数据结构、关系操作和关系完整性三部分组成 2.1.1关系的定义 1.关系数据库系统:以关系数据模型为基础的数据库系统 只包含单一的数据结构-关系,即实体以及实体间的联系均用关 系表示 2.二维表格...
  • 一个E-R设计如何转换成一个关系模式的集合及如何在该设计找到某些约束 设计过程概览 设计阶段 一个高层数据模型为数据库设计者提供了一个概念框架 在该框架以系统方式定义了数据库用户的数据需求,及满足这些...
  • 关系模型--概念

    万次阅读 2007-04-27 23:10:00
    ----能唯一标识实体的属性,是整个关系的性质,而不是一个个元组的性质;关系中的任意两个元组都不允许同时在属性上具有相同的值.指定代表了建模的事物在现实世界的约束.包括:主,候选或超码.超码是一...
  • 关系数据模型介绍

    2021-11-25 16:37:46
    关系数据模型是以集合论关系概念为基础发展起来的数据模型。 通常说起关系数据模型,新手总会觉得很深奥(我就是。。。),看了王能斌老师在《数据库系统教程》的描述我有醍醐灌顶之感(原书P23部分内容): ...
  • 1.5 关系模型 关系模型是当前最重要的一种数据模型。当前最常用的数据库产品,如Oracle、DB2、SQL Server等都是采用关系数据模型关系数据库...在关系模型中,无论是实体还是实体之间的关系都是以二维表的形式表示...
  • 数据库应用——在线考试复习资料 一、单选题 1.“表达式生成器”是用来书写什么的? A....B....C....D....2.在使用计算控件时,每个表示式前必须加上哪种运算符号?...B....A....6.以下哪种不包括在动作查询? A.更新查
  • 第三章:关系数据模型 一、关系模型的数据结构(用关系来表达数据结构) 关系:用于描述数据本身、数据之间联系,俗称‘’表’‘。 表构成:由“列”和“行”。各列构成“关系模式”,各行构成“关系实例”。 列:...
  • 数据库系统概念——数据库设计和 E-R模型数据库设计和 E-R模型设计过程概览设计阶段设计选择实体 - 联系 模型实体集联系集属性约束映射基数参与约束实体集中删除冗余属性实体 - 联系图基本结构映射基数复杂的...
  • 文章目录第七章:数据库设计和E-R模型7.1 设计过程概览7.2 实体-联系模型7.3 约束7.4 从实体集中删除冗余属性7.5 实体-联系图7.6 第七章:数据库设计和E-R模型 7.1 设计过程概览 7.2 实体-联系模型 7.3 约束 7.4 从...
  • 具有简单属性的强实体集的表示具有复杂属性的强实体集的表示有多值属性的实体集弱实体的表示联系集向关系模式的转化1. m:m 多多联系的主2. 1:m或m:1。一对多联系的主3. 1:1联系的主模式的冗余和合并**"如果两...
  • 数据库错题集(一)

    2021-02-04 21:30:24
    从 E-R 模型关系模型转换时,一个 M:N 联系转换为关系模式时,该关系模式的主是( )。 在关系数据库设计关系模式是用来记录用户数据的( )。 消除了部分函数依赖的1NF的关系模式,必定是( )。 下列...
  • E-R模型

    2019-04-29 11:15:00
    E-R模型:一个数据库可以建模实体集,和实体集之间的关系实体实体集:实体是现实世界可区别于所有其他对象的一个“事物”或“对象。而实体集就是相同类型即具有相同性质(或属性)的一个实体集合。实体...
  • Mysql入门

    2021-03-14 03:06:24
    以另一个关系的外键作主关键字的表称为主表,具有此外键的表称为主表的从表。外键又称作外关键字。 查询 查询的基本结构就是: select ....( 列名 ) from ....(表名) where ....(条件) 添加 insert into 表...
  • 第四章关系数据库理论 4.1. 函数依赖 4.1.1 什么叫函数依赖 简单来说:某个属性集决定另一个属性集时,称另一...简单来说就是:设X,Y是关系R的两个属性集合,当任何时刻R的任意两个元组的X属性值相同时,它们的
  • 10万字208道Java经典面试题总结(附答案)

    万次阅读 多人点赞 2021-08-01 16:05:55
    JDK包含JRE,JDK有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。 2、== 和 equals 的区别是什么? 对于基本类型,==比较的是值; 对于引用类型,==比较的是地址...
  • • 在商用数据处理应用关系模型已经成为当今主要的数据模型。之所以占据主要位置,是因为和早期的数据模型如网络模型或层次模型相比,关系模型以其简易性简化了编程者的工作。 2.1 关系数据库的结构 • 关系...
  • 数据库系统概论期末复习(选择题)

    万次阅读 多人点赞 2019-12-30 19:54:32
    3.在数据库设计中用关系模型来表示实体实体之间的联系。关系模型的结构是   。 A.层次结构 B.二维表结构 C.网状结构 D.封装结构 4.关系模式的任何属性   。 A.不可再分 B.可再分 C.命名在...
  • 即如果一个句子包含两个或者更多相同关系类型的三元组,我们基于最近原则将两个实体组合为三元组,这在实际的长句处理的性能常常会大打折扣。 图8-基于联合方式的实体关系抽取示意图 有趣的是,近期有使用“半...
  • 牛客网之数据库刷题笔记

    千次阅读 2020-06-24 20:47:32
    主属性是从候选码中挑出来的一个,候选可以有多个,因此主属性也可以有多个 主键(Primary Key):从候选键,选中用来作为唯一标识的属性或者属性组称为主键,主键必须唯一且非空(not null); 可键...
  • 依赖用从参照关系的外属性到参照关系的主属性之间的箭头来表示; • 除外约束之外,模式图没有显示表示出参照完整性约束。在后面第7章,我们将学习一种不同的、称作实体﹣联系图的图形化表示。实体﹣...
  • MySQL数据库的主键和外键详解主键主键的定义主键:表经常有一个列或多列的组合,其值能唯一地标识表的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY ...
  • E-R图练习(邮件客户端系统)

    千次阅读 2020-05-11 16:58:10
    某公司拟开发一多用户电子邮件客户端系统,部分功能的初步需求分析结果如下: ...地址薄一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人。 (4)一个邮件帐号可以含有多封邮件,一封邮
  • 1、管理信息系统的研究背景及国内外现状1 研究背景2 国内外发展现状2.1管理信息系统2.2 数据库管理信息系统的形成2.3 数据库管理信息系统的简介2.4 关系型数据库1 研究背景随着当今科学技术的飞速发展,尤其是计算机...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 167
精华内容 66
关键字:

实体关系模型中的能够被选作主码。