0

在此处输入图像描述考虑 er 图。

Q1:

为了该表中行的唯一性,从属表将有一个序列号列作为代理键。但是我们没有将这个代理键列作为属性包含在 er 图中,因为它不是依赖项的属性。正确的?是还是不是?

Q2:

好的,现在我的第二个问题是,为了唯一标识哪个受抚养人归哪个员工所有,我们将使用员工 SSN 和受抚养人姓名的组合。非常好。但我的困惑是我们如何才能找到它?我的意思是我们没有在员工表中存储任何类型的家属信息,我知道这样做是不合逻辑的。但是如何找到哪个依赖属于哪个员工?如果可能的话,请写下一个关于这个的 sql 查询,这样我对此的困惑就会消除。

问题 3:

在家属表中,主键是序列号,但为了搜索哪个家属属于哪个员工,我们将使用员工 ID 和家属姓名的唯一组合。

我很困惑这一切。我确实知道什么是弱实体和强实体,并且它们之间有确定的关系,但我对上述问题一无所知。并请通过将问题编号到各自的问题编号来回答问题。谢谢:)

4

1 回答 1

0

Q1:

该图显示为由from和's ownDependent的组合标识的弱实体。但是,如果您引入代理键,将成为与.SsnEmployeeDependentNameDependentEmployee

代理键它标识的实体的属性(它是从实体集到值集的映射),我将在图中以与显示其他键属性(如Ssn)相同的方式显示它。

Q2:

通过合并标识关系来实现弱实体关系。这意味着Dependent如图所示将实现为:

Dependent (Employee_Ssn PK/FK, Name PK, Sex, Birth_date, Relationship)

包括允许Employee_Ssn我们加入查询,例如DependentEmployee

SELECT Employee.*, Dependent.*
FROM Employee
INNER JOIN Dependent ON Employee.Ssn = Dependent.Employee_Ssn

问题 3:

一旦你添加了一个代理键,Dependent它就变成了一个强大的实体:

员工家属

并且可以实现为:

Dependent (Id PK, Employee_Ssn FK, Name, Sex, Birth_date, Relationship)

您可以在其中添加唯一约束(Employee_Ssn, Name)作为完整性约束并进行有效查询,但这不会影响图表。

于 2016-03-17T20:09:35.383 回答