Bases de Datos Relacionales vs No Relacionales (NoSQL)

Las bases de datos se dividen principalmente en Relacionales y No Relacionales (NoSQL).
Solo las relacionales utilizan SQL; las NoSQL usan otros métodos.


🗄️ Bases de Datos Relacionales (RDBMS)

Una base de datos relacional utiliza un esquema que define la estructura de los datos.
Toda la información se organiza en tablas (entidades), formadas por filas y columnas, y relacionadas entre sí mediante claves.

Ejemplo de uso

Una empresa podría tener:

  • Una tabla de clientes

  • Una tabla de productos

  • Una tabla de pedidos
    Cada tabla se relaciona mediante claves (como id o product_id).

Este sistema permite que cambies datos de forma consistente en todas las tablas relacionadas.

Los RDBMS más conocidos son: MySQL, SQL Server, PostgreSQL, Oracle, Microsoft Access.

Ejemplo de tablas:

Tabla users
Columnas: id, username, first_name, last_name

Tabla posts
Columnas: id, user_id, date, content

Relación:
El campo user_id en posts se enlaza con id en users.

Esto permite obtener datos de un usuario junto con todas sus publicaciones mediante una sola consulta SQL.


🧩 Bases de Datos No Relacionales (NoSQL)

Una base de datos NoSQL no utiliza tablas ni esquemas rígidos.
Es flexible, escalable y diseñada para datos que cambian rápido o no están estructurados.

Modelos más comunes:

Ejemplo del modelo Key–Value usando JSON:

{
  "100001": {
    "date": "01-01-2021",
    "content": "Welcome to this web application."
  },
  "100002": {
    "date": "02-01-2021",
    "content": "This is the first post on this web app."
  },
  "100003": {
    "date": "02-01-2021",
    "content": "Reminder: Tomorrow is the ..."
  }
}

Funciona como un diccionario en Python o PHP:

{"key": "value"}

La base NoSQL más popular es MongoDB.


🚫 SQL Injection vs NoSQL Injection

Las bases de datos NoSQL tienen un tipo de ataque distinto:
inyección NoSQL, completamente diferente de la inyección SQL tradicional.

Aprenderás sobre NoSQL Injection en otro módulo.