queryLab · software_de_entrenamiento en espera
// unidad 2 · el modelo relacional · clases 4 y 5

[MER] Modelo Entidad-Relación

Atributos, cardinalidad, entidades débiles, generalización/especialización y transformación al modelo relacional.

1 · Conceptos del modelo E-R

El Modelo Entidad-Relación (MER) es un modelo conceptual: describe qué datos necesita una organización, antes de decidir cómo se guardan. Tiene tres piezas:

  • Entidad: un objeto del mundo real o conceptual que queremos registrar (Cliente, Producto, Empleado). Se dibuja con un rectángulo.
  • Atributo: una propiedad que describe a la entidad (rut, nombre, fecha). Se dibuja con un óvalo.
  • Relación: una asociación entre entidades, que se nombra con un verbo (realiza, tiene, presta). Se dibuja con un rombo y puede tener atributos propios.

El MER extendido (EER) agrega la generalización / especialización para representar jerarquías de entidades.

2 · Tipos de atributos

Simples: tienen un solo componente y no se pueden dividir en partes con significado propio. Pueden ser monovaluados (un valor: nombre, dni) o multivaluados (varios valores: teléfono, dirección, coche), que se dibujan con doble óvalo.

Derivados: se obtienen a partir de otros atributos de la misma u otra entidad (la edad desde la fecha de nacimiento). Se dibujan con óvalo discontinuo y normalmente no se almacenan.

Compuestos: formados por varios componentes con afinidad de significado (nombre → nombre_pila, apellido1, apellido2; dirección → calle, número, puerta). Cada componente es otro óvalo unido al compuesto.

Clave primaria: el atributo que identifica a cada instancia se subraya (rut, id_película). Si se necesitan varios atributos, la clave es compuesta. En notación de tabla se usa # para la clave, * para obligatorio y (o) para opcional.

Persona: clave (rut), compuesto (nombre), multivaluado (teléfono), derivado (edad) y opcional (género).

3 · Dominios

Cada atributo tiene un conjunto de valores posibles: su dominio. La descripción física indica el tipo de dato (números, cadenas, fechas), su longitud y otras restricciones; la descripción semántica indica su función o propósito. A veces el dominio es una lista enumerada (Azul, Verde, Rojo).

  • Nombre: cadena de 10 caracteres → VARCHAR(10)
  • Edad: número → INTEGER
  • Fecha: fecha → DATE
  • Peso: número con dos decimales → DECIMAL(5,2)
  • Ciudad: cadena de 20 caracteres → VARCHAR(20)

En el editor puedes escribir el dominio de cada atributo; si lo dejas vacío, se propone uno automáticamente al transformar.

4 · Relaciones y cardinalidad

La cardinalidad se escribe como un par (mínimo, máximo) junto a cada entidad:

notaciónsignificadopata de gallo
(1,1)uno obligatorio a uno‖ uno y solo uno
(1,n)uno (obligatorio) a muchos|< uno o muchos
(0,1)puede existir cero o uno (opcional)○| cero o uno
(0,n)puede existir cero o muchos (opcional)○< cero o muchos

Cómo se lee: la cardinalidad escrita junto a una entidad indica cuántas instancias de esa entidad se asocian con una instancia de la otra. En el ejemplo, (1,n) junto a Pedido significa «un cliente puede tener uno a muchos pedidos», y (0,1) junto a Cliente, «un pedido puede ser de cero o un cliente». Una relación (2:3) indica que dos instancias de la entidad 1 se relacionan con tres de la entidad 2.

Cliente (0,1) — realiza — (1,n) Pedido. abrir en el editor →

Según los máximos, una relación binaria es 1:1, 1:N o N:M. También hay relaciones recursivas (una entidad consigo misma, con roles) y ternarias (tres entidades).

1:1 · editor →
N:M con atributos de relación · editor →
Recursiva con roles · editor →
Ternaria · editor →

5 · Entidad débil

Una entidad débil depende de otra (su entidad propietaria o fuerte) para existir y para identificarse. Se dibuja con doble rectángulo, se une a su dueña mediante una relación identificadora (rombo doble) y tiene una clave parcial (subrayado discontinuo) que la distingue solo dentro de su dueña. Ejemplos: Hito de un Proyecto, Habitación de una Casa, Revisión de una Maquinaria.

Proyecto — es_parte_de — Hito (entidad débil, clave parcial código_hito).

6 · Generalización y especialización

Especialización (de arriba hacia abajo): pone el énfasis en las diferencias. Un supertipo se divide en subtipos con atributos propios; alguna instancia del supertipo puede no ser instancia de ningún subtipo.

Generalización (de abajo hacia arriba, proceso inverso): pone el énfasis en las similitudes. Se suprimen las diferencias entre varios tipos de entidad, se identifican sus atributos y relaciones comunes y se forma un supertipo que los incluye. Los subtipos heredan los atributos del supertipo.

Se dibuja con un triángulo (ES) entre el supertipo y los subtipos, y se combinan dos restricciones:

  • Disjunta: cada instancia solo puede tomar una especialización → se marca con una curva sobre las líneas. Solapada: puede tomar más de una → sin curva.
  • Total (herencia total): toda instancia del supertipo pertenece a algún subtipo → doble línea al supertipo. Parcial: puede haber instancias sin subtipo → línea simple.
Disjunta y total · editor →
Disjunta y parcial · editor →
Solapada y total · editor →
Generalización: Camión y Turismo → Vehículo · editor →

¿Cuándo usar cada una? Un empleado que puede ser cajero y reponedor en distintos turnos → solapada. Un profesional de salud con una única especialidad → disjunta. Si todo empleado debe ser permanente, temporal o contratista → total; si solo algunos vehículos se especializan → parcial.

7 · Transformación MER → modelo relacional

Para implementar el diseño en un SGBD, las entidades, atributos y relaciones se convierten en tablas y restricciones (PK y FK). Reglas:

elemento del MERen el modelo relacional
Entidad fuerteUna tabla; sus atributos simples son columnas y su clave es la PK (simple o compuesta).
Atributo compuestoSe descompone en sus componentes simples (nombre → prim_nombre, prim_apellido…).
Atributo derivadoNo se almacena: se calcula con una consulta o vista.
Atributo multivaluadoNueva tabla con la PK de la entidad (FK) + el valor; su PK es la combinación (cumple 1FN).
Entidad débilTabla propia; PK compuesta = PK de la entidad fuerte (también FK) + clave parcial.
Relación 1:1La PK de un lado pasa como FK UNIQUE al otro (preferentemente al lado con participación obligatoria).
Relación 1:NLa PK del lado 1 pasa como FK al lado N. Los atributos de la relación también van al lado N.
Relación N:MTabla intermedia con las PK de ambas entidades como FK; juntas forman la PK. Guarda los atributos de la relación.
Relación ternaria o mayorTabla con una FK hacia cada entidad participante.
EspecializaciónA: tabla para la superclase y cada subclase (PK de la subclase = PK de la superclase, también FK). B: solo subclases (si es total). C: una tabla con discriminador.

Así se ve la transformación automática de dos ejemplos de la clase 5 (calculada en vivo con el mismo motor del editor):

Entidad débil → PK compuesta en Hito.
Ternaria + multivaluado → tabla presta y tabla departamento_lugares.

8 · Repaso rápido

▸ Ahora tú

  1. Abre el editor MER, carga un ejemplo y modifícalo.
  2. Modela la biblioteca de la guía de ejercicios, revisa el modelo y exporta el PDF con la simbología.
  3. Transfórmalo al modelo relacional y crea las tablas en la consola SQL.