【问题标题】:consider the following atttributes, which for clarity have been mapped to letter as考虑以下属性,为清楚起见,已将其映射为字母
【发布时间】:2015-08-16 10:22:49
【问题描述】:
A - flight_date
B - plane ticket price
C - source_airport_country
D - ticket holder names
E - address 
F - source airport
G - Pilot_name
H - Pilot_grade
I - Plane_id

plane_id、航班日期和飞行员姓名之间存在功能依赖关系(如果我知道 航班日期和使用的飞机我可以找到飞行该航班的特定飞行员)。即

人工智能 --> G

这些属性之间还存在哪些其他功能依赖关系

答案应该使用字母来表示属性等 应该看起来像:AI --> G

对于关系 R(A,B,C,D,E,F,G,H,I),(即上述属性)并使用泛函 您在上面找到的依赖项使用密钥确定算法找到了以下属性: 1. 绝对是 R 的关键部分, 2. 绝对不是 R 的键的一部分,并且 3. 也许在 R 的键中。 最后为 R 导出一个密钥。

【问题讨论】:

  • 对不起,我不知道你在这里想要实现什么,但实际上分配属性,F-source 的定义不清楚。源包含什么?其次,Pilot 需要一个 id。不能依赖名称,甚至是与名称结合的 dob。您需要一个唯一的 Pilot 标识符。
  • 如果是源机场,对不起源
  • 这看起来像是一道作业题...
  • 我们对“清晰度”的定义截然不同
  • 那么你是怎么被告知要这样做的呢?您从谷歌搜索“(查找或确定)(fds OR“功能依赖关系”)'的某些资源中被困在哪里?如果您不了解参考资料,请就您不了解的第一件事提出问题。您声称存在哪些 FD 和非 FD,为什么?

标签: mysql sql functional-dependencies


【解决方案1】:

来自this answer

再申请关系及情况:

应用关系和情况共同决定了规则和 FD(以及其他约束)!它们只是适用于每种应用程序情况或每种数据库状态(即一个或多个基表的值)(这是标准和可能的应用程序情况的函数)。然后我们进行规范化以减少冗余。

关于 FD 和 CK:

考虑到将行放入表中或从表中取出的标准以及可能出现的所有可能情况,该表中只能有一些值(行集)。

对于每个列子集,您需要确定哪些其他列对于这些列的给定子行值只能具有一个值。当它只能有一个时,我们说列的子集在功能上决定了该列。但是该子集的每个超集也将在功能上确定它,从而减少案例。相反,如果给定的集合不能确定列,则该集合的任何子集都不能确定。此外,您可能会认为列集是唯一的;那么所有其他列在功能上都依赖于该集合。这样的集合称为超级键。

只有确定了 FD,才能确定候选键! CK 是不包含更小的超级密钥的超级密钥。 (CK 和超键的存在也是约束。)我们可以选择一个 CK 作为主键。

参见this answerthis one(以及我的其他涉及标准化的)。

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 2021-02-16
    • 2022-06-28
    • 2021-10-06
    • 1970-01-01
    • 2019-05-11
    • 2019-08-19
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多