这是我已经完成的作业,我只需要确认是否正确完成或提示如何解决它。谢谢。
这是个问题:
疫苗关系旨在记录有关婴儿及其婴儿的信息
接种疫苗:特定婴儿接种疫苗时;在哪里
疫苗接种发生了;谁接种疫苗。以下给出了
关系标题:
疫苗( VaccineCode,InfantId,Date ,InfantName,InfantAddress,
MedicalCentreCode,MedicalCentreName,MedicalCentreAddress,NurseId,
NurseName)
除了以主键作为决定因素的功能依赖性之外,
疫苗具有以下非平凡的功能依赖性:
FD1:InfantId - > InfantName
FD2:InfantId - > InfantAddress
FD3:MedicalCentreCode - > MedicalCentreName
FD4:MedicalCentreCode - > MedicalCentreAddress
FD5:NurseId - >护士名称
首先在2NF中然后在3NF中发送此关系。
我的解决方案:
2NF:
婴儿( InfantID ,InfantName,InfantAddress)
休息( VaccineCode,InfandID,日期,MedicalCentreCode,MedicalCentreName,MedicalCentreAddress,NurseId,NurseName)
现在婴儿在2NF并且在3NF但是Rest关系不在3NF。
所有这些关系的3NF将如下所示(根据我所说):
疫苗接种详细信息( VaccineCode,InfantID,日期,MedicalCentreCode NurseId)
婴儿( InfantID ,InfantName,InfantAddress)
MedicalCentre( MedicalCentreCode ,MedicalCentreName,MedicalCentreAddress)
护士( NurseId ,护士名称)
我的解决方案是2NF还是3NF?
答案 0 :(得分:1)
从原始关系投影Infant (InfantID, InfantName,InfantAddress)
是正确的。 InfantName和InfantAddress在功能上依赖于InfantID; InfantID是关键{VaccineCode,InfantId,Date}的一部分。
现在婴儿在2NF,也在3NF,但Rest关系不在3NF。
没错。 3NF要求a)关系在2NF,b)没有传递依赖。从{VaccineCode,InfantId,Date}到MedicalCentreCode到{MedicalCentreName,MedicalCentreAddress}有一个传递依赖。因此,通过投影删除该传递依赖性可以为您提供
还有另一个涉及NurseID和NurseName的传递依赖。投射一个给你的
这四种关系现在至少都在3NF。 (前三个是在5NF。)
超越作业
但这有一个小问题。现在,您可以输入“综合医院”的医疗中心代码,以及不在那里工作的护士的身份证号码。您可能会想到如何表达这种依赖关系,以及由此产生的关系可能是什么样子。