【问题标题】:Compute canonical cover using armstrong's axioms使用阿姆斯壮公理计算规范覆盖
【发布时间】:2011-08-07 12:41:58
【问题描述】:

问题:使用 Armstrong 公理确定规范覆盖。给出你用来到达每一步的公理。

R = (A, B, C, D, E, F) F依赖 = {A -> B, A -> C, CD -> E, CD -> F, B -> E}

我知道阿姆斯特朗的公理:并集、分解、伪及物性、自反性、扩充性和及物性。我也知道规范封面是什么。但是,我不知道如何使用阿姆斯壮公理来得出这个特定问题的答案——我认为您通常会使用阿姆斯壮公理来计算 F+,而不是 cc。 感谢您的帮助。

【问题讨论】:

标签: database database-design database-schema relation canonical-form


【解决方案1】:

当我用谷歌搜索“规范封面”时出现的最佳答案:

http://www.koffeinhaltig.com/fds/ueberdeckung.php

计算 F+ 本身通常不是很有趣。计算一些可证明等价的最小集合可能会更有趣,尽管我有疑问。

注意(不是您的实际问题,但我还是会提到它)虽然您的问题是关于“最小化 FD 两侧的属性集”,但 Armstrong 公理最有用的用途是计算具有左侧的最小属性集,但右侧的最大属性集(=所有属性)。这为您提供了所有(最少的)密钥,从而为您提供了一种检查 NF 的简单方法。

【讨论】:

  • 对于编写数据库管理系统的人来说,最小等价集对性能非常重要。它代表了 dbms 为保证所有功能依赖项保持不变而必须做的最少工作量。但我们大多数人设计和构建数据库系统,而不是数据库管理系统。
  • 嗯?我从未听说过用户(即数据库设计者)应该指定 FD 供 DBMS 使用的 DBMS。我已经听说过 DBMS,其中数据库设计者应该指定 keys 供 DBMS 使用。
  • “编写数据库管理系统的人”是指编写可编译成 Oracle 可执行文件、SQL Server 可执行文件等的源代码的人。我不是其中之一;我是使用 Oracle 构建数据库系统的人之一。
  • 我也是这样的人之一(他们编写的源代码最终成为等可执行文件)。所以我想我理解为什么我说 DBMS 系统根本不处理 FD(当然除了那些伪装成密钥声明的系统)。我想我因此也理解我说 DBMS 系统根本不做任何“FD 计算”的原因,包括“最小等价的计算”。
  • 那你肯定比我更了解它。我会相信你的话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 2021-04-03
相关资源
最近更新 更多