如何在ERD中识别强关系和弱关系?

37
一条虚线表示关系强,而一条实线则表示关系弱。在下图中,我们如何确定RoomClass实体之间的关系是强的?是因为Room实体具有常规键(非组合键)吗? enter image description here

4
你的陈述是错误的,会造成混淆。实线表示强关系,虚线表示弱关系。 - A l w a y s S u n n y
5个回答

44
  1. 弱(非标识)关系

    • 实体独立于其他实体的存在

    • 子实体的主键不包含父实体的主键组件

  2. 强(标识)关系

    • 子实体依赖于父实体的存在

    • 子实体的主键包含父实体的主键组件

    • 通常使用复合键作为主键,这意味着该复合键的一个组件必须是父实体的主键。


6
如果子实体的存在依赖于父实体,但是子实体的主键不包含父实体的主键组件,那么这种关系是强关系还是弱关系?例如:订单和收据 - 收据依赖于订单,但收据的主键不包含父实体的主键组件。答案:这是一种弱关系。子实体的存在仍然依赖于父实体,但是它的主键并没有直接包含父实体的主键组件,因此这种关系被认为是弱关系。 - Lance2k

33

如果我们有一个基于ID的关系,我们会画一条实线;否则它将是一条虚线。

考虑一个弱但不基于ID的关系;我们画一条虚线,因为它是一种弱关系。


3
在ER图中,我认为当关系较强时,即父实体的主键在子实体中形成复合或非复合主键时,我们使用实线来表示。同样,对于关系较弱的情况,这意味着父表的主键不被用作子表实体中的主键,那么我们就使用虚线来表示。

1
在实体关系建模中,实线表示强关系,虚线表示弱关系。

1

实体 Class 对于实体 Room 的关系被认为是 (非标识) 关系,因为实体 Class 的主键组件 CIDDATE 不包含实体 Room 的主键 RID(在这种情况下,Room 实体的主键是单个组件,但即使它是复合键,其中一个组件也满足条件)。

然而,在关系 ClassClass_Ins 的情况下,我们看到这是一个 (标识) 关系,因为 Class_Ins 的主键组件 EmpIDCIDDATE 包含了 Class 的一个主键组件(在这种情况下,它包含了两个组件 CIDDATE)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接