img_secundaria_nosql-blogNoSQL es una tendencia en auge, cada día más y más desarrolladores optan por migrar las bases de datos relacionales de sus proyectos a este nuevo modelo, pero ¿es siempre conveniente hacerlo o sólo nos estamos guiando por una nueva moda? Hoy, nuestro SlashBoy Álvaro Saburido, que ocupa el puesto de Tech Leader Cross en SlashMobility, nos destapa los mitos de este nuevo paradigma y explica cuándo, cómo y por qué es útil desarrollar con noSQL.

Antes de empezar definamos qué significa cada una, y cuáles son sus principales diferencias:

sql

Las bases de datos relacionales son el modelo estándar de toda la vida y también el más utilizado en el mundo tecnológico; es un lenguaje de peticiones estructuradas bastante robusto pero muy poco flexible.
SQL se compone de bases de datos, compuestas por tablas que poseen filas con campos estructurados.
Pros
  • Mayor soporte y herramientas debido a que lleva más tiempo en el mercado.

  • Es una tecnología ampliamente conocida y los perfiles que lo conocen son mayoritarios y más económicos.

  • Las bases de dato relacionales llevan una clase de “cabecera” que permite la transaccionalidad entre tablas. Esto significa que si hay un error durante la petición a cualquier nivel de la operación, se devuelve al punto inicial sin comprometer los datos que fueron utilizados durante el proceso.

  • Los datos deben cumplir con el tipo de dato definido en su estructura.

Contras
  • No es flexible; todos los objetos ingresados deben tener los mismos campos y estar correctamente validados.

  • El rendimiento y los recursos, mientras más compleja la base de datos y sus relaciones sea debido a la atomicidad, necesita más procesamiento.

  • La escalabilidad es reducida. Una aplicación con SQL requiere un aumento de recursos de hardware que generalmente son bastante costosos para escalar su rendimiento.

Algunas tecnologías SQL conocidas son:

  • MySQL

  • SQlite

  • Oracle

  • PostgreSQL

  • Microsoft SQL Server

nosql

Las bases de datos no relacionales son un modelo nuevo que se ha puesto muy de moda entre desarrolladores Full Stack porque no requiere un alto conocimiento académico de bases de datos y su curva de aprendizaje y practicidad lo hacen bastante atractivo para proyectos rápidos.
NoSQL se compone generalmente de bases de datos, compuestas a su vez por Colecciones que poseen documentos; también hay otras tecnologías NoSQL que poseen columnas y estructuras diferentes
Pros
  • Su naturaleza descentralizada permite una alta escalabilidad. NoSQL es muy utilizada de una amplia forma en aplicaciones con Big Data.

  • Más abierta y flexible a diferentes tipos de datos.

  • No necesita altos recursos para ejecutarse. Cualquier servidor con la mínima cantidad de recursos puede correr una base de datos no relacional.

  • Escalabilidad horizontal: son capaces de crecer en número de máquinas en vez de en cantidad de recursos de hardware en una sola máquina.

  • Los datos deben cumplir con el tipo de dato definido en su estructura.

 Contras
  • La integridad de los datos se ve comprometida por el poco soporte a transaccionalidad, esto la hace más rápida pero menos segura al ejecutar consultas.

  • No hay una estandarización y diferentes compañías poseen su propia solución.

  • Muchas veces son poco compatibles con bases de datos SQL.

  • Suelen tener pocas herramientas de monitoreo y casi todo su mantenimiento se realiza por consola.

Algunas tecnologías NoSQL conocidas son:

¿Cuál usar?

Entonces, ¿es NoSQL el sustituto directo para evolucionar de las antiguas bases de datos relacionales?

Muchas personas piensan que las tecnologías NoSQL son lo “nuevo” y por lo tanto todo debe migrar a este modelo, pero es un grave error. NoSQL no es un reemplazo, es simplemente un modelo diferente que ofrece ventajas y soluciones a problemas que poseen las bases de datos relacionales.

¿Cuándo debería usar una base de datos NoSQL en mi proyecto?

Si tu proyecto necesita una escalabilidad importante, donde los recursos son escasos (hardware, procesamiento, etc.) y no necesita respetar la integridad de los datos, por ejemplo, una aplicación para IOT con millones de dispositivos reportando valores de sensores, redes sociales o desarrollos de Big Data que presentan retos a las bases de datos tradicionales, entonces sí: NoSQL es la mejor opción

Si el proyecto necesita que se respete la integridad de los datos, por ejemplo, una aplicación para un banco, inteligencia y análisis de negocios para la identificación de patrones en los datos, software a medida o software empresarial que necesitan información con estructura consistente o desarrollos web donde la jerarquía de datos, SQL será la mejor opción.

Recommended Posts

Leave a Comment