关系数据库-将表组织成许多表以减少单元格的算法



我并不是真的想压缩数据库。这更像是一个逻辑问题。有没有一种算法,可以把一个有很多列和重复数据的数据表,找到一种方法,把它组织成许多有ID的表,在这种方式下,总共有尽可能少的单元格,然后这些表可以用一个查询连接起来,复制原来的表。

我不关心任何特定的数据库引擎或语言。我只是想看看是否有一个合理的方法来做这件事。如果你要写代码,我喜欢c#和SQL,但你可以使用任何。

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

试图在计算机程序中这样做的问题是,当前存储的数据集是否代表所有可能的问题情况并不总是很清楚。你也不能只看数值。例如,将布尔值拆分为单独的表是没有意义的,因为它们只有两个值,而这只是冰山一角。

我认为,在这一点上,没有什么比耐心的、手工制作的正常化更重要的了。这是手工做的。任何可能的计算机算法要么会把事情搞得一团糟,要么会让你定义关系,这样你就可以自己来做了。

最新更新