面向文档的数据库有完整性吗?

时间:2010-01-13 15:19:37

标签: relational-database document-oriented-db

我来自MySQL背景,我对面向文档的数据库感兴趣,特别是CouchDB。我感兴趣的一件事是数据完整性。面向文档的数据库如何处理这个问题?例如,在RDBMSes中,有一些方法可以防止重复记录,或者保证如果你有一点信息,你将拥有另一个,或者根本没有。

我想更广泛地说,我的问题是,与DODBes使用的问题相比,RDBMSs有哪些类型的问题?我查看了一些其他stackoverflow问题的解释,但没有找到任何好的。

此外,随着我​​的数据库工作,我做了大量的报告,包括求和和平均值,以及历史趋势。这适用于面向文档的数据库吗?

1 个答案:

答案 0 :(得分:2)

大多数文档数据库仅支持非常有限的完整性或不进行完整性检查。他们依靠应用程序来确保数据是正确的。我可以告诉你它在CouchDB中是怎么回事。

到第二部分。我认为RDBMS在报告和分析数据方面做得很好。事实上,您可以使用连接,聚合,函数等对数据运行复杂查询,这使得RDBMS成为一个非常强大的报表工具。 文档数据库非常适合存储“实时”应用程序数据。将检索对象图存储到文档数据库中非常容易。无架构设计使得为新应用程序功能扩展模型变得容易。但是,只有在将应用程序数据拆分为好的文档时,这才有效。否则你会失去很多优雅。

如果你想主要做报道,我更喜欢RDBMS。何时存储大量平坦,简单的记录,很容易对其进行报告。工具等非常适合报告。但是,当想要报告复杂的结构化数据时,您可能仍然可以使用另一个数据库而不是RDBMS。

然而,这并不意味着您需要限制自己使用RDBMS。您可以将这两种技术结合起来。想象一下博客软件。您将“实时”应用程序数据(如博客帖子和注释)存储到文档数据库中。用于点击和登录统计的报告数据存储在RDBMS中。另请参阅Rob Conerys post