我试图在Google上对弱实体类型和强实体类型进行了不错的解释,但是我还没有完全理解它们。
有人可以给我一个强弱实体类型的例子吗?
Answers:
甲弱实体是不能由自己的属性完全识别并采取实体外键作为一个属性(通常花费的实体的主键它关系到)结合。
例子
房间的存在完全取决于酒店的存在。因此,房间可以看作是酒店的弱项。
另一个示例是,
如果某个银行不再存在,则该银行的银行账户将不存在。
公司保险政策为雇员和任何受抚养者提供保险,如果没有雇员,就不能存在依赖者;也就是说,除非该人是某雇员的受抚养人,否则该人将无法获得作为受抚养人的保险。
它可以不存在任何其他实体而存在。
例
Customer(customerid, name, surname)
它取决于主导实体,没有强大的实体就不可能存在。
例
Adress(addressid, adressName, customerid)
Customer
和Address
分别是一个强实体和一个弱实体。
存在弱实体以解决多值属性问题。
有两种类型的多值属性。一个是诸如“爱好”这样的对象的简单许多值作为学生的属性。学生可以有许多不同的爱好。如果我们将兴趣爱好留在学生实体集中,则“兴趣爱好”将不再是唯一的。我们创建一个单独的实体集作为爱好。然后,我们根据需要将兴趣爱好和学生联系在一起。爱好实体集现在是关联实体集。至于是否弱,我们需要检查每个实体是否具有足够的唯一标识符来标识它。在许多意见中,一个爱好名称就足以识别它。
另一种类型的多值属性问题确实需要一个弱实体来解决。假设一个在杂货店库存系统中设置的商品实体。该项目是类别项目还是实际项目?这是一个重要的问题,因为客户可以一次以一定金额购买相同的商品,但是他也可以在不同时间以不同的金额购买同一商品。您能看到相同的项目但对象不同吗?该项目现在是一个多值属性。我们通过首先将类别项目与实际项目分开来解决它。现在这两个是不同的实体集。类别项目具有该项目的描述性属性,就像您通常想到的项目一样。实际项目不能再具有描述性属性,因为我们不能有多余的问题。实际项目只能包含日期时间和项目数量。您可以根据需要链接它们。现在,让我们谈谈一个人是否是另一个的弱者。描述性属性足以识别类别项目实体集中的每个实体。实际项目只有日期时间和金额。即使我们提取记录中的所有属性,我们仍然无法识别实体。想想这只是时间和数量。实际项目实体集是一个弱实体集。我们借助类别项目实体集中的重复主键来标识集合中的每个实体。我们仍然无法识别实体。想想这只是时间和数量。实际项目实体集是一个弱实体集。我们借助类别项目实体集中的重复主键来标识集合中的每个实体。我们仍然无法识别实体。想想这只是时间和数量。实际项目实体集是弱实体集。我们借助类别项目实体集中的重复主键来标识集合中的每个实体。
./Database/DataModels/RelationalDataModel/WeakEntity
它可能写成两个因素:
如果我们考虑一个包含问题和答案的数据库,那么问题将是强实体,而答案将是弱实体。因此,问题(id,文本)和答案(数字,question_id,文本)将成为我们的表格。但是,为什么答案表是一个弱实体?
对问题表的依赖。每个答案都与一个问题(假设)相关,因此它不能独立存在。这就是为什么我们有些人问一个问题并自己回答,以便他们可以帮助其他人并获得更多的喜好。
从问题的主键识别。一个人将无法识别答案(假设其ID是数字标识符),因为一个问题可能也由其标识符也可能存在于其他问题中的答案回答。答案表的主键:(数字,question_id)。
在浏览搜索引擎几个小时之后,我发现了一个网站,上面有一个很棒的ERD示例:http : //www.exploredatabase.com/2016/07/description-about-weak-entity-sets-in-DBMS.html
我已经重新创建了ERD。不幸的是,他们没有指定弱实体的主键。
如果建筑物只能有一个,只有一个公寓,则似乎无法创建(即丢弃)部分区分房间号。
弱实体类型:其实例不与其他实体的实例链接而无法退出的实体称为弱实体类型。它不能独立存在。例如:我们的PC依赖我们,它将无法自行打开或关闭。
强实体类型:链接到任何其他实体类型的实例的实体称为强实体类型。它可以独立退出。例如:一个人可以做的每件事都可以遍地开花并使用任何事物
ARC中引入了第一个强/弱引用类型。在非ARC中,正在使用分配/保留。强大的引用意味着您要“拥有”使用此属性/变量引用的对象。编译器会注意,只要您使用强引用指向它,分配给该属性的任何对象都不会被破坏。只有将属性设置为nil后,对象才会被销毁。
弱引用意味着您表示您不想控制对象的生存期或不想“拥有”对象。您要弱引用的对象仅能生存,因为至少有另一个对象对此对象具有强引用。一旦不再是这种情况,对象将被销毁,并且您的弱属性将自动设置为nil。iOS中弱引用的最常见用例是IBOutlet,Delegates等。
有关更多信息,请参见:http : //www.informit.com/articles/article.aspx? p=1856389& seqNum=5