Problemas · Modelo relacional

Del modelo E-R al modelo relacional

En una frase

El modelo relacional (Codd, 1970) representa los datos en relaciones (tablas) formadas por tuplas (filas) y atributos (columnas). Pasar del diagrama E-R al modelo relacional es un proceso sistemático: cada elemento del diagrama se traduce a tablas y claves según unas reglas fijas.

Qué es el modelo relacional

  • Una relación tiene un nombre y representa una entidad genérica; se muestra como tabla. Sus atributos (columnas) tienen un nombre y un dominio (tipo de datos). El número de atributos es el grado; el de tuplas, la cardinalidad.
  • Propiedades de una relación: no hay tuplas repetidas; las tuplas no están ordenadas; los atributos no están ordenados; los valores son atómicos (indivisibles).

Claves e integridad

  • Clave primaria (PK): conjunto de atributos que identifica de forma unívoca cada tupla. Cumple no nulo y unicidad. Se subraya.
  • Clave alternativa (candidata): otro conjunto que también podría identificar (único y no nulo).
  • Clave ajena (FK): atributos de una relación R que referencian la clave primaria de otra relación S. Los valores de la FK en R deben aparecer en alguna tupla de S (o ser nulos). Se escribe en cursiva o señalando a qué tabla apunta.
  • Integridad referencial: garantiza que una fila se relaciona siempre con filas válidas. La vigila el SGBD.
Al borrar/modificar una fila referenciada…EfectoEjemplo (departamento y profesores)
RESTRICT / NO ACTIONImpide la operación si hay filas dependientesNo se puede borrar un departamento con profesores
CASCADEPropaga la operaciónAl borrar el departamento se borran sus profesores
SET NULLPone la clave ajena a NULLLos profesores quedan sin departamento
SET DEFAULTPone un valor por defectoPasan a un departamento genérico

Reglas de traducción E-R → relacional

Elemento del E-RSe traduce a…
Entidad fuerteUna tabla con sus atributos; la PK es su identificador
Atributo compuestoUna columna por cada componente (nombre, apellido1, apellido2)
Atributo derivadoNo se almacena
Atributo multivaloradoTabla nueva con una clave ajena a la entidad y el atributo; PK = ambos
Entidad débilTabla cuya PK es la clave ajena de la propietaria + su clave parcial. La relación identificadora no genera tabla
Relación 1:NClave ajena en la tabla de cardinalidad máxima 1 (el «hijo»), apuntando a la otra. Los atributos de la relación pasan a esa tabla
Relación 1:1, participación obligatoria solo en un ladoClave ajena en la tabla con cardinalidad mínima 1 (evita nulos). La FK además es clave alternativa (única)
Relación 1:1, obligatoria en ambos lados u opcional en ambosClave ajena (única) en cualquiera de las dos tablas; si son «sinónimos», se pueden fundir en una
Relación N:MTabla nueva con dos claves ajenas (una por entidad); PK = combinación de ambas. Los atributos de la relación van aquí
Relación n-aria (ternaria…)Tabla nueva con n claves ajenas; PK = concatenación de las claves ajenas (o de algunas de ellas)
Relación reflexiva 1:NClave ajena en la tabla que referencia a su propia PK («jefe»)
Relación reflexiva N:MTabla nueva con dos claves ajenas a la misma tabla

Ejemplos resueltos (calculados en vivo)

Atributos compuestos, multivalorados y derivados

Relación 1:N

Relación N:M con atributo

Relación 1:1 (participación opcional en ambos lados)

Entidad débil

Relación reflexiva

Notación y método

Se escribe TABLA(clave_primaria, clave_ajena, atributo, …): clave primaria subrayada y clave ajena en cursiva (o con una flecha a la tabla referenciada). Una clave ajena puede formar parte de la clave primaria (entidades débiles, tablas N:M).

  1. Una tabla por cada entidad (atributos simples y componentes de los compuestos; sin derivados ni multivalorados).
  2. Procesa las entidades débiles: su PK incluye la clave de la propietaria.
  3. Una tabla por cada atributo multivalorado.
  4. Recorre cada relación: ¿N:M o n-aria? → tabla nueva. ¿1:N? → FK en el lado de máximo 1. ¿1:1? → FK en el lado obligatorio.
  5. Revisa: ¿cada tabla tiene PK? ¿cada FK apunta a una PK existente? ¿están todos los atributos?

Errores típicos

  • Poner la clave ajena en el lado equivocado de una 1:N (va donde la cardinalidad máxima es 1).
  • Olvidar los atributos de una relación (pasan a la tabla que recibe la FK o a la tabla N:M).
  • Dejar atributos multivalorados o derivados dentro de la tabla de la entidad.
  • Olvidar que en una entidad débil la clave ajena es parte de la clave primaria.
  • Crear una tabla para una relación identificadora o para una 1:N.

Quiz

Las opciones se barajan cada vez; repite el quiz hasta que no falles ninguna.