在实体关系模型中定义弱关系

时间:2016-12-11 07:04:49

标签: inheritance relationship data-modeling erd entity-relationship-model

在创建实体关系模型时,我想出了一个混乱:

这是两个实体的示例:

  

company(comp_id(pk),comp_name)

     

topCompanies(rank(pk),comp_id(fk))*包含前十名或   百家公司

它不是一个专业化的例子,因为实体topCompanies不能单独存在,它只包含所有comp_id(例如前十或百)。所以这意味着顶级公司是一个弱势实体,因为它不能独立存在。现在他们可以拥有'是'关系还是'是'关系仅限于继承/专业化的例子?如果不是那么我该如何描述他们的关系?

此外,阅读ERD时是否有任何约定?从左到右/从右到左?

2 个答案:

答案 0 :(得分:1)

首先,让我们直截了当地说出术语。实体和表格不是一回事。表(物理模型)表示在ER(概念模型)中分离为实体关系和关系关系的关系(逻辑模型),它们分别记录关于实体集和关系集的事实。

company实体集由两个表中的列comp_id表示。 company关系/表将company实体集(通过其标识符/密钥)与名称值集相关联。 topCompanies关系/表将company实体集(通过其标识符/密钥)与rank相关联。

rank是实体集还是值集? ER通常要求确定关系的任何集合都是实体集,所以假设有一个名为ranking的实体集,由rank列标识和表示。此ranking实体集与company实体集具有关系,这是我们在topCompanies表中看到的。

因此,topCompanies既不是弱实体也不是company的子类型。弱实体集由其父实体集的密钥与本地区分属性一起标识。子类型实体集由与超类型相同的密钥标识。但是,topCompanies关系/表根本不依赖于comp_id。相反,comp_id取决于rank

这是描述它的实体关系图:

top companies ER diagram

答案 1 :(得分:0)

topCompany是公司的子集。你的关系是正确的。 topCompany是一家公司

所以topCompany有一个指向公司的外键。它没有弱,因为它有一个主键(等级)。