Jornada de puertas abiertas 15 de septiembre

SQL vs NoSQL : diferencias, usos, ventajas y inconvenientes

SQL

Para hacer su trabajo, los Data Analysts, Data Scientists y Data Engineers necesitan datos. La gestión de las bases de datos es por lo tanto fundamental para todos los trabajos de estas áreas. Un sistema de gestión de bases de datos (SGBD) es un programa que permite a uno o varios usuarios acceder a una base de datos. Permite manejar los accesos diferenciados (identificación, seguridad) y permite interpretar las búsquedas para ingresar, modificar, invertir o suprimir datos. Se pueden diferenciar 2 grandes familias de SGBD : los SGBD SQL y los SGBD NoSQL. Para saber cuál tecnología elegir, vamos a ver de qué se tratan estos 2 tipos de SGBD y cuales son sus diferencias.

¿Qué es una base de datos SQL?

Las bases de datos SQL (acrónimo de Structured Query Language), también llamadas bases de datos relacionales. Están constituidas por un conjunto de tablas en las que los datos están clasificados por categorías. 

Cada columna de estas tablas corresponde y comprende una cierta cantidad de datos de esta categoría. Estas tablas respetan generalmente el mismo esquema fijo, es decir que la forma de la tabla (cantidad de columnas, títulos, tipos de datos y eventualmente otras características). Aquí va un ejemplo:

Como se puede ver, cada columna corresponde a una categoría específica y las columnas tienen un tipo bien definido (nombre, texto, etc).

A esta tabla, se le asocia otra tabla que contiene otras informaciones. Por ejemplo:

Podemos observar que las dos tablas están relacionadas por la columna “Ciudad de Residencia” que corresponde a la columna “Ciudad”, es lo que llamamos una clave extranjera. Esta clave permite unir de manera coherente los datos.

Para comprender en mayor profundidad el funcionamiento y la utilización de SQL, puedes leer el artículo “SQL: todo lo que hay que saber” en nuestro blog y !utilizar la “cheat sheet SQL” que encontrarás allí!

¿Qué es una base de datos NoSQL?

Las bases de datos NoSQL son, como su nombre lo indica, lo opuesto de SQL, es decir que son no relacionales. Estas bases de datos no necesitan un esquema fijo y son fácilmente modulares. Existen diferentes tipos que permiten adaptarse a múltiples formatos de datos, por ejemplo documentos, gráficos o incluso formatos de claves. El objetivo es recuperar los datos de un mismo lugar sin necesidad de pasar por las relaciones entre tablas.

Tomemos el ejemplo anterior, con un formato de documentos, frecuentemente es un objeto JSON que es utilizado (un tipo de documento). En ese caso, cada atributo de las columnas SQL es un campo y los detalles de registro de una persona son los valores de datos asociados a cada campo:

Id Usuario: “452”  ,  Nombre: “Laure”  ,  Apellido: ”Moulin”  ,  Ciudad_de_Residencia: “Toulouse”  , Departemento: “Haute-Garonne”  ,  Región: “Occitanie”

Cada tipo de bases de datos NoSQL está concebida en función de una situación específica y las especificaciones técnicas respectivamente justifican una estructura en particular.

Las bases de datos NoSQL se desarrollaron a finales de los años 2000 y rápidamente se democratizaron gracias a su capacidad para manejar grandes bases de datos distribuidas de Big Data.

Para saber más sobre las bases de datos NoSQL, puedes leer nuestro artículo sobre “NoSQL: comprende mejor las bases de datos no relacionales” en nuestro blog!

Tabla de diferencias entre SQL y NoSQL

SQL NoSQL
Définition
Relationnelle
Non relationnelle ou distribué
Utilisation
Requête pour analyser et récupérer données
Adapté pour une variété de technologie d’application moderne comme les WebApp
Langage de requête
SQL
Plusieurs langage pour les différents bords
Type
Tableau
Document / Graphes / Clés-Valeurs
Schéma
Fixe et prédéfini
Dynamique
Exemple de DMS (Data Management System)
Oracle, PostGres, MySql
MongoDB, Neo4J
Adapté pour
Requêtes complexes et intensives
Grande base de données, Big Data
Année de création
Années 70
Années 2000
Open Source
Mélange open source (PostGres, MySql) et commerciaux (Oracle)
Majorité d’open source
Avantages
Stockage optimisé et stabilité
Facilité et flexibilité du stockage
Inconvénients
Rigidité et besoin d'une certaine expertise
Parfois trop permissif

SQL y NoSQL: ¿cual tecnología elegir?

Ambas tecnologías tienen el mismo objetivo que es almacenar datos, pero lo hacen de maneras muy diferentes como hemos visto. Veamos ahora cuál elegir según tu proyecto:

Elegir SQL :

  • Necesidad una base de datos estructurada y segmentada (la esencia de las bases de datos relacionales)
  • Tipo y validez de datos muy importante
  • Necesidad recurrente de escritura y modificaciones de datos sobre elementos específicos (SQL permite modificar fácilmente lineas especificas)
  • Necesidad de búsquedas complejas

Elegir NoSQL :

  • Bases de datos sin esquemas específicos (estructura no fija por ejemplo)
  • Necesidad de múltiples búsquedas de lectura, todos los datos necesarios se pueden recuperar efectivamente de una vez sin combinación en particular.
  • Grandes conjuntos de datos (Big Data)
  • Datos distribuidos (varias fuentes)

Conclusión

SQL y NoSQL son dos DMS, es decir, dos tecnologías que tienen la misma finalidad: almacenar datos y ofrecer las herramientas para leer y manipular esos datos.

Elegir la base de datos más adecuada es una etapa muy importante ya que la base de datos será la base de trabajo de todas las profesiones de la data. Sin embargo, esta elección no es fácil y la respuesta no siempre es evidente incluso para los expertos. Hoy hemos visto que el primer paso es elegir entre una base de datos relacional (SQL) o no relacional (NoSQL). El siguiente paso será decidir qué opción SQL o NoSQL elegir (Oracle, Postgres, MongoDB, etc.) de las que puedes leer un ejemplo en nuestro blog “Todo lo que hay que saber sobre MongoDB”.

Si quieres saber más sobre estas tecnologías y lo que permiten realizar, no dudes en contactarnos para unirte a nuestras formaciones!

¿No está disponible?

Déjenos su dirección de correo electrónico para que podamos enviarle los nuevos artículos cuando se publiquen.

Jornada de puertas abiertas :