gpt4 book ai didi

database - 表格规范化 (BCNF)

转载 作者:搜寻专家 更新时间:2023-10-30 20:40:58 24 4
gpt4 key购买 nike

我正在尝试了解如何规范化数据库,而我们老师给出的练习之一是在 BCNF 中规范化此表:

Flight(**CityDeparture,CityArrival,Day**,NationDeparture,NationArrival)

其中 (CityDeparture,CityArrival,Day) 是主键。所以我假设:

1)城市名是唯一的,独立于国家(不能有两个国家同一个城市,即使现实中不是这样),否则主键是错误的。

2) 功能依赖是 城市出发->国家出发 城市到达->国家到达这意味着该表甚至不在 2NF 中,所以我将其分解如下: 航类(CityDeparture,CityArrival,Day)没有非平庸的 FD 所以它在 BNCF 中,对吧?

CityD(**CityDeparture**,NationDeparture) CityDeparture->NationDeparture

在 BNCF 因为 CityDeparture 是关键

CityA(**CityArrival**,NationArrival) CityArrival->NationArrival

在 BNCF 中,因为 CityArrival 是关键。

我还考虑了这样一个事实,即 CityA 和 CityD 可能是相同的,除非每个城市都有不同的出发/到达代码(例如,如果航类从那里起飞,纽约的代码为“AAA”,如果航类降落在那里,则代码为“BBB” ) 因此可以只有一个 City(Name,Nation) 表,CityDeparture、CityArrival 都会引用它。

分解也应该是无损的,因为 City.Name 是两个表的共同属性并且是 City 的关键(我对此不太确定)

当我把这本书拿给我的老师看时,它只得了 0 分,并告诉我去读这本书,没有进一步的解释。现在我确实读了这本书,我在这里找到了链接的文章,但老实说我一无所知,所以我征求你的意见!任何帮助将不胜感激

最佳答案

1)The city name is unique independently from the nation (there can not be two nation with the same city, even if that is not true in reality), otherwise the primary key would be wrong.

一方面,您的推理是正确的。另一方面,许多(大多数?)教科书规范化练习根本不包含键。通常期望您从依赖项中导出所有可能的 key 。也许您的老师希望您忽略现有 key 。

另一种可能是您的老师希望您包括 FD {CityDeparture, CityArrival, Day} -> {NationDeparture, NationArrival}。

另一种可能性是您的老师希望您探索主键的依赖关系。是否存在多值依赖?

如果您的书中包含可以用铅笔和纸完成的算法(大多数书都可以),请尝试以这种方式完成。看看你得到了什么。

关于database - 表格规范化 (BCNF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com