我对学习像这样工作的工具很感兴趣:
给定一个数据库模式和一些数据,建议该模式是否可能以任何特定的规范形式构成,然后告诉该模式可能如何分解以产生进一步的规范化。
基本上,这是一个用于数据库模式设计的静态分析工具。
像其他静态分析工具一样,这样的数据库工具不需要生成完美的结果(我怀疑这样的“完美”工具在计算上是可行的),或者适用于所有数据库系统,或者免费/开源,或者其他任何东西。该工具不需要是独立的;它可以作为一些复杂的IDE功能捆绑在一起。我只是想知道外面有什么。
发布于 2010-02-25 14:37:16
这是可以做到的,至少有两个专门可用的工具可以为您执行规范化: GeneXus和DeKlarit。它们使用一个名为NormalizationBySynthesis的进程
发布于 2009-02-12 20:18:48
一个像你所描述的工具,试图分析你的数据和元数据,并建议你可能的非规范化结构,会给错误的建议如此频繁,这将使Clippy,微软助手似乎是一个不可或缺的作家的助手。

规范化的过程包括将软件需求映射到逻辑数据模型。分析工具无法比您更好地了解您的数据需求。因此,它不能从错误的数据库设计中推断出它的哪些部分是错误的。
我知道你已经限定了这个问题,并且你对这个工具的功能的期望是有限的。但您可能希望它对普通的日常任务有用--但即使对于最简单的情况,它也不可靠。
与静态代码分析工具相比。假设您编写了一个应用程序并将其交付给您的客户,而客户问“为什么我不能从这个应用程序发送电子邮件?”静态代码分析工具如何告诉您遗漏了所需的功能?它不可能知道这些要求。
同样,数据库规范化分析工具如何知道UserAccount表是否适合具有单个MobilePhoneNumber属性,或者将电话号码分隔到另一个表中以便单个用户可以列出多个电话更合适呢?
发布于 2009-08-28 08:00:06
我也考虑过这个问题。这在理论上是可能的,并且有一些关于这个主题的研究论文。www.dbtools.cs.cornell.edu曾经有一个很酷的工具。这是由著名作家拉古·拉马克里希南开发的。他目前在雅虎研究院工作。有关更多信息,请参阅以下文章
ACM,T.和Miton,J. (1988),“数据库规范化的新方法和快速算法",13(3),339-365.
第三个链接非常有趣。论文摘要如下:
本文是关于用
设计一个完整的交互式关系数据库规范化工具-- JMathNorm。它是同一作者开发的原型1的扩展,除了现有的第三范式(3NF)模块之外,还包括第二范式(2NF)和Boyce-Codd范式(BCNF)。本研究中开发的工具是完整的,可以用于实时数据库设计,也可以帮助向数学背景有限的学生讲授数据库规范化的基本概念。JMathNorm还支持交互使用模块,用于实验闭包、完全闭包等基本集合操作,并与模块一起获得函数依赖集的最小覆盖,并测试候选键的属性。JMathNorm的图形用户界面是用Java语言编写的,并利用Mathematica的JLink工具来驱动Mathematica内核。
我对这个问题的答案也非常感兴趣。如果有人遇到了工具,请让我们知道!
https://stackoverflow.com/questions/542866
复制相似问题