【发布时间】:2019-04-19 22:28:17
【问题描述】:
鉴于这些功能依赖于
R: {A,B,C,D,E,F}
AC->EF
E->CD
C->ADEF
BDF->ACD
我得到了这个作为规范封面:
E->C
C->ADEF
BF->C
然后将其分解为 Boyce Codd 范式:
Relation 1: {C,A,D,E,F}
Relation 2: {B,F,C}
我认为这是无损且保持依赖关系的?但这是真的吗,因为从原始的函数依赖关系来看,BDF->ACD 不再存在于我的任何关系中。但是,如果我从计算出的规范覆盖中去,那么我所有的函数依赖都会被保留。
所以问题是:这种对 BCNF 依赖的分解是否保留?
【问题讨论】:
-
BCNF 通常不保留依赖关系en.wikipedia.org/wiki/…
-
您的问题到底是什么? (或问题——但除非它们非常相关,否则请在每个帖子中询问一个。)如果您只是想知道是否可能没有 BCNF FD-preserving 分解,请询问。除了它只是简单的研究但仍然是一个常见问题,所以不要。关于“这是正确的”:根据您的参考/教科书显示您的工作步骤,并说明理由-我们要检查您的工作但不重做,当算法允许时我们需要您的选择,否则我们无法判断你哪里错了哪里对。查看点击谷歌搜索“stackexchange 作业”。
-
你的意思是原始的 FD 集是关系的掩护吗?如果有,就这么说吧。否则,您将找不到关系 & CKs & 分解的规范封面。另外,大概您的意思是“一个”规范封面,因为您没有表明它是唯一的封面。 PS 明白为什么你应该“根据你的参考/教科书展示你的工作步骤,并说明理由”?如果给定的 FD 不是关系覆盖,那么您无法证明 CK 和分解是合理的。这不仅仅是关于我们检查您的工作,而是关于您在询问时做出适当的努力。 PS“从我计算的规范封面中走出来”尚不清楚。
-
您添加了一个问题。可能很清楚-如果这实际上是您的意思。但是你没有澄清你已经写了什么。添加一些不清楚的东西并不能使它清楚。请对我的 cmets 采取行动。如果您告诉我们假设结果,则无需“根据参考/教科书显示您的工作步骤,并说明理由”。但是你需要展示你使用假设的推理。你在这里几乎做到了,但你不清楚。 PS 从您的教科书中,“FD 封面”和“保留 FD”是什么意思?您在哪里遇到了定义是否适用的问题?
标签: database database-normalization relational-algebra functional-dependencies bcnf