【发布时间】:2012-04-04 12:19:19
【问题描述】:
我有一个投资公司的数据库:
- B(经纪人)
- O(经纪人办公室)
- 我(投资者)
- S(库存)
- Q(投资者拥有的股票数量)
- D(股票支付的股息)
函数依赖
- S ⟶ D
- 我⟶ B
- 是⟶问
- B ⟶ O
我需要找到关系方案 R=BOSQID 的最小密钥并需要证明它。
我不知道如何解决这个问题。 能给我个意见吗?
【问题讨论】:
-
这是一个奇怪的问题。显示的关系模式不是任何更高的范式(它是 1NF,但不是 2NF,更不用说 3NF、BCNF、4NF、5NF 等)。通常,您应该将架构简化为多个表架构,每个表架构都将标识键和外键。在这种情况下,结果将对应于函数依赖关系。要在没有规范化的情况下为给定模式创建最小键,您必须找到一个在功能上确定模式中所有列的键,记住琐碎的 FD 和阿姆斯壮公理(推理规则)。
-
BOISQD 是数据库中的表还是单个表中的列?
-
@xQbert:作为一个有意义的问题,它们必须是列,不是吗?
-
为了清楚起见,您需要找到一些最小的列集 {X, Y, ...} 使得 XY... ⟶ BOSQID。例如,BOSQID ⟶ BOSQID,但 LHS 不是最小的。
-
@Jonathan Leffler:谢谢。没有给定的表和列。我不懂你说什么。你能再解释一下吗?
标签: sql database schema database-schema schema-design