什么是数据库闭包?

cod*_*ver 21 sql database closures

我遇到了这个称为数据库闭包的术语.

我试图寻找它,究竟是什么意思,但我没有找到任何简单的解释.

有人可以解释一下闭包的概念是什么,具体是什么是数据库闭包,如果它是好的/坏的,它是如何被使用或避免的?

似乎通常还有一个闭包术语:http://en.wikipedia.org/wiki/Closure_%28computer_science%29,它涉及到变量与函数的绑定.数据库关闭是否与此相关?

谢谢!

tus*_*747 14

关闭实际上是一个相对简单的概念.在设计数据库时,我们想知道我们的数据库表具有尽可能少的冗余.这意味着确保我们可以在集合(或表)之间建立尽可能少的关系.

一个例子:

如果我们有两组X和Y(您可以将其视为两个名为X和Y的表)并且它们之间具有相互关系:X - > Y(读取此为Y依赖于X)

我们有另一组Z依赖于Y:Y - > Z(也读为Y确定Z)

为了找到闭包,我们找到了可以达到所有关系的最小表数.在这种情况下,我们所需要的只是X.

所以现在,当我们设计数据库时,我们知道我们只需要有一个来自X的关系,而Z和Y实际上可以从X派生.因此我们可以确保在我们的数据库中没有额外的关系导致冗余.

如果你想阅读更多内容,闭包是一个称为规范化的主题的一部分.

  • 你的意思是说'Y - > Z`而不是'Z - > Y`? (5认同)

Cha*_*ins 2

在数据库理论/集合论讨论中提到了闭包——例如 Codd 博士/设计和规范化之类的东西。它与寻找集合的最小代表性元素有关(即,没有冗余等)。很久以前我就试着读过它,但我的眼睛变得斜视,我头疼得厉害。

如果您想阅读一份不错的闭包摘要,请参阅以下摘要: http: //www.cs.sfu.ca/CC/354/jpei/slides/ClosureDecomposition.pdf