确定关系的功能依赖性及其正常形式
-
25-10-2019 - |
题
我正在研究数据库测试,并且研究指南有一些(许多)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)这种结构的正常形式是什么。
解决方案
要让您开始找到4个功能依赖性,请考虑哪些属性 依靠 在另一个属性上:
例如:区域是否取决于POS? (如果是这样, POS->区域)还是POS取决于区域? (在这种情况下 区域 - > POS).
您的五个语句中有四个告诉您有关属性(或几个属性组合)之间依赖关系的信息。
至于归一化,有一个(相对)清晰的教程 这里. 。词组 “钥匙,整个钥匙,只有钥匙” 也是记住第一,第二和第三正常形式的好方法。
其他提示
在您的评论中,您说
好吧,根据我读过的理论,我认为可能是,但是我有很多疑问:pos→区域,{pos,agent}→区域,代理→pos,{agent,product_code,prodent_code,quattity_sold}→cligity→资格 -
我认为这是一个很好的努力。
- 我认为pos->区域是正确的。
- 我认为{POS,Agent}→区域不正确。如果您查看示例数据,并且您会考虑一下,我想您会发现那个代理 - > pos, 和 该代理 - >区域。
- 我认为{代理,product_code,Quantity_sold}→资格是正确的。要求“代理商出售的每种产品,根据产品和出售的数量分配资格。”其中的重要部分是“根据产品和销售数量的资格”。资格取决于产品和数量,因此{product_code,数量} - >资格。 (对我的要求,没有任何要求的资格对于来自两个不同代理的相同订单可能有所不同。)
因此,根据您的评论,我认为您有这些功能依赖性 至今.
- pos->区域
- 代理 - > pos
- 代理 - >区域
- product_code,数量 - >资格
但是,您至少缺少一个对确定密钥产生重大影响的一个。这是要求。
同一销售点的两个代理无法销售相同的产品。
您如何表达该要求中隐含的功能依赖性?
不隶属于 StackOverflow