INGRESAR

REGISTRARSE
Buscador

Sql vs nosql; ventajas y desventajas

2024-04-05

Los lenguajes de programación se mantienen en constante cambio, desde lenguaje máquina, assembler, lenguajes de segunda y tercera generación hasta llegar a una cuarta, la cual comúnmente fue utilizada para poder administrar diferentes DBMS (Database Management System) , este lenguaje fue llamado; SQL(Structured Query Language) . Durante la maduración de este lenguaje surgieron varias soluciones de software que permitían poder realizar operaciones de consultas, grabar o insertar información, actualizar, eliminar, etc. Fueron surgiendo varios programas que con el tiempo fueron denominados RDBMS (Sistema de Gestor de Base de Datos Relacionales ó Relational DataBase Management System).

El SQL fue uno de los lenguajes de programación estructurada más aceptada, pero siempre van a existir limitantes, en las cuales la tecnología tiene que ir en constante evolución para buscar respuestas a esas limitantes, por eso el surgimiento de soluciones de software basados en sistemas NoSQL , el cual significa “Not Only SQL” por sus siglas en inglés, lo que busca es mejorar temas de rendimiento sobre las bases de datos relacionales pero también dentro de las ventajas conllevan algunas desventajas las cuales trataremos de discutir durante el desarrollo de este documento.

Ventajas y Desventajas de SQL

Ventajas:

  • Madurez: Dado que tiene ya muchos años de madurez y aceptación por la comunidad de desarrolladores existe una gran variedad y cantidad de información para poder realizar cualquier tipo de desarrollo o extracción de información, lo cual esto ayuda increíblemente en la mejora de tiempos de entrega de cualquier proyecto de software.
  • Atomicidad: En las operaciones e información, esto quiere decir que cualquier operación realizada en la base de datos, garantiza que si a la mitad de cualquier operación de base de datos, surgió algún tipo de problema, la información no se completa, o se realiza al 100% o no se realiza nada.
  • Estándares bien definidos: Por ejemplo, la creación de tablas, el insertar, eliminar y actualizar información, consultas, se escriben bajo la misma sintaxis, basados en el estándar de SQL.
  • Sencillez en la escritura: Su principal aceptación, es su sencillez de escritura ya que se asemeja mucho al lenguaje humano, la comprensión de las operaciones que se programen puede ser interpretadas o escritas por personas que no tengan grandes conocimientos de informática.

Desventajas:

  • Crecimiento: Cuando estas bases de datos tienden a crecer demasiado en el almacenamiento y el mantenimiento es sumamente difícil y costoso, suelen presentar fallas en tiempo de respuesta.
  • Cambios en la estructura: En muchas ocasiones, los negocios necesitan realizar cambios, tanto en sus operaciones como en los sistemas de informática, entonces la base de datos puede verse afectada a cambios, si el diagrama de Entidad Relación no lo soporta, entonces esto implica, tener que realizar una modificación en la estructura de la base de datos y posiblemente, detener el sistema por un tiempo moderado hasta terminar el proceso, esto puede requerir mucho tiempo en el sistema y tal vez conocimientos avanzados en la persona designada para realizar estos cambios.
  • Elección del mas adecuado: En el mercado de RDBMS, se pueden encontrar servicios gratuitos o comprados, dependiendo de varios factores, como pueden ser, cantidad de información, tiempo de disponibilidad, fuerza de operación, etc., Cada solución de RDBMS que se presente en el mercado ofrece también ventajas y desventajas, no precisamente lo mas caro vaya a ser la solución a todo.
  • Complejidad en la instalación: Algunos RDBMS dependen del sistema operativo donde se vayan a instalar, no garantizan el buen funcionamiento si no cumplen con los requerimientos mínimos de instalación.

Ventajas y desventajas de NoSQL

Ventajas:

  • Versatilidad: La principal ventaja por la cual esta nueva tecnología difiere de las demás soluciones de bases de datos es la versatilidad que ofrece a crecimientos o cambios sobre la forma como almacena la información, si fuera necesario agregar un nuevo campo sobre una “colección” (en base de datos relacional se definen tablas), dado que se basa sobre una notación ligera de intercambio de documentos baso en notación JSON(Java Script Object Notation) , simplemente se agregan sobre el documento y el sistema sigue operando sin agregar configuraciones extras.
  • Crecimiento Horizontal: Soportan una escalabilidad descentralizada, es decir, soportan estructuras distribuidas, si durante la operación se ve que el desempeño de los servidores tienden a bajar, se instalan nuevos nodos operativos para que balanceen la carga de trabajo, a esto le llaman crecimiento horizontal.
  • Disponibilidad de Recursos: No se requieren servidores con una gran cantidad de recursos disponibles para operar, pueden empezar a operar con bajos recursos e ir creciendo dependiendo de las necesidades sin tener que detener los servicios de operación.
  • Optimización: Los sistemas NoSQL tienen un algoritmo interno para reescribir las consultas escritas por los usuarios o las aplicaciones programadas, esto con el fin de no sobrecargar el rendimiento de los servidores y mantener un nivel optimo en las operaciones.

Desventajas:

  • Atomicidad: No todas las bases de datos contienen la característica de la atomicidad en la información, esto quiere decir, que la información en ocasiones no es consistente, puede ser diferente en cada uno de los nodos replicas que se puedan configurar en la arquitectura de base de datos.
  • Documentación del Software: Dado que NoSQL, es relativamente nuevo, las operaciones pueden ser limitadas y se requiera de conocimientos avanzados con el uso de la herramienta y las personas que se encuentran realizando estos desarrollos en el software tengan que invertir mas tiempo en los desarrollos.
  • Estándares en el lenguaje: No se tiene un estándar definido entre los diferentes motores que ofrecen este servicio, es decir, por ejemplo: DB2 para poder insertar información sobre su base de datos, el manejo de los objetos JSON no es el mismo como se utiliza en MondosDB y con ellos la diversidad de conocimientos que se tiene que tener dependiendo de la solución NoSQL se vaya a utilizar.
  • Herramientas GUI(Graphical User Interface): Las herramientas que ofrecen para la administración de estas herramientas, suelen tener acceso por consola, no tienen una interfaz gráfica, se requiere conocimiento amplio de las instrucciones a utilizar para su mantenimiento.

Conclusiones:

  • Siempre es bueno evaluar las diferentes alternativas que ofrece el mundo del software, para poder dar solución a muchas de los requerimientos que se presentan en el medio, pero siempre hay que considerar que cualquier solución de software que se seleccione va a tener sus ventajas y desventajas al momento de su desarrollo como también en la operación.
  • La aparición del nuevo NoSQL es relativamente nueva, todavía le queda mucho tiempo para poder afirmar si es la solución a muchos de los problemas que hoy en día se presentan en el mundo de la base de datos, una de las ventajas muy importantes que ofrece NoSQL es que puede manejar grandes cantidades de información, pudiendo devolver el resultado de una consulta en cuestión de segundo, cuando un manejador tradicional RDBMS puede tardar 1000 veces mas el tiempo que el anterior haya resuelto
  • Antes de tomar la decisión de migrar una base de datos relacional a una no relacional hay que considerar todos estos puntos ventajas y desventajas para no caer en un punto del cual ya no se puede regresar y no tener perdidas de información importantes.