Componentes del Modelado Físico
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:
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: #
- NOT NULL: Asegura que una columna no acepte valores nulos.
- UNIQUE: Impide valores duplicados.
- CHECK: Valida que los valores cumplan una condición específica.
- PRIMARY KEY: Identifica de manera única cada registro.
- FOREIGN KEY: Define relaciones entre tablas.
Ejemplo con restricciones:
NOT NULL:nombresiempre debe tener un valor.UNIQUE:emailno puede repetirse.CHECK:edaddebe 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.
- 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
ClientesyÓrdenesen 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 Clientes | Tabla Órdenes |
|---|---|
idCliente | idOrden |
nombre | fecha |
email | idCliente (FK) |
Ejemplo de Desnormalización:
Tabla Órdenes |
|---|
idOrden |
fecha |
nombreCliente |
emailCliente |
7. Resumen del Módulo 2 #
- Las tablas son el componente central del modelado físico en bases de datos relacionales.
- Los índices optimizan el rendimiento en consultas frecuentes.
- Las restricciones mantienen la integridad de los datos.
- Las vistas son herramientas útiles para consultas repetitivas o control de acceso.
- La partición mejora el manejo de datos grandes.
- La normalización y desnormalización son decisiones clave para equilibrar integridad y rendimiento.
Resumen del tema
Conceptos clave #
- Tablas y Columnas: estructuras base que definen los tipos de datos, valores predeterminados y restricciones para cada registro.
- Índices: estructuras auxiliares (simples, compuestos, únicos, full-text) que aceleran las búsquedas a costa de sobrecarga en inserciones y actualizaciones.
- Restricciones de Integridad: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE y CHECK para asegurar coherencia y evitar datos inválidos.
- Vistas (Views): consultas almacenadas que simplifican el acceso a datos complejos y proporcionan capas de seguridad/abstracción.
- Particionamiento: división física de tablas grandes (por rangos, listas o hash) para mejorar el rendimiento de lectura y mantenimiento.
- Normalización vs. Desnormalización: normalizar elimina redundancias e inconsistencias; desnormalizar duplica datos deliberadamente para acelerar consultas de lectura intensiva.
Qué debes recordar #
El diseño físico equilibra la integridad de los datos (normalización y restricciones) con la velocidad de consulta (índices, vistas, particiones y desnormalización estratégica).