Database design 关于设置函数依赖项的混淆

Database design 关于设置函数依赖项的混淆,database-design,primary-key,normalization,functional-dependencies,3nf,Database Design,Primary Key,Normalization,Functional Dependencies,3nf,根据下表定义: 卡车卡车编号、卡车类型、类型描述、卡车文件、购买日期、卡车序列号、BaseCity、BaseState、BaseNum、BaseManagerName、ManagerPhone、BasePhone 我需要设置一个函数依赖项列表 到目前为止,我已经: FDs = {TruckNum -> TruckType, TypeDesc, TruckMiles, DatePurchased, TruckSerialNum, BaseNum BaseNum -> Ba

根据下表定义:

卡车卡车编号、卡车类型、类型描述、卡车文件、购买日期、卡车序列号、BaseCity、BaseState、BaseNum、BaseManagerName、ManagerPhone、BasePhone

我需要设置一个函数依赖项列表

到目前为止,我已经:

FDs = {TruckNum ->  TruckType, TypeDesc, TruckMiles, DatePurchased, TruckSerialNum, BaseNum

     BaseNum -> BaseCity, BaseState,  BasePhone

     BaseManagerName -> ManagerPhone}
我还收到了以下注意事项/限制:

卡车的基础是一个单一的基地

一个基地可以是许多卡车的基地

不管怎样,我的问题其实很简单,可能完全是新手。让我困惑的是BaseNum

请注意,我有:

TruckNum->。。。碱基

然后

碱基->

看到我如何使用BaseNum两次了吗?允许这样做吗


1NF的定义是该表不应包含任何重复组。但这不只是为了表定义而不是FDs吗?我很困惑。

我从来没有正式的数据库课程作为计算机科学科目,但1NF的实际定义是,在表的单元格中,不能有任何逗号分隔的值列表。就是这样


因此,您可以具有OP中所述的功能依赖关系。只要您将trackNums或其他实体存储在某个表的单独行中,而不是以逗号分隔的列表,它将符合1NF。

根据我对您的情况的了解,您的方向是正确的

您有一个属性列表,虽然规范化实际上比1NF更先进,但在tbl中使用BaseNum作为属性是非常好的


您的函数依赖关系将很容易转换为PK/FK对。从这个角度看,您也正朝着正确的方向前进。

谢谢。我只是想确定一下。我想我被绊倒了,因为我大学课程的讲师对1NF的定义相当模糊。当然,我读了谷歌等其他地方的内容,但当我读到老师写的内容时,我又被绊倒了。