我有兴趣了解像这样运行的工具:
给定数据库模式和一些数据,建议模式是否可能以任何特定的正常形式构建,然后告诉如何对模式进行分解以产生进一步的规范化.
基本上,用于数据库模式设计的静态分析工具.
像其他静态分析工具一样,这样的数据库工具不需要生成完美的结果(我怀疑这种"完美"工具在计算上是可行的),或者适用于所有数据库系统,或免费/开源,或其他任何东西.该工具不必独立; 它可以捆绑为一些复杂的IDE功能.我只是想知道那里有什么.
一个像你描述的工具,试图分析你的数据和元数据,并建议你可能的非规范化结构,会经常提出错误的建议,这将使Clippy,微软的助手似乎是一个不可或缺的作家的帮助.
规范化过程涉及将软件需求映射到逻辑数据模型.分析工具无法比您更了解您的数据要求.因此,它无法从错误的数据库设计中推断出哪些部分是错误的.
我知道您已经对问题进行了限定,并且您对该工具的能力的期望有限.但是你希望它对普通的日常工作有用 - 但即使对于最简单的情况也不可靠.
与静态代码分析工具相比.假设您编写了一个应用程序并将其交付给您的客户端,并且客户端说"为什么我不能从此应用程序发送电子邮件?" 静态代码分析工具如何告诉您省略了所需的功能?它无法知道这些要求.
同样,数据库规范化分析工具如何知道表是否适合UserAccount
具有单个MobilePhoneNumber
属性,或者将电话号码分成另一个表更合适,以便单个用户可以列出多个电话?
它可以完成,并且至少有2个可以为你做标准化的可用工具:GeneXus和DeKlarit.他们使用名为NormalizationBySynthesis的过程