SQL o NOSQL, esa es la cuestión

Publicado el 28 septiembre 2015 por Jocual

¿SQL o NO SQL? Es una pregunta que nos hemos planteado o hemos oído con cierta frecuencia últimamente.

Veamos primero las características de cada una:

No SQL:

  • Permiten almacenar datos relacionados en, documentos JSON
  • Permiten almacenar datos sin especificar un esquema
  • Por lo general están desnormalizadas lo que la información sobre un artículo está contenido en un solo documento
  • No usan JOINS
  • Permiten que cualquier dato que se guarda en cualquier lugar en cualquier momento y sin verificación
  • Proporcionan un excelente rendimiento y escalabilidad
  • Utilizan los objetos JSON para hacer consultas

SQL:

  • Los datos se almacenan en tablas
  • Requieren un esquema fijo
  • Los datos están normalizados
  • Soportan JOINS entre tablas
  • Soportan integridad de datos
  • Soportan transacciones atómicas
  • Se puede escalar (con un poco de esfuerzo)
  • Usan lenguaje de consulta SQL

Como podemos comprobar en base a las características de cada una, las bases de datos SQL son ideales para proyectos en los requisitos se pueden determinar y la integridad de datos es un requisito esencial. En cambio las bases de datos NoSQL son ideales cuando usemos datos no relacionados, indeterminados o en evolución, donde la velocidad y la escalabilidad son más importantes.

Por tanto las bases de datos SQL serían una buena opción en aplicaciones como tiendas online o un banco online, sin embargo las No SQL sería ideales para aplicaciones tales como redes sociales o análisis de datos.

Pero como siempre, a la hora de usar un tipo de base de datos u otra lo más recomendable es analizar el tipo de aplicación, comprobar las características de cada uno de los tipos de bases de datos y en base a eso utilizar el sentido común para detectar cual es la base de datos ideal para nuestro escenario.