【问题标题】:Relations in 2NF and 3NF2NF 和 3NF 中的关系
【发布时间】:2012-04-09 11:39:22
【问题描述】:

这是我已经完成的作业,我只需要确认它是否正确完成或提示如何解决它。谢谢。
这是问题:

关系疫苗旨在记录有关婴儿及其 疫苗接种:当特定婴儿接种特定疫苗时;在哪里 进行了疫苗接种;谁接种了疫苗。下面给出 关系标题:
Vaccine(VaccineCode, InfantId, Date, InfantName, InfantAddress, MedicalCentreCode、MedicalCentreName、MedicalCentreAddress、NurseId、 护士姓名)

除了以主键为决定因素的功能依赖外, 疫苗具有以下重要的函数依赖性:
FD1:InfantId -> InfantName
FD2:InfantId -> InfantAddress
FD3:MedicalCentreCode -> MedicalCentreName
FD4:MedicalCentreCode -> MedicalCentreAddress
FD5:NurseId -> 护士姓名

首先在 2NF 中给出这种关系,然后在 3NF 中给出。

我的解决方案:
2NF:
婴儿(InfantID、InfantName、InfantAddress)
Rest(VaccineCode, InfandID, Date, MedicalCentreCode, MedicalCentreName, MedicalCentreAddress, NurseId, NurseName)

现在婴儿在 2NF 和 3NF 中,但休息关系不在 3NF 中。 所有这些关系的 3NF 看起来像这样(当然,根据我的说法):
VaccinationDetails(VaccineCode, InfantID, Date ,MedicalCentreCode NurseId)

Infant(InfantID, InfantName, InfantAddress)

MedicalCentre(MedicalCentreCode, MedicalCentreName, MedicalCentreAddress)

护士(NurseId, NurseName)

我的解决方案是 2NF 和 3NF 吗?

【问题讨论】:

    标签: database third-normal-form


    【解决方案1】:

    2NF 要求关系 a) 在 1NF 中,并且 b) 没有部分密钥依赖关系。

    从原始关系投影Infant (InfantID, InfantName,InfantAddress) 是正确的。 InfantName 和 InfantAddress 在功能上依赖于 InfantID; InfantID 是键 {VaccineCode, InfantId, Date} 的一部分。

    现在婴儿在 2NF 和 3NF 中,但休息关系不在 3NF 中。

    没错。 3NF 要求 a) 关系在 2NF 中,并且 b) 没有传递依赖。从 {VaccineCode, InfantId, Date} 到 MedicalCentreCode 到 {MedicalCentreName, MedicalCentreAddress} 存在一个传递依赖关系。所以通过投影消除传递依赖会给你

    • 婴儿 {InfantID, InfantName,InfantAddress}
    • MedicalCentres {MedicalCentreCode、MedicalCentreName、MedicalCentreAddress}
    • 疫苗接种{VaccineCode, InfantID, Date, MedicalCentreCode, NurseId, NurseName}

    还有另一个涉及 NurseID 和 NurseName 的传递依赖。投射那个给你的

    • 婴儿 {InfantID, InfantName,InfantAddress}
    • MedicalCentres {MedicalCentreCode、MedicalCentreName、MedicalCentreAddress}
    • 护士 {NurseID, NurseName}
    • 疫苗接种{VaccineCode, InfantID, Date, MedicalCentreCode, NurseId}

    这四个关系现在至少都在 3NF 中。 (前三个在 5NF 中。)

    超越你的家庭作业

    但这有一个小问题。就目前而言,您可以输入“综合医院”的医疗中心代码,以及不在该处工作的护士的身份证号码。您可能会考虑如何表达这种依赖关系,以及由此产生的关系可能是什么样子。

    【讨论】:

    • 非常感谢您的回答。所以基本上我所做的是正确的。谢谢。
    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 2016-03-19
    • 2014-02-28
    • 2013-10-13
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 2011-08-26
    相关资源
    最近更新 更多