🎯 Introducción al Modelo Relacional
El modelo relacional es un paso necesario porque el diagrama entidad-relación es una representación conceptual que no permite su implementación directa en una base de datos.
- Nivel Conceptual: Diagrama Entidad-Relación
- Nivel Lógico: Modelo Relacional
- Nivel Físico: Implementación en SGBD específico
¿Qué nos permite el Modelo Relacional?
- Incluir tipos de datos específicos
- Convertir la estructura en forma de tablas
- Marcar claves foráneas
- Añadir campos necesarios que no aparecían en el modelo ER
Métodos de Construcción
Método 1: Construcción Directa
Crear tablas según criterio propio y aplicar normalización hasta obtener un esquema óptimo.
Método 2: Conversión desde ER (Recomendado)
Construir un esquema entidad-relación y aplicar reglas de conversión para transformarlo en modelo relacional.
🔧 Características del Modelo Relacional
- Orientado a registros: Se representa en forma de tablas
- Modelo más utilizado: En la actualidad
- Evolutivo: Ha ido mejorando con los años
- Flexible en representación: Tablas, texto o esquemas gráficos
Conceptos Fundamentales
| Concepto | Descripción |
|---|---|
| Relación | Tabla con estructura definida |
| Tupla | Fila o registro de la tabla |
| Atributo | Columna de la tabla |
| Dominio | Conjunto de valores válidos para un atributo |
| Cardinalidad | Número de tuplas que soporta la tabla |
🔑 Tipos de Claves
- Evita que haya dos valores iguales
- Puede haber varias en una tabla
- Función: evitar redundancias
- Puede ser compuesta (varios campos)
- Clave única elegida para identificar el registro
- Solo puede haber una por tabla
- No permite valores duplicados ni nulos
- Participa en la creación de relaciones
- Identifica de forma unívoca cada registro
- Referencia a una clave de otra tabla
- Generalmente apunta a la clave primaria
- No requiere ser única
- Nace de las relaciones entre tablas
- Acelera las consultas en esos campos
- Ocupa espacio adicional en memoria
- Debe crearse estratégicamente
- Analizar qué campos se consultan frecuentemente
📏 Normalización
Primera Forma Normal (1FN)
Regla: Todos los dominios de los atributos contienen valores atómicos.
- No campos multivalorados
- Datos lo más granular posible
- Todos los registros con el mismo número de columnas
Ejemplo: Teléfonos
❌ Incorrecto: Campo "Teléfono" con múltiples números
✅ Correcto: Campos separados: "Teléfono_Fijo", "Teléfono_Móvil", "Teléfono_Trabajo"
Segunda Forma Normal (2FN)
Requisitos:
- Cumplir 1FN
- Cada atributo no clave debe tener dependencia completa de la clave primaria
- Solo aplica si la clave primaria es compuesta
Tercera Forma Normal (3FN)
Requisitos:
- Cumplir 1FN y 2FN
- No debe haber dependencias funcionales entre atributos no clave
- Todos los campos deben depender directamente de la clave primaria
Forma Normal de Boyce-Codd (FNBC)
Regla: Todo atributo del que dependa otro debe ser clave candidata.
Ejemplo: Claves Candidatas
En una tabla de empleados:
- Clave Primaria: ID_Empleado
- Clave Candidata: DNI (también identifica únicamente)
🔒 Integridad Referencial
Reglas de Integridad
- Las claves foráneas pueden contener valor nulo o un valor existente en la tabla referenciada
- No se pueden asignar valores que no existen en la tabla principal
- Se activa automáticamente al crear claves foráneas
Acciones Referenciales
| Acción | Descripción |
|---|---|
| RESTRICT | No permite borrar/modificar si existen referencias |
| SET DEFAULT | Asigna valor por defecto a las claves foráneas |
| SET NULL | Asigna NULL a las claves foráneas |
| CASCADE | Borra/modifica en cascada los registros dependientes |
⚖️ Ventajas y Desventajas
✅ Ventajas
- Representación homogénea: Todo en forma de tablas, fácil interpretación
- Modelo más utilizado: Gran cantidad de información y soporte disponible
- Independencia del almacenamiento: Abstracto del SGBD específico
- Consultas flexibles: Recuperación mediante SQL
- Reducción de redundancias: Mediante normalización
- Integridad de datos: Mediante restricciones
- Acceso concurrente: Múltiples usuarios simultáneos
- Adaptabilidad: Facilita modificaciones
❌ Desventajas
- Sin representación de reglas: No puede expresar conocimiento como reglas
- No hay herencia: A diferencia del modelo orientado a objetos
- Sin jerarquías: Falta de poder expresivo para representarlas
- Solo datos atómicos: Imposibilidad de gestionar datos no atómicos
- Incompatibilidad de impedancia: Con estructuras de datos complejas
🔄 Conversión de ER a Modelo Relacional
Entidades → Tablas
Cada entidad (rectángulo) del diagrama ER se convierte en una tabla.
Atributos → Columnas
Los atributos (óvalos) se convierten en campos de la tabla correspondiente.
Atributos Clave → Clave Primaria
Los atributos subrayados se convierten en la clave primaria de la tabla.
Relaciones 1:N
La clave primaria del lado "1" se copia al lado "N" como clave foránea.
Ejemplo: Cliente - Pedido (1:N)
Cliente: ID_Cliente (PK), Nombre, Email
Pedido: ID_Pedido (PK), Fecha, ID_Cliente (FK)
Relaciones N:M
Se crea una nueva tabla cuya clave primaria es la unión de las claves de las entidades relacionadas.
Ejemplo: Estudiante - Curso (N:M)
Estudiante: ID_Estudiante (PK), Nombre
Curso: ID_Curso (PK), Nombre_Curso
Inscripción: ID_Estudiante (PK,FK), ID_Curso (PK,FK), Fecha_Inscripción
Relaciones con Atributos
Si una relación tiene atributos, se crea una nueva tabla obligatoriamente.
Relaciones 1:1
Se puede trasladar la clave en cualquier dirección. Se recomienda hacerlo hacia la tabla dependiente.