Algorithm 将表组织为多个表以减少单元格的算法?

Algorithm 将表组织为多个表以减少单元格的算法?,algorithm,relational-database,Algorithm,Relational Database,我并不是真的想压缩数据库。这是一个更符合逻辑的问题。有没有一种算法可以将一个包含大量列和重复数据的数据表组织成多个ID为的表,从而使总的单元格数尽可能少,然后可以将这些表与一个查询合并以复制原始表 我不关心任何特定的数据库引擎或语言。我只是想看看有没有合乎逻辑的方法。如果您要发布代码,我喜欢C#和SQL,但您可以使用任何代码。我不知道有任何自动算法,但您真正需要做的是对数据库进行严格的规范化。这意味着您需要查看实际的功能依赖关系,并在任何有意义的地方打破这种依赖关系 在计算机程序中尝试这样做的问

我并不是真的想压缩数据库。这是一个更符合逻辑的问题。有没有一种算法可以将一个包含大量列和重复数据的数据表组织成多个ID为的表,从而使总的单元格数尽可能少,然后可以将这些表与一个查询合并以复制原始表


我不关心任何特定的数据库引擎或语言。我只是想看看有没有合乎逻辑的方法。如果您要发布代码,我喜欢C#和SQL,但您可以使用任何代码。

我不知道有任何自动算法,但您真正需要做的是对数据库进行严格的规范化。这意味着您需要查看实际的功能依赖关系,并在任何有意义的地方打破这种依赖关系

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


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

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

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


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

如果你在谷歌上搜索“自动数据库规范化”之类的东西,应该会找到相当多的论文等。底线是,已经做了相当多(合理地)成功的研究,但至少到目前为止,这主要是一个研究课题,而不是真正精良的商业产品。我已经读了一些关于这方面的文章。显然,我需要的是第一个范式,它不应该那么难。我认为,这些算法的重点是达到NF3或更多。如果你在谷歌上搜索“自动数据库规范化”之类的东西,应该会找到相当数量的论文。底线是,已经做了相当多(合理地)成功的研究,但至少到目前为止,这主要是一个研究课题,而不是真正精良的商业产品。我已经读了一些关于这方面的文章。显然,我需要的是第一个范式,它不应该那么难。我认为这些算法专注于达到NF3或更多。