2011-03-28 33 views
2

我们在不断更新外部资源的多个mysql数据库中有大量的数据。 是否有一些软件(最好是基于PHP的),我们可以根据数据库定义规则来测试,例如数据的正则表达式,更新频率,缺失数据等等。)并定期运行检查以报告出现了问题或数据中的趋势发生了变化?是否有数据完整性测试软件?

+2

是的。这就是所谓的程序。坏消息是你必须自己写!严重的是,您的数据与您的业务规则。难道这些检查和限制是否已经到位以强制执行完整性和清洁? – 2011-03-28 09:33:04

+0

我没有问题写它,但然后我必须保持它,照顾重复警报和东西。因为我知道业务规则,所以为此编写整个基础结构没有任何意义。业务规则很容易定义,当它有一个用户界面。 – Nir 2011-03-28 09:40:17

回答

0

STFW怎么样?谷歌搜索“MySQL数据质量”所带来的(等等)的链接, http://www.talend.com

否则,我会看一下数据仓库工具 - Oracle仓库构建例如有数据审核的机制。

亲切的问候,弗兰克

0

如果您有不与外键连接多个数据库表,那么你应该添加和使用他们的数据的完整性。

如果你有很多的PL/SQL代码,那么你需要进行单元测试(是的,DB也需要测试)。所以最终你会最终得到定期运行你的测试的“持续集成”。是的,你必须自己写它

请参阅http://www.slideshare.net/antonkeks/database-refactoring欲了解更多信息。

如果你不得不同步数据库,那么我建议使用SQLYog。

+0

OP在询问MySQL,所以我猜他们没有任何PL/SQL代码(对于那些不熟悉它的人:PL/SQL是Oracle对SQL语言的程序扩展) – 2011-03-28 10:37:52

+0

MySQL确实有存储过程并且拥有由Oracle提供。你可以说它有它的程序语言。 – 2011-03-28 11:22:42

0

如果您已经正确设计了数据库,则不存在许多数据完整性问题。这意味着要完成设置PK/FK关系,数据约束,正确的数据类型,触发器等的工作。这尤其意味着你永远不会认为应用程序会处理所有这些。这可能意味着设置工作来检查某些类型的数据输入并通知某人可能存在问题。这可能意味着修改所有数据导入以使用标准的一组清理例程。这可能意味着创建一种识别和合并重复记录的方法(所有复杂的数据库都应该有一个写入的重复数据删除应用程序,以便用户可以创建关于保留哪些数据的信息以及发现重复信息时保存哪些数据)。

如果您没有正确设计数据库,则需要根据业务规则逐个设置数据库中的数据,随时修复不良数据。开发人员无法正确设计的问题并不容易。由于每个数据库的需求都非常不同,我所知道的任何人都没有自动化的方法来执行所有完整性规则,这是数据库设计人员在设计数据库时所做的大部分工作。我根本不相信任何COTS计划要做到这一点,要么是基于我曾经有过不愉快的支持的每个COTS数据库设计得有多糟糕。