Bases de Datos SQL - NoSQL
Bases de Datos SQL - NoSQL
FACULTAD DE INGENIERÍA
NoSQL
por
Rodrigo Alex Rodriguez Garcia
2. CARACTERISTICAS
SQL NoSQL
Las bases de datos SQL son principalmente Las bases de datos NoSQL son principalmente
bases de datos relacionales (RDBMS). bases de datos no relacionales o distribuidas.
Las bases de datos SQL se basan en tablas Las bases de datos NoSQL pueden basarse en
en forma de filas y columnas y deben documentos, pares clave-valor, gráficos o
adherirse estrictamente a las definiciones de columnas y no tienen que atenerse a las
esquema estándar. definiciones de esquemas estándar.
Son una mejor opción para aplicaciones que
necesitan transacciones de varias filas.
Las bases de datos SQL favorecen el Las bases de datos NoSQL favorecen el
esquema normalizado. esquema desnormalizado.
Son una buena opción para consultas No es una buena opción para consultas
complejas, ya que SQL tiene una interfaz complejas ya que no hay una interfaz estándar
estándar para manejar consultas. en NoSQL para manejar consultas.
La sintaxis de las consultas SQL es fija. Las consultas en NoSQL no son tan potentes
como las consultas SQL.
Se llama como UnQL, y la sintaxis para usar el
lenguaje de consulta no estructurado variará de
sintaxis a sintaxis.
Las bases de datos SQL no son adecuadas Las bases de datos NoSQL se adaptan mejor
para el almacenamiento jerárquico de datos. para el almacenamiento jerárquico de datos, ya
que sigue el método de pares clave-valor para
almacenar los datos.
Desde una perspectiva comercial, las bases Se clasifican en función de la forma en que
de datos SQL generalmente se clasifican almacenan datos como almacén de valores
como de código abierto o de código cerrado. clave, almacén de documentos, almacén de
gráficos, almacén de columnas y almacén XML.
Las bases de datos SQL siguen Las bases de datos NoSQL siguen
correctamente las propiedades de ACID correctamente el teorema de Brewers CAP
(atomicidad, consistencia, aislamiento y (consistencia, disponibilidad y tolerancia de
durabilidad). partición).
Agregar nuevos datos en la base de datos Los datos nuevos se pueden insertar fácilmente
SQL requiere que se realicen algunos en las bases de datos NoSQL ya que no
cambios, como datos de relleno, alterando requieren ningún paso previo.
los esquemas.
Ejemplo de bases de datos SQL: MySQL, Ejemplos de bases de datos NoSQL: MongoDB,
Oracle, MS-SQL, SQLite. Apache CouchDB, Redis, HBase.
3. VENTAJAS
Alta escalabilidad: La base de datos NoSQL utiliza fragmentación para el escalado
horizontal. Particionar los datos y colocarlos en varias máquinas de tal manera que se mantenga el
orden de los datos. El escalado vertical significa agregar más recursos a la máquina existente,
mientras que el escalado horizontal significa agregar más máquinas para manejar los datos. La
escala vertical no es tan fácil de implementar, pero la escala horizontal es fácil de
implementar. Ejemplos de bases de datos de escala horizontal son MongoDB, Cassandra, etc.
NoSQL puede manejar una gran cantidad de datos debido a la escalabilidad, ya que los datos
crecen NoSQL se escala para manejar esos datos de manera eficiente.
Alta disponibilidad: La función de replicación automática en las bases de datos NoSQL lo hace
altamente disponible porque, en caso de falla, los datos se replican al estado consistente anterior.
4. DESVENTAJAS
Enfoque estrecho: Las bases de datos NoSQL tienen un enfoque muy estrecho, ya que está
diseñado principalmente para el almacenamiento, pero proporciona muy poca funcionalidad. Las
bases de datos relacionales son una mejor opción en el campo de la Gestión de transacciones que
NoSQL.
Código abierto: NoSQL es una base de datos de código abierto. Todavía no hay un estándar
confiable para NoSQL. En otras palabras, es probable que dos sistemas de bases de datos sean
desiguales.
Desafío de gestión: El objetivo de las herramientas de big data es hacer que la gestión de una gran
cantidad de datos sea lo más simple posible. Pero no es tan fácil. La gestión de datos en NoSQL
es mucho más compleja que una base de datos relacional. NoSQL, en particular, tiene una
reputación de ser difícil de instalar y aún más agitado para administrar a diario.
La GUI no está disponible: Las herramientas de modo GUI para acceder a la base de datos no
están disponibles de manera flexible en el mercado.
Backup Backup es un gran punto débil para algunas bases de datos NoSQL como
MongoDB. MongoDB no tiene un enfoque para la copia de seguridad de datos de manera
consistente.
Tamaño de documento grande: Algunos sistemas de bases de datos como MongoDB y CouchDB
almacenan datos en formato JSON. Lo que significa que los documentos son bastante grandes
(BigData, ancho de banda de red, velocidad), y tener nombres clave descriptivos realmente
perjudica, ya que aumentan el tamaño del documento.
5. CUANDO APLICAR
Cuando se necesita almacenar y recuperar una gran cantidad de datos.
La relación entre los datos que almacena no es tan importante
Los datos cambian con el tiempo y no están estructurados.
No se requiere soporte de restricciones y uniones a nivel de base de datos
Los datos crecen continuamente y necesita escalar la base de datos regularmente para manejar
los datos. [1]
6. CUANDO NO APLICAR
Si realizar consultas e informes complejos y dinámicos, debe evitar usar NoSQL ya que
tiene una funcionalidad de consulta limitada. Para tales requisitos, debe preferir solo SQL.
NoSQL también carece de la capacidad de realizar operaciones dinámicas. No puede
garantizar las propiedades de ACID. En casos como transacciones financieras, etc., puede
utilizar bases de datos SQL.
También debe evitar NoSQL si su aplicación necesita flexibilidad en tiempo de ejecución.
Si la consistencia es una necesidad y si no va a haber cambios a gran escala en términos del
volumen de datos, entonces ir con la base de datos SQL es una mejor opción. [2]
REFERENCIA
[1] geeksforgeeks, «geeksforgeeks,» [En línea]. Available:
https://www.geeksforgeeks.org/introduction-to-nosql/. [Último acceso: 5 8 2019].
[2] softwaretestinghelp. [En línea]. Available: https://www.softwaretestinghelp.com/sql-vs-
nosql/. [Último acceso: 5 8 2019].