Qué es SQL y NoSQL
Empezaremos por definir brevemente estos dos conceptos:
En este caso, al utilizar las siglas SQL estamos haciendo referencia al modelo relacional, que se
trata de un paradigma en los modelos de bases de datos basado en las relaciones entre los
diferentes conjuntos de datos.
Algunos ejemplos de gestores de BDR: Oracle, PostgreSQL, MySQL, etc.
NoSQL, también conocido como Not Only SQL, consiste en una amplia gama de SGBD cuyas
principales características son el uso de un lenguaje alternativo al SQL y que guardan información
no estructurada. Es decir, no existen tablas ni columnas, como en el modelo relacional.
Algunos ejemplos de gestores de BD NoSQL: MongoDB, Cassandra, Redis, etc.
Principales características de SQL y NoSQL
Ahora que podemos distinguir entre los dos paradigmas, pasamos a ver las diferentes
características que las definen:
Base de datos relacional (SQL)
Modelo entidad-relación: éstas siguen el modelo relacional que consiste en el almacenamiento de
datos en entidades (tablas) formadas por filas y columnas que necesariamente se relacionan entre
ellas.
Flexibilidad en el esquema: a diferencia de los sistemas no relacionales, estos esquemas de datos
son muy poco flexibles.
Lenguaje: se caracterizan por utilizar el lenguaje SQL (que, debido a sus siglas en inglés, significa
Structured Query Language). Se trata del lenguaje más utilizado en los SGBD relacionales más
populares, desde su fecha de lanzamiento en 1986. Permiten el acceso a bases de datos y a
recuperar la información almacenada.
ACID: aplican y garantizan las siguientes propiedades conocidas como ACID,
Atomicity: Todo o nada. Si algo falla, toda la operación falla.
Consistency: Hace referencia a la integridad de la información. Garantiza que cualquier transacción
que se pueda realizar en la base de datos la lleve de un estado válido a otro también válido.
Isolation: Con esta propiedad el sistema consigue que las diferentes operaciones que puedan
concurrir sean visibles en el momento adecuado, asegurando que una operación no afecte a la
otra.
Durability: Mediante la persistencia se consigue que, tras la operación, los datos estén asegurados
aun cuando el sistema falle, garantizando así que la información se conserve.
Escalabilidad: En este caso, hablamos de una escalabilidad vertical. Se aumenta el hardware por
uno más potente (disco duro, procesador, etc.).
Base de datos no relacional (NoSQL)
Consistencia eventual: al contrario de lo que ocurre en las bases de datos relacionales, en NoSQL
no se implementa un mecanismo rígido de consistencia que garantiza la integridad de los datos,
sino que consta de un sistema de “consistencia eventual” en el que los cambios realizados se
propagan en un intervalo de tiempo no determinado (por lo que no todos los observadores ven la
actualización de datos inmediatamente).
Flexibilidad en el esquema: hablamos de esquemas de datos dinámicos, organizados en registros
(llamados documentos) que pueden almacenar sus atributos en diferentes formas dependiendo
de las necesidades que se dan en el momento.
Escalabilidad horizontal: se trata de la posibilidad de aumentar el rendimiento del sistema
implementando más nodos (servidores).
Estructura distribuida: existen dos modelos de distribución de datos, mediante los cuales se
distribuyen los datos entre los diferentes nodos que forman el sistema:
Sharding: los datos son distribuidos entre múltiples nodos o servidores, cada uno de los cuales
corresponde a la única fuente de un subconjunto de datos.
Réplica: en este tipo de distribución, los datos son copiados entre múltiples servidores, de modo
que la misma información puede encontrarse en diferentes lugares. Existe la réplica master-slave,
que consiste en la gestión de la copia por parte de un servidor (master) con el cual el resto se
sincroniza; y la peer-to-peer, en la que son todos los servidores que se coordinan para sincronizar
sus copias.
Y bien, con lo que hemos visto hasta ahora ya podemos diferenciar claramente entre estos dos
modelos de gestión de datos. En este post profundizaremos sobre cómo, cuándo y por qué utilizar
NoSQL teniendo en cuenta sus pros y contras. De esta manera podrás decidir, de forma eficiente,
qué paradigma se adecua más a tu proyecto.
En Suma Thinking Digital contamos con un equipo experto que ofrece desarrollos a medida para
atender a las necesidades de sus clientes y usuarios. ¿Necesitas asesoría profesional? Deja tu
comentario para conocer más sobre los requerimientos técnicos de tu proyecto.