2011-04-25 34 views
1

我真的不想压缩数据库。这更是一个合乎逻辑的问题。有什么算法可以获取包含许多列和重复数据的数据表,并找到一种方法将它组织成许多带有ID的表格,从而总共只有尽可能少的单元格,并且此表格可以是然后加入查询以复制原始的一个。将表格组织成许多表格以减少单元格的算法?

我不关心任何特定的数据库引擎或语言。我只想看看是否有合理的方式来做到这一点。如果你会发布代码,我喜欢C#和SQL,但你可以使用任何。

+0

如果你的谷歌的“自动化数据库规范化”的东西,它应该出现相当数量的文件等。底线是已经完成了相当多的(合理的)成功的研究,但至少到目前为止,它主要是研究的主题,而不是真正抛光的商业产品。 – 2011-04-25 19:35:03

+0

我一直在读一点。显然,我需要的是第一种正常形式,不应该那么辛苦。这些算法专注于达到NF3或更多我认为。 – Juan 2011-04-26 07:15:57

回答

1

我不知道任何自动算法,但你真正需要做的是严重规范你的数据库。这意味着查看您的实际功能依赖关系,并在有意义的地方将其关闭。

试图在计算机程序中执行此操作的问题是,如果您当前的一组存储数据代表所有可能的问题情况,并不总是很清楚。你不能只看数值的数值。例如,将布尔变成自己的桌子是没有意义的,因为它们只有两个值,而这只是冰山一角。

我认为在这一点上,没有什么可以打败好的耐心,手工正常化。这是手工完成的。任何可能的计算机算法都会让事情变得混乱,或者让你定义关系,以至于你自己也可以自己做。