鉴于以下表格定义:
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}
我也有以下注意事项/限制:
卡车位于单一基地。
- 醇>
基地可以作为许多卡车的基地。
无论如何,我的问题实际上非常简单,而且(可能)完全是新手。令我困惑的是BaseNum。
注意我有这个:
TruckNum - > (...)BaseNum
然后
BaseNum - > (...)
了解我如何使用BaseNum两次?这是允许的吗?
1NF的定义是该表不应包含任何重复组。但这不仅仅是表定义(而不是FD)吗?我很困惑。
答案 0 :(得分:0)
我从未有过正式的数据库课程作为计算机科学专业,但1NF的实际定义是,在表格的单元格中,您不能使用任何逗号分隔的值列表。这就对了。
因此,您可以拥有OP中描述的功能依赖性。只要将trackNums(或其他实体)存储在某些表的单独行中而不是以逗号分隔的列表存储,它将符合1NF。
答案 1 :(得分:0)
从我看到/了解你的情况来看,你正朝着正确的方向前进。
你有一个属性列表,并且在规范化时(实际上你比1NF更进一步),你完全可以使用BaseNum作为Trucks tbl中的属性。
您的功能依赖性很容易转换为PK / FK对。从这个角度来看,你也正朝着正确的方向前进。