强弱实体类型的示例

时间:2011-01-19 23:23:05

标签: database weak-entity

我试图在Google上查看强实体类型的合理解释,但我还没有完全理解它们。

有人能给我一个强弱实体类型的例子吗?

12 个答案:

答案 0 :(得分:122)

弱实体只有在被另一个实体拥有时才能存在。 例如: ROOM 只能存在于 BUILDING 中。另一方面, TIRE 可能被视为一个强大的实体,因为它也可以在不附加到 CAR 的情况下存在。

答案 1 :(得分:50)

只是玩它,问题是强大的实体类型,答案很弱。问题始终存在,但答案需要存在一个问题。

示例:Don't ask 'Why?' if Your Dad's a Chemistry Professor

答案 2 :(得分:18)

公司保险单为员工和任何家属提供保险,没有员工,依赖关系不能存在;也就是说,一个人不能作为受抚养人获得保险,除非该人是雇员的受抚养人.DEPENDENT是关系中的弱实体“雇员有依赖”

答案 3 :(得分:15)

弱实体是无法通过自己的属性完全识别的实体,并将外键作为属性(通常需要主键为它与之相关的实体。)

<强>实施例

房间的存在完全取决于酒店的存在。因此,房间可以被视为酒店的弱实体 另一个例子是 如果银行不再存在,则特定银行的银行账户不存在。

答案 4 :(得分:7)

强实体

它可以在没有任何其他实体的情况下存在。

示例

Customer(customerid, name, surname)

弱实体

它取决于主导实体,没有强大的实体就不可能存在。

示例

Adress(addressid, adressName, customerid)

答案 5 :(得分:3)

弱实体也称为依赖实体,因为它的存在取决于其他实体。这些实体在E-R图中用双轮廓矩形表示。

强实体也称为独立实体。

答案 6 :(得分:3)

<强> ./数据库/ DataModels / RelationalDataModel / WeakEntity

它可能有两个因素:

  • 依赖性取决于是否存在识别实体集(总计,一对多关系)。
  • IDENTIFICATION:没有主键。它有一个部分密钥(或鉴别器)。它需要使用另一个表的主键进行识别。

如果我们想到一个持有问题和答案的数据库,那么问题将是强大的实体,答案将是弱实体。 因此, 问题(ID,文字) 答案(数字,问题,文字) 将是我们的表格。但为什么答案表是一个弱实体?

  • 对问题表的依赖。每个答案都与一个问题(假设)相关联,因此它不能单独存在。这就是为什么我们有人会问一个问题并自己回答,以便他们可以帮助其他人并获得额外的喜爱。

  • 从问题的主键中识别。人们无法识别答案(假设其ID是数字标识符),因为问题可能由答案回答,答案的标识符也可能存在于其他问题中。答案表的主键:(number,question_id)。

答案 7 :(得分:2)

存在弱实体来解决多值属性问题。

有两种类型的多值属性。一个是对象的简单许多值,例如&#34;业余爱好&#34;作为学生的属性。学生可以有很多不同的爱好。如果我们将爱好留在学生实体集中,那么#34;业余爱好&#34;不会再独一无二了。我们创建一个单独的实体集作为业余爱好。然后我们根据需要链接爱好和学生。业余爱好实体集现在是一个关联实体集。至于它是否弱,我们需要检查每个实体是否有足够的唯一标识符来识别它。在许多人看来,一个爱好名称足以识别它。

另一种类型的多值属性问题确实需要一个弱实体来修复它。让我们说一下在杂货店库存系统中设置的商品实体。该项目是类别项目还是实际项目?这是一个重要的问题,因为顾客可以一次购买相同的商品,但也可以在不同的时间以不同的金额购买相同的商品。你能看到它是同一个项目,但不同的对象。该项目现在是一个多值属性。我们首先将类别项目与实际项目分开来解决它。这两个现在是不同的实体集。类别项目具有项目的描述性属性,就像您通常想到的项目一样。实际项目不再具有描述性属性,因为我们不能有多余的问题。实际项目只能包含日期时间和项目金额。您可以根据需要链接它们。现在,让我们谈谈一个人是否是另一个人的弱势实体。描述性属性足以识别类别项实体集中的每个实体。实际项目只有日期时间和金额。即使我们提取记录中的所有属性,我们仍然无法识别实体。想想它只是时间和数量。实际的项目实体集是弱实体集。我们使用类别项实体集中的重复主键来识别集合中的每个实体。

答案 8 :(得分:0)

浏览搜索引擎几个小时后,我遇到了一个网站,上面有一个很棒的ERD示例:http://www.exploredatabase.com/2016/07/description-about-weak-entity-sets-in-DBMS.html

我重新创建了ERD。不幸的是,他们没有指定弱实体的主键。

enter image description here

如果建筑物只能有一个,只有一个公寓,那么似乎就不会创建(即丢弃)部分区分房间号。

答案 9 :(得分:-2)

弱实体类型: 实例无法在不与某个其他实体的实例链接的情况下退出的实体称为弱实体类型。它不能独立存在。 例如:我们的PC依赖于我们,它不会自己打开或关闭。

强实体类型: 链接到任何其他实体类型的实例的实体称为强实体类型。它可以独立退出。 例如:一个人可以做到每件事情都可以到处使用

答案 10 :(得分:-4)

ARC中引入了First Strong / Weak Reference类型。在非ARC中,正在使用assign / retain。 强引用意味着您希望“拥有”您使用此属性/变量引用的对象。只要您使用强引用指向它,编译器就会注意您分配给此属性的任何对象都不会被销毁。只有将属性设置为nil后,对象才会被销毁。

弱引用意味着您表示您不希望控制对象的生命周期或不想“拥有”对象。您引用弱的对象只会继续存在,因为至少有一个其他对象对它有强烈的引用。一旦不再是这种情况,对象就会被破坏,你的弱属性将自动设置为nil。 iOS中弱引用的最常见用例是IBOutlets,Delegates等。

有关详细信息,请参阅:http://www.informit.com/articles/article.aspx?p=1856389&seqNum=5

答案 11 :(得分:-4)

可以在不依赖于另一个数据对象存在的情况下存在的数据对象称为强数据对象。