55 Tabla 9. Comparativa entre Base de datos SQL y NoSQL Base de datos SQL
Base de datos NoSQL
Tipo
Una base de datos para todo.
Distintos modelos de base de datos, como, por ejemplo, de documentos, grafos, clave-valor y columnas.
Almacenamiento de datos
Los datos individuales (p. ej., “títulos de libros”) se almacenan en líneas de una tabla y se asignan a determinados atributos (p. ej., “autor”, “año de publicación”, etc.). Los juegos de datos se guardan en tablas separadas y el sistema las une en caso de consultas de búsqueda complejas.
Las bases de datos NoSQL no usan tablas, sino documentos enteros, claves y valores, grafos o columnas, en función del tipo.
Esquemas
El tipo y la estructura de los datos se determinan previamente. Para almacenar información nueva, hay que adaptar toda la base de datos (y para ello debe desconectarse de la red).
Flexibilidad. Los nuevos grupos de datos se pueden añadir inmediatamente. Los datos estructurados, semiestructurados y no estructurados se pueden almacenar juntos, sin necesidad de una conversión previa.
Escalamiento
Escalamiento vertical. Un único servidor debe soportar el rendimiento de todo el sistema de base de datos, lo que implica una reducción del rendimiento con grandes volúmenes de datos.
Escalamiento horizontal. Cada administrador puede añadir un nuevo servidor de nube o base, la base de datos NoSQL envía los datos automáticamente a todos los servidores.
Modelo de desarrollo
Código abierto (p. ej., MySQL) o software de pago (Oracle Database).
Código abierto o software de pago.
Características ACID: Atomicity, Consistency, Isolation, Durability
En las bases de datos SQL se dan todas las características ACID.
Para que las bases de datos NoSQL se mantengan flexibles y horizontales, no suelen ser compatibles con transacciones ACID. En su lugar, se usa el modelo BASE (Basically Available, Soft State, Eventually Consistant). Dicho modelo consiste en lo siguiente: disponibilidad antes que consistencia.
Rendimiento
Utilidad en caso de índices de grandes volúmenes de datos. Para aumentar el rendimiento de los sistemas SQL, hay que optimizar las consultas, los índices y la estructura.
Gracias al uso de servidores de nube y clústeres de hardware, las bases de datos NoSQL cuentan con una capacidad de rendimiento notablemente superior.
API
Las consultas para el almacenamiento y el acceso a los datos se transmiten mediante SQL (Structured Query Language).
Los datos se almacenan y se consultan a través de los API basados en objetos.
Nota: Adaptado de (Vergara, 2015). Recuperado de https://www.facilcloud.com/noticias/sql-vs-nosql-whichone-should-i-use/