2012-04-30 17 views
9

Quiero modificar una aplicación existente de carrito de compras java para que funcione con una base de datos nosql como Amazon Dynamo DB o Mongo DB ... Pero el DB de MySQL tradicional es un DB relacional, tiene claves compuestas/claves primarias/extranjeras. En cambio, en Amazon Dynamo DB hay una sola clave principal o una clave primaria compuesta compuesta por 2 campos ...cómo convertir un modelo de base de datos relacional existente en un modelo adecuado para una base de datos sin sql (como Mongo DB o Amazon Dynamo DB)

Tengo el modelo de datos detallado de la base de datos relacional ... Ahora, ¿cómo hago para convertirlo de modo que tenga una base de datos en Amazon Dynamo DB que pueda hacer que la aplicación funcione con Dynamo DB (es decir, sin base de datos Sql)? ¿Hay algunas mejores prácticas/precauciones que deben tenerse en cuenta al hacer esto? ¿Esto implicará mucho trabajo reescribiendo el código de la aplicación también? ¿o puedo manejar todos los cambios en el nivel de la base de datos, sin modificar la lógica de la aplicación? Además, ¿hay alguna herramienta que haga la mayor parte de este trabajo?

+0

Por lo que yo entiendo (corríjanme si estoy equivocado), casi todo el código que trata con SQL tendrá que ser cambiado. Siempre que haga una consulta, tendrá que buscarla por clave o deberá escanear el DB hasta que encuentre lo que está buscando. Puede sonar lento, pero cuando se hace bien, es mucho más rápido que MySQL. – Kiril

+0

hombre, ¿realmente crees que es posible responder sin conocimientos de esquema/flujo de datos? Estoy trabajando con Mongo en realidad y lo principal que he aprendido hasta ahora es que la forma en que usa sus datos dicta su nuevo esquema. –

Respuesta

2

No hay una forma automatizada para esto. Las bases de datos NoSQL como MongoDB no mapean las estructuras de datos de la misma forma que MySQL. Existen diferentes características de rendimiento y diferentes formas de almacenar datos. En algunos casos, fusionaría dos tablas SQL en una colección en la que simplemente incluiría los datos unidos en el mismo documento.

Cómo y cuándo lo haría, todo depende de cómo agrupe los datos lógicamente, pero también del tipo de carga de trabajo que está aportando a sus datos. Por ejemplo, para lecturas intensas y pequeñas escrituras, puede almacenar los datos de forma diferente que en el caso en que tenga escrituras pesadas y algunas lecturas.

Además de tener que volver a hacer la interfaz desde su aplicación a la base de datos, también tendrá que volver a diseñar su modelo de datos. Eso va a ser tanto trabajo como diseñar su estructura SQL y funciona mejor no pensando en cómo lo haría en SQL. ¡NoSQL vs SQL son dos bestias totalmente diferentes, que deben ser tratadas igual de diferentes!

2

Este es un comienzo: http://mongify.com/ No es una solución "totalmente automática", pero parece que podría ser una herramienta útil para usar al menos como "esquema" para la ingeniería inversa de una aplicación SQl para funcionar como una aplicación MongoDB.

+0

¿Alguna posibilidad de estar afiliado a mongify? –

Cuestiones relacionadas