Bases de datos relacionales VS no relacionales

Historia de fondo: Allá por 2016 estaba cursando la carrera de Informática en la Universidad de Albany y tuve que hacer un curso de Introducción a las Bases de Datos.

Dentro del curso, aprendí dos cosas:

Bases de Datos relacionales y Bases de Datos no relacionales, pero nunca aprendí realmente la diferencia entre ambas, así que quise reavivar mi curiosidad con las bases de datos y las diferencias entre ambas.

  • Definida por E.F Codd en 1970, una base de datos relacional es una base de datos digital basada en el modelo relacional de datos. Los datos se almacenan en tablas que contienen filas (que representan una entrada) y columnas (que almacenan y ordenan un tipo específico de información). Las relaciones se establecen a través de claves primarias y foráneas.

Ejemplo de un modelo de base de datos relacional

Lenguajes: SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3

Ventajas:

  • Puede manejar muchas consultas complejas, transacciones de bases de datos y análisis rutinarios de datos.
  • ACID(Atomity, Consistency, Isolation, Durability): Conjunto de propiedades que garantizan la fiabilidad de las transacciones de las bases de datos.

Desventajas:

  • No puede almacenar imágenes complejas o muy grandes, números, diseños y productos multimedia
  • Puede llegar a ser muy costoso con el mantenimiento y los nuevos servidores

¡Genial! Pero, ¿qué pasa si nuestros conjuntos de datos son demasiado grandes o no están estructurados?

Base de datos no relacional o NoSQL

¿Qué es una base de datos no relacional?

  • Las bases de datos no relacionales existían a finales de los años 60, pero el término no fue utilizado hasta 1998 por Carlo Strozzi, que lideró el desarrollo de NoSQL.
  • «Una base de datos NoSQL (que originalmente se refería a «no SQL» o «no relacional») proporciona un mecanismo para el almacenamiento y la recuperación de datos que se modela en medios distintos de las relaciones tabulares utilizadas en las bases de datos relacionales.» – Wikipedia

Tipos de bases de datos NoSQL:

Almacenamiento de columnas: Utiliza el concepto de keyspace que contiene todas las familias de columnas que contienen filas y columnas para almacenar y organizar los datos.

Cada fila contiene una familia de columnas

Base de datos: Apache HBase, Cassandra

Almacenamiento clave-valor: Utiliza un array asociativo(mapa o diccionario) como su modelo de datos fundamental. Los datos se representan como una colección de pares clave-valor y una clave aparecerá como máximo una vez en la colección. Puede almacenar un valor, como un entero, una cadena, una estructura JSON o una matriz, junto con una clave utilizada para referenciar ese valor.

Cada fila tiene su propio ID y valores

Base de datos: Redis, Amazon DynamoDB

Graph: Es una base de datos que utiliza estructuras de grafos para representar y almacenar datos. Esto permite a los usuarios la capacidad de recorrer rápidamente entre todos los valores conectados y encontrar ideas en las relaciones.

Todas las películas en las que actúa Kevin Bacon

Base de datos: neo4J, OrientDB, Titan

Base de datos orientada a documentos: Una base de datos orientada a documentos, o almacén de documentos, es un programa informático diseñado para almacenar, recuperar y gestionar información orientada a documentos, también conocida como datos semiestructurados.

Base de datos: MongoDB, Couchbase

Ventajas:

  • Grandes volúmenes de datos estructurados, semiestructurados y no estructurados
  • Programación orientada a objetos que es fácil de usar y flexible (MongoDB está escrito básicamente en javascript)
  • Arquitectura eficiente y escalable en lugar de una arquitectura costosa y monolítica

Desventajas:

  • Menos soporte ya que las bases de datos NoSQL suelen ser de código abierto
  • Administración: Las bases de datos NoSQL requieren conocimientos técnicos para su instalación y mantenimiento.
  • Menos maduro. Las bases de datos NoSQL todavía están creciendo y muchas características todavía se están implementando.

¿Cuál usar?

Las empresas utilizan una mezcla de bases de datos tradicionales y no relacionales para satisfacer sus requisitos y necesidades de negocio.

Base de datos relacional:

Las bases de datos relacionales tradicionales son muy buenas para mantener sus transacciones de datos seguras y hacer consultas complejas para adquirir información. Las empresas que ya están estructuradas y no están experimentando un crecimiento masivo probablemente se quedarán con las bases de datos tradicionales.

Bases de datos no relacionales:

Grandes para almacenar grandes cantidades de datos con poca estructura. Las empresas que crecen a un ritmo rápido, como las startups, utilizan más bases de datos no relacionales por su escalabilidad y flexibilidad. Junto con la nube, las bases de datos no relacionales también pueden ahorrar mucho dinero a las empresas.

Datos divertidos:

  1. Los datos están creciendo más rápido que nunca y para el año 2020, se crearán unos 1,7 megabytes de información nueva cada segundo por cada ser humano del planeta.
  2. Para entonces, nuestro universo digital de datos acumulado crecerá de los 4,4 zettabyets actuales a unos 44 zettabytes, o 44 billones de gigabytes.
  3. Estamos asistiendo a un crecimiento masivo de los datos de vídeo y fotos, ya que cada minuto se suben hasta 300 horas de vídeo sólo a YouTube.
  4. Este año se comercializarán más de 1.400 millones de teléfonos inteligentes, todos ellos repletos de sensores capaces de recoger todo tipo de datos, por no hablar de los datos que crean los propios usuarios.
  5. Dentro de cinco años habrá más de 50.000 millones de dispositivos inteligentes conectados en el mundo, todos ellos desarrollados para recoger, analizar y compartir datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.