NoSQL数据库替代/模式/与Relational DB的等价

时间:2011-01-04 23:47:36

标签: nosql design-patterns

从我在本视频中看到的内容......

http://www.youtube.com/watch?v=LhnGarRsKnA

几乎所有传统的RDBM操作(JOINS,GROUP BY,HAVING等)都可以通过MapReduce /非规范化技术的组合在NoSQL数据库中完成。

是否有任何明确描述所有这些等效性的文章/文件。类似于...... NoSQL数据库中JOIN的等价性将是...... bla bla

我在任何地方都找不到这种文件:(

4 个答案:

答案 0 :(得分:2)

有一个原因你无法找到那种类型的文档。首先,与SQL不同,没有标准的NoSQL数据库。您是否尝试过搜索特定的NoSQL数据存储?

此外,尝试将关系操作转换为非关系系统只会让您陷入困境。相反,您需要查看您尝试对这些关系操作执行的操作。例如,当您没有多个值字段时,group by用于对具有类别的列表进行排序或处理层次结构对象?是连接组装存储在多个表中的单个对象还是计算集合交集?

SQL的一大优势是任何数据都可以用标准方式表示,任何查询都可以在该数据上运行。它不一定是最适合该数据的,但它是标准的,几乎任何问题都有一个正确的答案。 NoSQL主要是通过牺牲SQL的一般性来优化您的数据存储以满足您的实际需求。这可能是性能,处理大型数据集,处理不一致的数据或只是更简单的代码。简而言之,您需要了解您的要求以及优化它们所涉及的权衡,而不是仅仅默认选择SQL。

您最好的选择是选择一个适合您需要的数据存储(高级功能的良好比较) http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis)并查看使用该数据存储如何设计系统的一些示例。运气好的话,你会找到与你正在做的事情相近的东西。

答案 1 :(得分:1)

本文提供了一些关于NoSQL与使用SQL的良好信息 http://www.develop.com/mongoDB

答案 2 :(得分:0)

要非常小心......你可能不想加入1万亿行表。考虑一下分区数据的模式。例如,使用playOrm,您可以对数据进行分区并执行S-SQL(可伸缩SQL),这样您就可以在分区中执行所需的所有连接,这在许多OLT​​P应用程序中正是您所需要的,就像您的客户是企业,每个企业一样它位于自己的分区中,您可以加入所有与该业务相关的表格。

答案 3 :(得分:0)

这是一个帮助你在noSql世界中获得成功的模式列表....(这是一项正在进行中的工作)。

https://github.com/deanhiller/playorm/wiki/Patterns-Page