¿Cómo funcionan las Bases de Datos no SQL?

¿Cómo funcionan las Bases de Datos no SQL?

Al gestionar información de una empresa, sea en poca o grandes cantidades, necesitamos almacenar y administrar en un lugar accesible y seguro, lo que da pie a las bases de datos. Microsoft las define como “una herramienta para recopilar y organizar información”, ya que son un almacén de datos relacionados entre sí que nos permite de forma fácil y organizada usar los datos y administrarlos.

Las Bases de Datos NoSQL (Not Only SQL) llamadas como Non-SQL o Bases de Datos no relacionadas, son un conjunto de datos no vinculados entre sí que usan esquemas flexibles y pensados para gestionar grandes volúmenes de datos.

Un poco de historia

El término NoSQL nació a principios del siglo XXl cuando surgió la web 2.0, ya que aumentó considerablemente la cantidad de datos generados por usuarios. lo que  exigía una manera más flexible de gestionarlos.

Con una arquitectura distribuida, las NoSQL ofrecieron una mejor escalabilidad y rendimiento ante grandes cantidades de consultas diarias. Se piensa que los primeros sistemas NoSQL en surgir fueron DynamoDB (Amazon) y BigTable de Google.

Ventajas de las NoSQL

  • Reducción de costos de mantenimiento.
  • Estabilidad horizontal: se pueden agregar más servidores en lugar de necesitar prestaciones del servidor.
  • Permite la redundancia de datos.
  • No genera cuellos de botella ya que, gracias a su dinamismo, están hechas para resistir simultáneamente grandes cantidades de consultas.
  • Modelo de datos flexible.
  • Facilidad de adaptación en los programadores.

Desventajas de NoSQL

  • Compatibilidad con instrucciones SQL. No están completamente compatibles con el SQL de las bases de datos relacionadas, ya que algunas usan sus propias características.
  • Estándar en el lenguaje: Generalmente los procesos se hacen con diferentes sintaxis en las NoSQL.
  • Inexistencia de joins. Al no estar relacionadas, no pueden tener joins y, si se necesita, se pueden simular con índices, para lo que se necesitarían las SQL. SQL.

¿Cuándo se debe usar NoSQL?

En principio, cuando sabemos que vamos a consultar grandes cantidades de datos, sin importar la industria (editoriales, aerolíneas, medicina, etc.).

Las NoSQL no tienen esquemas ni tablas previamente definidas. En cambio, existen documentos donde hay colecciones y en los que podemos guardar la información a su medida exacta, haciéndola muy flexible y, por ende, la primera opción viable.

En casos como en una red social (por ejemplo, Facebook), que en algún momento tendrá picos elevados de uso por sus usuarios, las NoSQL son una opción perfecta para procesar esos datos, ya que los datos almacenados contienen, por lo general, distintos campos. Además, su costo es muy bajo en comparación con las bases de datos relacionadas.

Al contrario del caso anterior, si quieres realizar más consultas de escritura sería mejor valorar la opción de las SQL porque permiten modificar de una manera más fácil campos específicos, tienen una base estructurada. Por otra parte,  cuando son importantes las validaciones o tipos de datos (donde se requieren búsquedas más complejas), la mejor opción es, sin duda, recurrir a bases de datos relacionadas.

¿Qué empresas usan NoSQL?

McGraw-Hill: Reconocida firma editorial, fundada por James H. McGraw. Publica libros físicos y online de universidad, escolares, revistas, científicos, etc. Tiene presencia a nivel mundial.

El Ministerio de Salud de Turquía: Para la administración de datos de este próspero país, las autoridades utilizan NoSQL, que ayudan a contabilizar más de 77 millones de personas registradas en sistema.

Paypal: El popular sistema de enviar y recibir pagos implementa NoSQL en sus bases de datos.

Sabre: Es uno de los más grandes sistemas de vuelos a nivel mundial. Usa NoSQL para almacenar sus datos sobre vuelos, rutas, etc. Es interesante el caso de esta empresa, debido a que gracias a este sistema que data desde 1960, IBM y Amercan Airlines desarrollaron Sabre. Fue uno de los primeros que contribuyeron con la evolución de los gestores de bases de datos, dando pie poco después a la Segunda Generación de Bases de Datos (SGBD).

Ejemplo de NoSQL vs. SQL

A continuación, mostraré un ejemplo creando una tabla en MySQL y MongoDB.

👉 Usaré MySQL Workbench 8.0 y MongoDBCompass en esta ocasión.

En este ejemplo sencillo, haremos una base de datos llamada prueba. Ahí tendremos datos de usuarios y de correos electrónicos que hipotéticamente necesitamos para guardar los datos de estudiantes en una universidad.

📌 Usando MongoDB

Paso 1: Crear la base de datos llamada prueba y la colección llamada estudiantes.

Paso 2: Dentro de la colección estudiantes, creamos dos alumnos:


Paso 3: Verificamos que los registros se ingresaron correctamente.

Paso 4: Para añadir emails a los alumnos, solo agregamos los correos como un arreglo. Para eso, seleccionamos el alumno, le damos al botón de la parte superior derecha que aparece en el icono de editar, hacemos la actualización y damos clic en update.

Podemos observar que ahora los datos de la alumna Lisseth se han modificado. Ahora tiene dos emails asignados. Así de rápido y simple realizamos este cambio.

📌 Usando MySQL

Paso 1: Para replicar el ejemplo, debemos tener claro lo que haremos. Para ello, realizamos un diagrama ER (Entidad Relación).

Paso 2: En este diagrama observamos que, para agregar varios emails a un estudiante, tendremos una relación de uno a muchos. En código se visualizaría de esta manera, considerando que creamos la base de datos prueba, luego la usamos, después generamos las tablas del diagrama:

Paso 3: Ahora agregamos la información que ya conocemos:

Paso 4: Verificamos que la información esté de manera correcta:

Acá podemos ver que para agregar dos o más emails a la tabla estudiantes debemos agregarlos en la tabla de emails, haciéndose más complicado que con MongoDB.

Visualmente, notamos que los datos no pueden verse fácilmente como en MongoDB. Acá solo vemos los identificadores y, por ende, es necesario contar con esa información (al contrario de MongoDB que, visualmente, nos deja ver el arreglo en la colección).

Por lo anterior, decimos que  MongoDB ayuda considerablemente la escalabilidad, debido a que no modificamos esquemas ni otras tablas para realizar un cambio de este tipo. Además, para los desarrolladores es más intuitivo ver un arreglo que un esquema de datos. Esto mejora la experiencia en el desarrollo y más programadores optan por NoSQL.


Conclusión

Las bases de datos son un elemento fundamental en todo desarrollo. Es importante conocerlas y, sobre todo, diferenciarlas.

Para saber si en nuestro proyecto se debe implementar las NoSQL, hay que conocerlo a profundidad, entender los requisitos. Por ejemplo, si buscamos integridad de los datos, que se pueda determinar su estructura y en los que haremos consultas no de manera masiva, entonces usamos SQL. De lo contrario, si se busca realizar consultas de lecturas masivas que no tengan estructura específica como en proyectos Big Data y de fuentes distribuidas, NoSQL es la opción ideal.

Espero que este artículo haya facilitado  aprender la importancia y el funcionamiento actual de las Bases de datos NoSQL.

Nunca dejes de aprender y practicar. ¡Hasta pronto! 😊

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.