具有唯一编号ID的弱实体

时间:2016-05-04 16:49:22

标签: sql relational-database entity-relationship er-diagrams weak-entity

这是一个鸟类观察者数据库示例。假设您有三个实体,BirdSpeciesLocationObserver。要拥有实体Observation,您需要所有这三个实体。没有他们就没有观察。

我的理解是,上述要求使Observation成为弱实体。但是如果同一个人可以在同一个地点多次发现相同的物种呢?然后该条目将不是唯一的。

因此,我的问题是,您是否可以拥有Observation的主键,这只是一个数字,每次观察都会逐渐增加,而实体仍然是一个弱实体?

2 个答案:

答案 0 :(得分:0)

我认为新实体的弱点取决于它的关系,现在它的主要关键是它。

要理解这一点,想象一下,不是按顺序增加数字,而是每个观察都有一个独特的日期时间。这并没有改变这样一个事实:如果你删除三个实体中的一个没有观察。

答案 1 :(得分:0)

弱实体由单个父实体的主键和另一个属性标识。弱实体通常是整体的一部分。 Observation(不引入代理键)是三元关系,而不是弱实体。

要在同一位置记录同一物种的同一个人的多个观察,我会在Observation关系和主键中包含日期/时间值,或者在记录的非素数列中包含观察次数。请记住,关系不能有重复的条目,因此,如果没有区分列,那么它不是唯一性,而是您记录多个条目的能力。但是,SQL DBMS并不是正确的关系,它可以让你自己射击。

一旦引入了代理键,就可以将关系重新定义为关联实体。由代理键识别的实体始终是强实体,因为它们由它们自己的属性识别。代理键允许您记录其他重复的条目,这就是代理键通常用其他属性上的唯一键补充的原因。