HEADER_lecciones_de_software

Bases de datos relacionales vs. no relacionales

por Yecid Alexis Rendón, el 28 de mayo de 2019

h_sql_vs_nosql

Es muy común que los desarrolladores de software estemos en la situación de elegir entre bases de datos relacionales y no relacionales. No es para verlo como un dilema o pensar que dependiendo de la decisión vamos a fracasar, en realidad con cualquiera de las dos opciones, es posible construir nuestro sistema, dependiendo de lo que queramos.

Entonces surgen diferentes interrogantes: ¿Es importante saber las diferencias entre ambas bases de datos? ¿Cuál deberíamos usar en cada caso? Estas son preguntas bastante interesantes, puesto que un buen diseño de la base de datos es un factor de alta influencia con respecto a la calidad del proyecto. Dependiendo de la naturaleza de éste, se debe elegir la base de datos, ya que las dos tienen diferentes características. Lee: 3 tipos de análisis de datos para mejorar la toma de decisiones

Para conocer un poco de historia, las bases de datos relacionales se comenzaron a utilizar en los años 80; a diferencia de las no relacionales que se están empezando a usar y tuvieron un importante crecimiento entre 2012 y 2015. Sin embargo, hoy sigue siendo más popular la primera opción.

Bases de Datos relacionales

Son una colección de elementos de datos organizados en un conjunto de tablas formalmente descritas, desde donde se puede acceder a los datos o volver a montarlos de muchas maneras diferentes sin tener que reorganizar las tablas de la base. La interfaz estándar de programa de usuario y aplicación a una base de datos relacional, es el Lenguaje de Consultas Estructuradas (SQL). Los comando SQL se utilizan tanto para consultas interactivas como para obtener información de una base de datos relacional y la recopilación de datos para informes.

Las bases de datos relacionales se basan en la organización de la información en partes pequeñas que se integran mediante identificadores; a diferencia de las bases de datos no relacionales que, como su nombre lo indica, no tienen un identificador que sirva para relacionar dos o más conjuntos de datos. Además son más robustas, es decir, tienen mayor capacidad de almacenamiento, y son menos vulnerables ante fallas, estas son sus principales características.

Bases de datos no relacionales

Están diseñadas específicamente para modelos de datos específicos y tienen esquemas flexibles para crear aplicaciones modernas. Son ampliamente reconocidas porque son fáciles de desarrollar, tanto en funcionalidad  como en rendimiento a escala. Usan una variedad de modelos de datos, que incluyen documentos, gráficos, clave-valor, en-memoria y búsqueda.

Las bases de datos no relacionales (NoSQL) son las que, a diferencia de las relacionales, no tienen un identificador que sirva de relación entre un conjunto de datos y otros. Como veremos, la información se organiza normalmente mediante documentos y es muy útil cuando no tenemos un esquema exacto de lo que se va a almacenar.

Con relación a formatos, la información de una base de datos puede ser almacenada en tablas o documentos. Cuando los datos son organizados en un archivo de Excel, es en formato tabla, pero cuando simplemente son datos escritos como cartas, fórmulas o recetas,  son datos en formato documento. Esto aplica para los dos tipos de bases de datos.

Habitualmente los datos almacenados en tablas son bases de datos relacionales, porque existe la posibilidad de enlazar los datos de una tabla con los de otra y los datos almacenados en documentos son no relacionales, aunque no siempre tiene que ser así. Por ejemplo, los datos de una tabla pueden ser transcritos a un documento, todo depende del punto de vista y la necesidad del problema que se vaya enfrentar.

Para ilustrar una de las diferencias entre bases de datos SQL y NOSQL, vamos a dar un ejemplo. Imaginemos por un momento una ciudad como Medellín (Colombia), donde todas las personas hablan el mismo idioma, por tanto es la única forma de que todos los residentes se comuniquen e interactúen. Si se cambia ese idioma se perjudican todos los residentes.

Las bases de datos relacionales utilizan un lenguaje de consulta estructurado para la manipulación de datos, estas se conforman por filas, columnas y registros y se almacenan por tablas. Para manipular los datos en SQL, se requiere primero determinar la estructura de estos, si se cambia la estructura de uno de los datos, puede perjudicar todo el sistema, ya que las tablas están relacionadas.

