[MER] Modelo Entidad-Relación
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.
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ón | significado | pata 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.
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).
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.
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.
¿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 MER | en el modelo relacional |
|---|---|
| Entidad fuerte | Una tabla; sus atributos simples son columnas y su clave es la PK (simple o compuesta). |
| Atributo compuesto | Se descompone en sus componentes simples (nombre → prim_nombre, prim_apellido…). |
| Atributo derivado | No se almacena: se calcula con una consulta o vista. |
| Atributo multivaluado | Nueva tabla con la PK de la entidad (FK) + el valor; su PK es la combinación (cumple 1FN). |
| Entidad débil | Tabla propia; PK compuesta = PK de la entidad fuerte (también FK) + clave parcial. |
| Relación 1:1 | La PK de un lado pasa como FK UNIQUE al otro (preferentemente al lado con participación obligatoria). |
| Relación 1:N | La 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:M | Tabla intermedia con las PK de ambas entidades como FK; juntas forman la PK. Guarda los atributos de la relación. |
| Relación ternaria o mayor | Tabla con una FK hacia cada entidad participante. |
| Especialización | A: 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):
8 · Repaso rápido
▸ Ahora tú
- Abre el editor MER, carga un ejemplo y modifícalo.
- Modela la biblioteca de la guía de ejercicios, revisa el modelo y exporta el PDF con la simbología.
- Transfórmalo al modelo relacional y crea las tablas en la consola SQL.