¿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.