找到关系方案的最小密钥

时间:2012-03-20 00:30:54

标签: sql database schema database-schema schema-design

我有一个投资公司的数据库:

  • B(经纪人)
  • O(经纪人办公室)
  • 我(投资者)
  • S(股票)
  • Q(投资者拥有的股票数量)
  • D(股票支付的股息)

功能依赖

  • S⟶D
  • 我⟶B
  • IS⟶Q
  • B⟶O

我需要找到关系方案R = BOSQID的最小密钥,需要证明它。

我不知道如何解决这个问题。 你能告诉我什么吗?

1 个答案:

答案 0 :(得分:1)

杰伊,我理解的方式如下。您需要找到允许您识别所有字段BOSQID的最小字段集。有一种算法,我现在还不记得正确地进行你正在寻找的分析,但这个练习似乎很简单,以便不需要它。

  • 选择B -> O。当B确定O时,我们可以保留B并从密钥中删除O。当前可能的关键字段:BSQID
  • 选择I -> B。当I确定B时,我们可以保留I并从密钥中删除B。请注意,通过传递性,I确定O。当前可能的关键字段SQID
  • 选择S -> D。当S确定D时,我们可以保留S并从密钥中删除D。当前可能的关键字段SQI
  • 选择IS -> Q。当IS确定Q时,我们可以保留IS并从密钥中删除Q。当前可能的关键字段:IS

由于我们不再具有功能依赖性,我们无法继续,因此结果为IS。有更复杂的例子可以解决这个简单的技术对你没有帮助,因为它会让你发疯,这就是为什么我建议你也寻找算法来解决这个问题。