强弱实体types的示例
我试图在谷歌上看到一个弱而强的实体types的体面的解释,但我还没有完全理解它们。
有人能给我一个强和弱的实体types的例子吗?
一个弱者只能由另一个人拥有才能存在。 例如:ROOM只能存在于BUILDING中。 另一方面,一个轮胎可能被认为是一个强大的实体,因为它也可以存在而不依附于汽车。
只是玩它,问题是强大的实体types,答案是弱的。 问题总是存在,但答案需要一个问题存在。
例如: 不要问'为什么? 如果你爸是化学教授
公司保险单保障员工及其家属,没有雇员,依赖者不能存在; 也就是说,一个人不能获得保险,除非该人是一名雇员的依赖者。“保护者”是“雇员有依赖关系”
弱实体是不能完全由自己的属性标识的实体,并且把外键作为一个属性(通常是与相关实体的主键相关)。
例子
房间的存在完全取决于酒店的存在。 所以房间可以被看作是酒店的弱点 。 另外房间的房间类别也是弱的实体。
另一个例子是,如果银行不再存在,某个银行的银行账户就不存在了。
弱实体也被称为依赖实体 ,因为它的存在取决于其他实体。 这些实体在ER图中由一个双轮廓矩形表示。
强大的实体也被称为独立实体。
强大的实体
它可以存在没有任何其他实体。
例
Customer(customerid, name, surname)
弱实体
它取决于一个显性实体,没有一个强大的实体就不可能存在。
例
Adress(addressid, adressName, customerid)
存在弱实体来解决多值属性问题。
有两种types的多值属性。 一个是“爱好”这样的对象的简单的许多价值作为学生的属性。 学生可以有许多不同的爱好。 如果我们把爱好留在学生实体中,“爱好”就不再是唯一的了。 我们创build一个单独的实体设置为爱好。 然后我们把爱好和学生联系起来。 业余爱好实体集现在是一个关联实体集。 至于是否弱,我们需要检查每个实体是否有足够的唯一标识符来标识它。 在很多人看来,一个兴趣名称可以足以识别它。
另一种types的多值属性问题确实需要一个弱实体来修复它。 假设在杂货库存系统中设置一个物品实体。 该项目是一个类别项目还是实际项目? 这是一个重要的问题,因为顾客可以一次性购买同一件商品,但是他也可以在不同的时间以不同的数量购买相同的商品。 你可以看到它是相同的项目,但不同的对象。 该项目现在是一个多值属性。 我们先解决这个问题,首先将实体项目分类。 这两个现在是不同的实体集。 类别项目具有项目的描述性属性,就像您通常所想的项目一样。 实际项目不能再有描述性属性,因为我们不能有冗余的问题。 实际项目只能有date时间和项目数量。 您可以根据需要链接它们。 现在,我们来谈谈一个是否是另一个的弱实体。 描述属性足以标识类别项目实体集合中的每个实体。 实际项目只有date时间和金额。 即使我们提取logging中的所有属性,仍然无法识别实体。 想想这只是时间和金额。 实际的物品实体集是弱实体集。 我们使用来自类别项目实体集合的重复主键来识别集合中的每个实体。
弱实体types:实体无法与其他实体的实例链接而退出的实体称为弱实体types。 它不能独立存在。 例如:我们的个人电脑依靠我们,它不会打开或closures它自己的。
强实体types:链接到任何其他实体types实例的实体称为强实体types。 它可以独立退出。 例如:一个人可以做任何事情都可以到处使用永远的事情
不依赖于另一个数据对象的存在而存在的数据对象被称为强数据对象。
ARC中引入了第一个强/弱参考types。 在非ARC分配/保留正在使用。 强引用意味着你想“拥有”你正在引用的这个属性/variables的对象。 编译器会小心,只要你用强引用指向它,任何你分配给这个属性的对象都不会被销毁。 只有将属性设置为零后,对象才会被销毁。
弱引用意味着你表示你不想控制对象的生命周期或不想“拥有”对象。 因为至less有一个其他对象对它有强烈的引用,所以你所引用的对象很弱。 一旦不再是这种情况,对象被破坏,你的弱财产将自动设置为零。 iOS中弱引用最常见的用例是IBOutlets,Delegates等。
欲了解更多信息请参阅: http : //www.informit.com/articles/article.aspx? p=1856389& seqNum=5