【问题标题】:Why doesn't the SQL standard provide a way of specifying FDs other than superkeys?为什么 SQL 标准不提供指定 FD 而非超级键的方法?
【发布时间】:2008-12-10 02:53:20
【问题描述】:

在我看来,您可能希望声明其他函数依赖项(当然除了超级键),但 SQL 并没有提供简单的方法来做到这一点。这是为什么呢?

【问题讨论】:

    标签: sql database database-design


    【解决方案1】:

    我不知道 SQL 委员会“为什么”按照他们的方式设计它的第一手答案,但我认为 SQL 的设计者只需要普通表中的一个主键。 3NF 数据库设计中的所有其他列在功能上都依赖于该键,并且仅依赖于该键。

    您可以从功能依赖项中派生键,同样您可以从超级键中派生功能依赖项。但前提是它们以逻辑对称的方式正确声明。

    如果您可以同时声明 键和 FD,那么就有可能声明一个表与其自身存在逻辑冲突,这会破坏规范化。

    语言最好只提供一种机制,以避免模棱两可的声明。

    【讨论】:

      猜你喜欢
      • 2012-03-08
      • 1970-01-01
      • 2010-11-08
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2010-09-19
      • 1970-01-01
      相关资源
      最近更新 更多