首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定关系的函数依赖及其范式

确定关系的函数依赖及其范式
EN

Stack Overflow用户
提问于 2011-07-25 03:27:36
回答 2查看 4.7K关注 0票数 0

我正在学习一个数据库测试,学习指南中有一些(许多) DB规范化和函数依赖的练习,但老师没有做任何类似的练习,所以我希望有人能帮助我理解这一点,以解决其他16个问题。

1)给定以下逻辑模式: Relationship product_sales

代码语言:javascript
复制
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)这种结构的标准形式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-25 03:54:40

要开始查找4个函数依赖项,请考虑哪些属性依赖于另一个属性:

区域依赖于POS吗?(如果是,POS ->区域)或者POS机依赖于区域吗?(在这种情况下,区域-> POS域)。

您的五条语句中有四条告诉您属性之间的依赖关系(或几个属性的组合)。

至于标准化,有一个(相对)清晰的教程here。短语"the key, the whole key, and nothing but the key"也是记忆第一、第二和第三范式的好方法。

票数 1
EN

Stack Overflow用户

发布于 2011-07-30 06:02:17

在你的评论中,你说

嗯,根据我读过的理论,我想可能是,但我有很多疑问: POS

专区,{POS,Product_code}→专区,{→,Product_code,Quantity_Sold}→资格-

我认为这是一个很好的努力。

  1. 我认为POS机->区域是正确的。
  2. 我不认为{POS机,代理}→区域是非常正确的。如果您查看示例数据,并稍微考虑一下,我认为您会发现Agent->POS和Agent->Zone。
  3. 我不认为{ Product_code,Quantity_Sold}→资格是非常正确的。需求声明:“对于代理销售的每个产品,根据产品和销售数量为其分配资格。”其中最重要的部分是“根据产品和销售数量而定的资质”。资格取决于产品和数量,因此{Product_code,->Qualification}数量。(在我看来,要求中的任何内容都不表明来自两个不同代理的相同订单的资格可能不同。)

所以根据你的评论,我认为到目前为止你已经有了这些函数依赖。

  • POS->Zone
  • Agent->POS
  • Agent->Zone
  • Product_code,Quantity->Qualification

但是您至少遗漏了一个对确定关键字有重要影响的关键字。以下是要求。

同一销售点的两个代理商不能销售同一产品。

如何表达该需求中隐含的函数依赖关系?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6809110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档