Diseño Lógico de la Base de Datos.
Aprende a crear un modelo lógico de base de datos, definiendo tablas, columnas y relaciones entre entidades.
Cristian Escalante
Última actualización: 19 de abril de 2025
Diseño Lógico de la Base de Datos.
En el modelo logico yadebemos definir una estructura mucho más ténica, agregando las propiedades que conectan una entidad con otra, y en muchos casos agregar la multiplicidad existentes entre las relaciones de las Entidades.
Este es el segundo paso en el diseño de una base de datos. Aquí convertimos el modelo conceptual (que era abstracto) en una estructura técnica, definiendo:
- tablas (equivalentes a entidades)
- columnas (equivaentes a los atributos)
- relaciones con claves primarias y foraneas
- Reglas de integridad (como los campos obligatorios o unicos)
Ejemplo: Modelo Lógico para un Concesionario de Autos
1. Tablas (Entidades Convertidas a Estructura Técnica)
Cada entidad del modelo conceptual se convierte en una tabla, y sus atributos en columnas.
Tabla Auto
Columna | Tipo de Dato | Descripción |
---|---|---|
id_auto | INT | Clave primaria (PK) |
marca | VARCHAR(50) | Ej: "Toyota", "Ford" |
modelo | VARCHAR(50) | Ej: "Corolla", "Mustang" |
año | INT | Ej: 2023 |
precio | DECIMAL(10,2) | Ej: 25000.00 |
id_sucursal | INT | Clave foránea (FK) → Sucursal |
Tabla Cliente
Columna | Tipo de Dato | Descripción |
---|---|---|
id_cliente | INT | PK |
nombre | VARCHAR(100) | Ej: "María González" |
email | VARCHAR(100) | Único, ej: "cliente@mail.com" |
teléfono | VARCHAR(20) | Opcional |
Tabla Venta
Columna | Tipo de Dato | Descripción |
---|---|---|
id_venta | INT | PK |
fecha | DATE | Ej: "2024-05-15" |
monto_total | DECIMAL(10,2) | Ej: 30000.00 |
id_cliente | INT | FK → Cliente |
id_vendedor | INT | FK → Vendedor |
2. Relaciones (Ahora con Claves Foráneas)
En el modelo lógico, las relaciones del conceptual se implementan con claves foráneas (FK).
🔹 Ejemplo de relaciones en SQL:
-- Un Auto pertenece a una Sucursal (1:N)
ALTER TABLE Auto ADD CONSTRAINT fk_sucursal
FOREIGN KEY (id_sucursal) REFERENCES Sucursal(id_sucursal);
-- Una Venta tiene un Cliente y un Vendedor (1:N)
ALTER TABLE Venta ADD CONSTRAINT fk_cliente
FOREIGN KEY (id_cliente) REFERENCES Cliente(id_cliente);
ALTER TABLE Venta ADD CONSTRAINT fk_vendedor
FOREIGN KEY (id_vendedor) REFERENCES Vendedor(id_vendedor);
3. Normalización (Eliminar Redundancias)
El modelo lógico aplica reglas de normalización para evitar datos duplicados. En nuestro ejemplo:
- Problema inicial: Si guardamos el nombre del vendedor directamente en
Venta
, habría redundancia (ej: si el vendedor cambia de nombre, habría que actualizar todas sus ventas). - Solución: Usamos
id_vendedor
(FK) para vincular a la tablaVendedor
.