Modelado físico relacional de bases de datos

En este módulo aprenderemos sobre los elementos clave que forman parte del modelado físico de bases de datos, tanto en SQL como en NoSQL. Cada componente será explicado con ejemplos claros y prácticos.


1. Tablas y Estructura Física

Las tablas son los elementos básicos en bases de datos relacionales y se diseñan a partir del modelo lógico.

Componentes de una tabla:

  • Columnas: Representan atributos (campos) de los datos.
  • Filas: Cada fila es un registro único.
  • Tipos de datos: Especifican el formato de los datos (números, texto, fechas, etc.).

Ejemplo en SQL:

1CREATE TABLE Productos (
2    idProducto INT AUTO_INCREMENT PRIMARY KEY,
3    nombre VARCHAR(100) NOT NULL,
4    precio DECIMAL(10,2) NOT NULL,
5    stock INT DEFAULT 0
6);

Explicación:

  • idProducto: Identificador único.
  • nombre: Cadena de texto de hasta 100 caracteres.
  • precio: Número decimal con dos posiciones decimales.
  • stock: Número entero con un valor predeterminado de 0.

2. Índices

Un índice mejora el rendimiento de las consultas, permitiendo acceder rápidamente a los datos. Sin índices, el SGBD debe buscar en toda la tabla, lo que es más lento.

Tipos de Índices:

  • Índice simple: Basado en una sola columna.
  • Índice compuesto: Basado en varias columnas.
  • Índice único: Garantiza que no haya valores duplicados.
  • Índice full-text: Para búsquedas en texto largo.

Ejemplo de un índice simple:

1CREATE INDEX idx_nombre ON Productos(nombre);
  • Este índice hace que buscar productos por nombre sea más rápido.

Ejemplo de un índice compuesto:

1CREATE INDEX idx_precio_stock ON Productos(precio, stock);
  • Útil si las consultas frecuentemente filtran por precio y stock juntos.

3. Constraints o Restricciones

Las restricciones aseguran que los datos almacenados cumplan con ciertas reglas de integridad.

Tipos de restricciones:

  1. NOT NULL: Asegura que una columna no acepte valores nulos.
  2. UNIQUE: Impide valores duplicados.
  3. CHECK: Valida que los valores cumplan una condición específica.
  4. PRIMARY KEY: Identifica de manera única cada registro.
  5. FOREIGN KEY: Define relaciones entre tablas.

Ejemplo con restricciones:

1CREATE TABLE Clientes (
2    idCliente INT PRIMARY KEY,
3    nombre VARCHAR(50) NOT NULL,
4    email VARCHAR(100) UNIQUE,
5    edad INT CHECK (edad >= 18)
6);
  • NOT NULL: nombre siempre debe tener un valor.
  • UNIQUE: email no puede repetirse.
  • CHECK: edad debe ser mayor o igual a 18.

4. Vistas

Una vista es una consulta guardada que actúa como una tabla virtual. Es útil para simplificar consultas complejas o para controlar el acceso a los datos.

Ejemplo: Supongamos que queremos mostrar solo productos con stock disponible:

1CREATE VIEW ProductosDisponibles AS
2SELECT idProducto, nombre, precio
3FROM Productos
4WHERE stock > 0;
  • Ahora, puedes consultar esta vista como si fuera una tabla:
1SELECT * FROM ProductosDisponibles;

5. Particiones y Segmentación

La partición divide grandes tablas en partes más pequeñas (particiones) para mejorar el rendimiento y facilitar el manejo de los datos.

Ejemplo: Supongamos que tienes una tabla con datos de ventas organizados por año. Puedes particionarla por rango de fechas.

1CREATE TABLE Ventas (
2    idVenta INT,
3    fecha DATE,
4    total DECIMAL(10, 2)
5) PARTITION BY RANGE (YEAR(fecha)) (
6    PARTITION p2019 VALUES LESS THAN (2020),
7    PARTITION p2020 VALUES LESS THAN (2021),
8    PARTITION p2021 VALUES LESS THAN (2022)
9);
  • Cada partición guarda las ventas de un año específico.

6. Normalización vs Desnormalización

  • Normalización:

    • Proceso de dividir datos en tablas para eliminar redundancia y mejorar la integridad.
    • Ejemplo: Dividir Clientes y Órdenes en tablas separadas.
  • Desnormalización:

    • Combinar tablas para mejorar el rendimiento de consultas.
    • Ejemplo: Incluir los datos del cliente directamente en la tabla Órdenes.

Ejemplo de Normalización:

Tabla ClientesTabla Órdenes
idClienteidOrden
nombrefecha
emailidCliente (FK)

Ejemplo de Desnormalización:

Tabla Órdenes
idOrden
fecha
nombreCliente
emailCliente

Resumen del Módulo 2

  1. Las tablas son el componente central del modelado físico en bases de datos relacionales.
  2. Los índices optimizan el rendimiento en consultas frecuentes.
  3. Las restricciones mantienen la integridad de los datos.
  4. Las vistas son herramientas útiles para consultas repetitivas o control de acceso.
  5. La partición mejora el manejo de datos grandes.
  6. La normalización y desnormalización son decisiones clave para equilibrar integridad y rendimiento.
  • Loading...
  • Crea una tabla llamada Products con dos columnas: id y nombre.

    Loading...