Ahora imaginemos otra ciudad como Bogotá (Colombia) y pensemos hipotéticamente que en cada uno de los hogares se habla un idioma diferente, todos interactúan distinto y no hay entendimiento entre todos, pero nadie afecta a nadie. Las bases de datos no relacionales tienen un esquema dinámico, no se requiere la estructura de los datos para su manipulación. Los datos se pueden almacenar de cualquier manera, columnas, documentos, gráficos, etc, y cada documento puede tener su propia estructura, sin afectar los demás, puede agregar más campos a medida que se avanza. Están conformadas por documentos, campos y datos del documento, además, se almacenan por colecciones.


¿Entonces cuándo utilizar SQL o NOSQL?SQL O nosql

Para ilustrar una de las diferencias entre bases de datos SQL y NOSQL, vamos a dar un ejemplo. Imaginemos por un momento una ciudad como Medellín (Colombia), donde todas las personas hablan el mismo idioma, por tanto es la única forma de que todos los residentes se comuniquen e interactúen. Si se cambia ese idioma se perjudican todos los residentes.

Las bases de datos relacionales utilizan un lenguaje de consulta estructurado para la manipulación de datos, estas se conforman por filas, columnas y registros y se almacenan por tablas. Para manipular los datos en SQL, se requiere primero determinar la estructura de estos, si se cambia la estructura de uno de los datos, puede perjudicar todo el sistema, ya que las tablas están relacionadas.

Ahora imaginemos otra ciudad como Bogotá (Colombia) y pensemos hipotéticamente que en cada uno de los hogares se habla un idioma diferente, todos interactúan distinto y no hay entendimiento entre todos, pero nadie afecta a nadie. Las bases de datos no relacionales tienen un esquema dinámico, no se requiere la estructura de los datos para su manipulación. Los datos se pueden almacenar de cualquier manera, columnas, documentos, gráficos, etc, y cada documento puede tener su propia estructura, sin afectar los demás, puede agregar más campos a medida que se avanza. Están conformadas por documentos, campos y datos del documento, además, se almacenan por colecciones.

¿Cuándo utilizar SQL o NOSQL?

bd SQL o NOSQL

Tanto SQL como NoSQL son tipos de bases de datos recomendadas para utilizar a la hora de comenzar con tus proyectos, cada una de ellas con ventajas y desventajas.

Por ejemplo los sistemas contables, o de inventario, son sistemas que requieren transacciones de varias filas, para este tipo de trabajos la mejor opción son las bases de datos SQL (MySq). Si los sistemas son de gestión de contenido, aplicaciones móviles, sistemas de análisis en tiempo real, bases de datos con un crecimiento rápido, con un esquema descentralizado, la mejor opción son bases de datos NOSQL (MongoDB).

Algunas de las ventajas de SQL: mayor soporte y más variedad de herramientas debido a que lleva más tiempo en el mercado, es útil para manejar y obtener los datos, permite agregar otros servidores de SQL, por ejemplo una persona puede acceder a la base de datos de otra.

Como desventajas de SQL están: No es flexible (antes de ingresar los objetos, deben estar correctamente validados), mientras más compleja sea la base de datos, requiere mayor procesamiento y eso se puede ver reflejado en el rendimiento y consumo de recursos.

Ahora, conozcamos algunas de las ventajas de las bases de datos NOSQL: permite una alta escalabilidad (ayuda a reducir la carga de trabajo), flexible a diferentes tipos de datos, los datos deben cumplir con el tipo de dato definido, y algunas desventajas: la integridad de los datos se afecta por el poco soporte, menos seguridad al ejecutar consultas, no existe estandarización, en la mayoría de los casos son poco compatibles con las bases de datos SQL, casi todo su mantenimiento se debe realizar por consola debido a que existen pocas herramientas.

Muchas personas piensan que deben migrar sus bases de datos a tecnologías NOSQL ya que es lo “nuevo”, pero es un pensamiento errado. NOSQL no es el reemplazo de SQL, simplemente es un modelo diferente que ofrece ventajas y soluciones a problemas que poseen las bases de datos relacionales.

Analítica de datos en tiempo real - Descarga el eBook gratuito

 

Temas:Tecnologia e Innovacion

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal