我正在学习数据库测试,而且学习指南中有一些(很多)DB正常化的练习和功能依赖,但老师没有做过任何类似的练习,所以我想有人帮我理解这可以解决其他16个问题。
1)给出以下逻辑架构: 关系product_sales
POS Zone Agent Product_Code Qualification Quantity_Sold
123-A Zone-1 A-1 P1 8 80
123-A Zone-1 A-1 P1 3 30
123-A Zone-1 A-2 P2 3 30
456-B Zona-1 A-3 P1 2 20
456-B Zone-1 A-3 P3 5 50
789-C Zone-2 A-4 P4 2 20
假设: •销售点分为区域。 •每个销售点都有代理商。 •每个代理在单个POS中运行。 •同一销售点的两个代理商不能销售同一产品。 •对于代理商销售的每种产品,根据产品和产品分配资格 销售数量。
a)表明存在4种功能依赖性 b)这种结构的正常形式是什么。
答案 0 :(得分:1)
为了让您开始找到4个功能依赖项,请考虑依赖在另一个属性上的哪些属性:
例如:Zone是否依赖于POS? (如果是, POS - >分区)或POS是否依赖于区域? (在这种情况下区域 - > POS )。
五个语句中的四个告诉您某些属性之间的依赖关系(或几个属性的组合)。
至于规范化,有一个(相对)清晰的教程here。短语"the key, the whole key, and nothing but the key"也是记住第1,第2和第3范式的好方法。
答案 1 :(得分:1)
在你的评论中,你说
嗯,根据我读过的理论,我认为它可能是,但我有 很多疑惑:POS→Zone,{POS,Agent}→Zone,Agent→POS,{Agent, Product_code,Quantity_Sold}→资格认证 -
我认为这是一项很好的努力。
因此,基于您的评论,我认为您目前已具备这些功能依赖。
但是至少缺少一个对确定密钥有重大影响的东西。这是要求。
同一销售点的两个代理商不能销售相同的产品。
您如何表达该要求中隐含的功能依赖性?