关于设置功能依赖性的困惑

时间:2012-10-07 20:44:29

标签: database-design primary-key normalization functional-dependencies 3nf

鉴于以下表格定义:

TRUCK(TruckNum,TruckType,TypeDesc,TruckMiles,DatePurchased,TruckSerialNum,BaseCity,BaseState,BaseNum,BaseManagerName,ManagerPhone,BasePhone)

我需要设置一个功能依赖项列表。

到目前为止,我有:

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

     BaseNum -> BaseCity, BaseState,  BasePhone

     BaseManagerName -> ManagerPhone}
  

我也有以下注意事项/限制:

     
      
  1. 卡车位于单一基地。

  2.   
  3. 基地可以作为许多卡车的基地。

  4.   

无论如何,我的问题实际上非常简单,而且(可能)完全是新手。令我困惑的是BaseNum。

注意我有这个:

TruckNum - > (...)BaseNum

然后

BaseNum - > (...)

了解我如何使用BaseNum两次?这是允许的吗?

1NF的定义是该表不应包含任何重复组。但这不仅仅是表定义(而不是FD)吗?我很困惑。

2 个答案:

答案 0 :(得分:0)

我从未有过正式的数据库课程作为计算机科学专业,但1NF的实际定义是,在表格的单元格中,您不能使用任何逗号分隔的值列表。这就对了。

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

答案 1 :(得分:0)

从我看到/了解你的情况来看,你正朝着正确的方向前进。

你有一个属性列表,并且在规范化时(实际上你比1NF更进一步),你完全可以使用BaseNum作为Trucks tbl中的属性。

您的功能依赖性很容易转换为PK / FK对。从这个角度来看,你也正朝着正确的方向前进。