强实体类型和弱实体类型的示例

我曾试图在谷歌上寻找关于 软弱强实体类型强实体类型的合理解释,但我还没有完全理解它们。

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

217690 次浏览

弱实体是指只有被另一个实体所拥有时才能存在的实体。 例如: 房间只能存在于 BUILDING中。另一方面,一个 轮胎可能被认为是一个强大的实体,因为它也可以不附加到一个 汽车而存在。

Just to play with it, question is strong entity type and answer is weak. Question is always there, but an answer requires a question to exist.

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

A company insurance policy insures an employee and any dependents, the DEPENDENT cannot exist without the EMPLOYEE; that is, a person cannot get insurance coverage as a dependent unless the person is a dependent of an employee.DEPENDENT is the weak entity in the relationship "EMPLOYEE has DEPENDENT"

弱实体 也称为 附属实体,因为它的存在依赖于其他实体。这样的实体在 E-R 图中由一个双重轮廓矩形表示。

Strong entities are also called independent entities.

弱小的实体是一个不能完全由其自身的属性来识别的实体,它将 外键作为一个连接的属性(通常它采用与之相关的实体的主键)。

例子

房间的存在完全取决于旅馆的存在。所以房间可以看作是酒店的 弱小的实体
另一个例子是
如果一家银行不存在了,那么这家银行的银行账户就不存在了。

在 ARC 中引入了第一个强/弱引用类型,在非 ARC 中使用了分配/保留。 A strong reference means that you want to "own" the object you are referencing with this property/variable. The compiler will take care that any object that you assign to this property will not be destroyed as long as you points to it with a strong reference. Only once you set the property to nil, the object get destroyed.

弱引用意味着您不想控制对象的生存期或者不想“拥有”对象。您正在弱引用的对象只能继续存在,因为至少有一个其他对象持有对它的强引用。一旦不再出现这种情况,对象就会被销毁,弱属性就会自动设置为 nil。 IOS 中最常见的弱引用用例是用于 IBOutlet、委托等。

更多信息请参考: http://www.informit.com/articles/article.aspx?p=1856389&seqNum=5

弱实体类型: 如果实例不能与其他实体的实例链接就不能退出的实体称为弱实体类型。它不能独立存在。 例如: 我们的电脑是依靠我们,它不会打开或关闭自己的。

强实体类型: 与任何其他实体类型的实例链接的实体称为强实体类型。它可以独立退出。 一个人可以做任何事情,可以去任何地方,使用任何东西

不依赖于另一个数据对象的存在而存在的数据对象称为强数据对象。

强大的实体

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

例子

Customer(customerid, name, surname)

弱小的实体

It depends on a dominant entity, and it cannot exist without a strong entity.

例子

Address(addressid, addressName, customerid)

Weak entity exists to solve the multi-valued attributes problem.

有两种类型的多值属性。一个是对象的简单的许多价值,例如“爱好”作为学生的一个属性。学生可以有许多不同的爱好。如果我们把爱好留在学生的实体集中,“爱好”就不再是独一无二的了。我们创建一个单独的实体集作为业余爱好。然后我们根据需要把爱好和学生联系起来。爱好实体集现在是一个关联实体集。至于它是否弱,我们需要检查每个实体是否有足够的唯一标识符来识别它。在许多人看来,一个爱好的名字就足以识别它。

另一类多值属性问题则需要一个弱实体来解决。让我们假设在一个食品杂货库存系统中设置了一个项目实体。项目是分类项目还是实际项目?这是一个很重要的问题,因为一个顾客可以在同一时间以一定的金额购买同一件商品,但是他也可以在不同的时间以不同的金额购买同一件商品。你能看到同一个物体但是不同的物体吗。该项目现在是一个多值属性。我们首先将分类项与实际项分开来解决这个问题。两者现在是不同的实体集。类别项目具有项目的描述性属性,就像您通常想到的项目一样。实际的项目不能再有描述性的属性,因为我们不能有冗余的问题。实际项目只能有该项目的日期时间和数量。你可以根据需要把它们联系起来。现在,让我们来讨论一个是否是另一个的弱实体。描述性属性足以标识类别项实体集中的每个实体。实际项目只有日期时间和金额。即使我们提取出记录中的所有属性,我们仍然不能识别实体。想想吧,只是时间和金额。实际的项目实体集是弱实体集。我们利用类别项目实体集中的重复主键来识别集合中的每个实体。

./数据库/数据模型/关系数据模型/弱实体

它可能可以写成两个因素:

  • DEPENDENCE: Depends on the existence of an identifying entity set (total, one-to-many relationship).
  • 识别: 没有主键。它有一个部分密钥(或鉴别器)。它需要使用另一个表的主键进行标识。

如果我们想到一个数据库存有问题和答案,那么问题就是强实体,而答案就是弱实体。 因此,< em > 问题(id,text) < em > 答案(号码,问题 _ id,文本) 将是我们的表。但是为什么答案的表是一个弱实体?

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

  • 从问题的主键识别。一个人不能识别一个答案(假设它的 id 是一个数字标识符) ,因为一个问题可能会被其他问题中可能存在标识符的答案所回答。答案表的主键: (number,questions _ id)。

在浏览了几个小时的搜索引擎之后,我发现了一个很好的 ERD 例子: http://www.exploredatabase.com/2016/07/description-about-weak-entity-sets-in-DBMS.html

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

enter image description here

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