¿Cuando debo usar #noSQL?


Últimamente se ha hablado de NoSQL, tal vez porque grandes empresas lo utilizan (Twitter, Facebook, etc) pero ¿en que proyectos si debemos usarla y porqué?

noSQL es una base de datos no relacional con un esquema flexible, todo lo contrario a MySQL que requiere relaciones, normalización y siempre con un esquema fijo.

Hay que considerar que noSQL no es adecuada para consultas complejas o minería de datos, pero si permite recuperar rápidamente gran cantidad de datos planos.

 

Su unidad básica de almacenamiento es similar a JSON, se admiten consultas dinámica en los documentos utilizando un lenguaje de consulta similar y casi tan potente como SQL.

En lo personal lo que más me gusta es que su esquema de datos no debe ser «estático» es decir, cada inserción puede llevar campos diferentes.

Hasta el momento solo he mencionado algunas características, solo un poco del aspecto técnico y si deseas saber más al respecto te recomiendo visites este link.  Describe la comparación entre MySQL y MongoDB (es una base de tipo noSQL)

No te recomiendo lo utilices en aplicaciones que requieras relaciones, el típico que piden en todos lados es un Sistema de Control Escolar; en ese caso requieres saber

que alumnos están en que grupo, cuales son sus profesores, calificaciones, entre otras cosas. Todo ello requiere se relacione alumno->maestro, alumno->grupo, así que no sería lo ideal.

Por ejemplo, supongamos que deseas realizar un bot de twitter y esas noticias que publicas las obtienes de diferentes feeds, cada noticia será un registro almacenado en MongoDB, su esquema puede variar debido que hay noticias que no tiene el nombre del autor (por mencionar algo). En este caso lo único que te interesa es la noticia almacenada, por lo que no requieres de relaciones.

Lo que te recomiendo es hacer uso de las ventajas de mySQL y el poder de noSQL, ¿cómo? bueno, todos tus catálogos que necesites relacionar guardalos en una base de datos MySQL (usuario->pc) y todos tus registros que puedan tener un esquema dinámico almacenalos en noSQL (usuario->sitiosVisitados).

Espero sea de utilidad y si tienes retroalimentación de este tema dejame un comentario.

Acerca de silvercorp

Blog personal de Ye§i creado el 18/Ag/06 enfocado al diseño gráfico, tecnología y programación.

Publicado el marzo 29, 2012 en Programación. Añade a favoritos el enlace permanente. 9 comentarios.

  1. Bueno entiendo que para sistemas sin relaciones no nos sirve de mucho nosql, creo que para sistemas administrativos esos que te ponen hacer en cualquier chamba mysql o alguno relacional queda bien ¿no?.
    A lo que he leido de nosql es mas rapido en insercion de datos, aunque por que no usar un esquema mixto como los de craigslist, eso de usar JSON como notación me gusta jaja.

    • Hola g0die. Exactamente así como dices, es más rapido y hay que analizar para que sistemas es apropiado y para cual no. Si, la verdad es que ese formato en Json es lo que más me gusta, es muy fácil de leer y escribir. 😀 saludos y grax por el comentario

  2. Hay algunos NoSQL que no usan Json, como Redis y Cassandra. Aunque claramente MongoDb y CouchDb son los más populares

  3. No entiendo mucho el significado de las relaciones. Yo uso mysql a diario bueno solo he usado este. Y si entiendo que es una relación pero no sabría ciomo afrontar este problema si no se me permitieran . Será cuestión de leer un poco mas. De todas maneras por lo que veo al nivel de mis bd lo pequeñas que son dudo que esto me sirva de mucho. Pero es bueno siempre saber. XD. Hasta mañana excelente aprender contigo silvercorp

    • Hola incaib. Si es el principal problema de noSQL que de igual forma no podia pensar en una BD sin relaciones. Imagina a noSQL como un contenedor de datos, su ventaja es que la estructura no debe ser estatica y cada registro puede tener informacion diferente de asi requerirlo, saludos 🙂

  4. Me gustó tu post. Una aclaración: Con NoSQL es posible realizar minería de datos y en estos momentos ando realizando una investigación para realizar inteligencia de negocios y posiblemente, análisis de negocios (business analytics) con tecnologías NoSQL.

    Saludos.

  1. Pingback: SQL vs. NoSQL ¿Cuál es el mejor? | Un blog personal

Deja un comentario