如何将现有的关系数据库模型转换为适合无sql数据库的模型(如Mongo DB或Amazon Dynamo DB)

时间:2012-04-30 21:12:24

标签: java sql mongodb amazon-dynamodb

我想修改现有的java购物车应用程序,使其能够与像Amazon Dynamo DB或Mongo DB这样的nosql数据库一起工作......但是传统的MySQL数据库是一个关系数据库 - 它有复合键/主键/外键 - 相比之下,在Amazon Dynamo DB中,有一个主键或一个由两个字段组成的复合主键......

我有关系数据库的详细数据模型...现在我如何转换它以便我在Amazon Dynamo DB中有一个能够使应用程序与Dynamo DB一起工作的数据库(即没有Sql数据库) )?这样做时是否有任何必须记住的最佳做法/预防措施?这会涉及到重写应用程序代码的大量工作吗?或者我可以在数据库级别自己处理所有更改,而无需修改应用程序的逻辑? 此外,是否有任何工具可以完成大部分/大部分工作?

2 个答案:

答案 0 :(得分:2)

没有自动化的方法。像MongoDB这样的NoSQL数据库不像MySQL一样映射数据结构。存在不同的性能特征以及存储数据的不同方式。在某些情况下,您将两个SQL表合并到一个集合中,您只需在同一文档中包含已连接的数据。

如何以及何时这样做,一切都取决于您在逻辑上如何对数据进行分组,但同样取决于您对数据的工作量。例如,对于大量读取和少量写入,您可能会以不同于写入大量读取和少量读取的情况存储数据。

除了必须重新从应用程序到数据库的接口之外,您还必须重新构建数据模型。这将与设计SQL结构一样多,并且最好考虑如何在SQL中执行它。 NoSQL vs SQL是两种完全不同的野兽,需要同样对待它们!

答案 1 :(得分:2)

这是一个开始:http://mongify.com/这不是一个“全自动”解决方案,但看起来它可能是一个有用的工具,至少可以用作反向工程SQl应用程序的“轮廓” MongoDB应用程序。