📊 Modelo Relacional

Clase 015 - Curso de Modelado en SAP HANA

🎯 Introducción al Modelo Relacional

Objetivo Principal: El modelo relacional conforma el modelo lógico o esquema de la base de datos a partir del cual se podrá realizar el modelado físico.

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.

Niveles de Abstracción:
  • 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

Clave Única
  • Evita que haya dos valores iguales
  • Puede haber varias en una tabla
  • Función: evitar redundancias
  • Puede ser compuesta (varios campos)
Clave Primaria
  • 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
Clave Foránea
  • Referencia a una clave de otra tabla
  • Generalmente apunta a la clave primaria
  • No requiere ser única
  • Nace de las relaciones entre tablas
Clave Índice
  • Acelera las consultas en esos campos
  • Ocupa espacio adicional en memoria
  • Debe crearse estratégicamente
  • Analizar qué campos se consultan frecuentemente

📏 Normalización

Objetivo: Las formas normales buscan optimizar las estructuras de datos, eliminando la redundancia mediante dependencias funcionales.

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)
Nota: Con las tres primeras formas normales se considera una normalización adecuada. Existen 4FN y 5FN para casos muy complejos.

🔒 Integridad Referencial

Definición: Sistema de reglas que aseguran que los registros de tablas relacionadas son válidos y que no se borren o cambien datos relacionados accidentalmente.

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.

Regla Fundamental: Toda clave foránea debe hacer referencia a una clave primaria existente.