📊 Diagramas de Entidad-Relación (DER/ERD) Cheatsheet Completo 📊
Un Diagrama de Entidad-Relación (DER) es una representación visual del diseño de una base de datos. Muestra las entidades (objetos o conceptos del mundo real) en un sistema y las relaciones entre esas entidades, junto con los atributos que describen a cada entidad.
1. 🌟 Conceptos Clave
- Entidad (Entity): Un objeto o concepto del mundo real que es importante para el negocio y del cual queremos almacenar información (ej. Cliente, Producto, Pedido).
- Atributo (Attribute): Una característica o propiedad que describe a una entidad (ej. para Cliente: nombre, dirección, teléfono).
- Relación (Relationship): Una asociación entre dos o más entidades (ej. un Cliente
realizaun Pedido; un Productopertenece auna Categoría). - Cardinalidad (Cardinality): Define el número de instancias de una entidad que pueden asociarse con el número de instancias de otra entidad en una relación.
- Participación (Participation): Define si una instancia de una entidad debe participar en una relación (total) o puede participar (parcial).
2. 🔠 Notaciones Comunes (Símbolos)
Existen varias notaciones para los DER, siendo las más comunes la Notación de Chen (más conceptual) y la Notación Pata de Cuervo (Crow’s Foot) (más lógica/física). Este cheatsheet cubrirá principalmente Crow’s Foot por su popularidad en el diseño práctico de bases de datos.
2.1. Notación Pata de Cuervo (Crow’s Foot Notation) - ¡Recomendada para diseño práctico!
| Símbolo | Nombre | Descripción | Ejemplo Visual |
|---|---|---|---|
| Rectángulo | Entidad | Una tabla o concepto clave. | [ Entidad ] |
| Línea de Conexión | Relación | Conecta entidades. | ----- |
| Círculo abierto | Cero (0) | Participación opcional. | O---- |
| Línea vertical | Uno (1) | Participación obligatoria/mínimo uno. | ` |
| Pata de Cuervo | Muchos (N) | Mínimo cero o uno, hasta muchos. | <---- |
| Línea discontinua | Atributo/Campo | Propiedad de la entidad (se lista dentro del rectángulo). | (Dentro de la entidad) |
PK (_Nombre_) | Clave Primaria | Atributo/s que identifican de forma única una instancia de entidad. (Subrayado o PK). | PK: _ID_ |
FK (Nombre) | Clave Foránea | Atributo/s que actúan como PK de otra tabla, creando el vínculo. (No siempre se dibuja explícitamente en el ERD, pero es una consecuencia de la relación). | FK: ID_Cliente |
3. 🧩 Componentes de un DER
3.1. Entidades (Entities)
- Definición: Un sustantivo, un objeto o concepto del mundo real que es discernible y tiene un significado para el negocio. Se mapean a tablas en una base de datos relacional.
- Tipos:
- Entidad Fuerte (Strong Entity): Puede existir de forma independiente. Tiene su propia Clave Primaria (PK).
- Notación: Rectángulo simple.
[ Cliente ],[ Producto ]
- Notación: Rectángulo simple.
- Entidad Débil (Weak Entity): Su existencia depende de otra entidad (la entidad “propietaria”). Su Clave Primaria se forma, en parte, de la Clave Primaria de la entidad fuerte.
- Notación (Crow’s Foot): Se indica con una línea de relación discontinua y una relación obligatoria.
- Ejemplo:
DetallePedidodepende dePedido.
- Entidad Fuerte (Strong Entity): Puede existir de forma independiente. Tiene su propia Clave Primaria (PK).
3.2. Atributos (Attributes)
- Definición: Propiedades o características que describen a una entidad. Se mapean a columnas en una tabla de base de datos.
- Tipos:
- Clave Primaria (Primary Key - PK): Atributo o conjunto de atributos que identifican de forma única cada instancia de una entidad. Es fundamental.
- Notación: Subrayado o prefijo
PK:en Crow’s Foot. - Ej:
Cliente (ID_Cliente PK, Nombre, Email)
- Notación: Subrayado o prefijo
- Clave Foránea (Foreign Key - FK): Un atributo en una entidad que es la Clave Primaria de otra entidad. Establece el vínculo entre tablas.
- Notación: No siempre se dibuja como un atributo separado en el ERD, sino que se infiere de la relación y se implementa en el modelo lógico/físico. Si se lista, a menudo se usa un prefijo
FK:.
- Notación: No siempre se dibuja como un atributo separado en el ERD, sino que se infiere de la relación y se implementa en el modelo lógico/físico. Si se lista, a menudo se usa un prefijo
- Atributo Simple (Simple/Atomic): No se puede dividir en partes más pequeñas (ej.
Nombre,Edad). - Atributo Compuesto (Composite): Se puede dividir en atributos más pequeños y significativos (ej.
Direcciónse compone deCalle,Ciudad,Código Postal). (En Crow’s Foot, simplemente se listan los componentes). - Atributo Multivalor (Multi-valued): Puede tener múltiples valores para una sola instancia de entidad (ej.
Teléfonosde un Cliente).- Notación (Crow’s Foot): A menudo se resuelve creando una nueva entidad y una relación 1:N.
- Atributo Derivado (Derived): Su valor puede calcularse a partir de otros atributos (ej.
Edadse deriva deFechaNacimiento).- Notación (Crow’s Foot): No se dibuja explícitamente como un campo separado en la entidad si es puramente derivado y no almacenado.
- Clave Primaria (Primary Key - PK): Atributo o conjunto de atributos que identifican de forma única cada instancia de una entidad. Es fundamental.
4. 🔗 Relaciones (Relationships)
Una asociación entre dos o más entidades.
4.1. Grado de Relación (Degree)
- Binaria: Entre dos entidades (la más común).
- Ternaria: Entre tres entidades.
- Unaria / Recursiva: Una entidad relacionada consigo misma (ej. un
Empleadosupervisaa otroEmpleado).
4.2. Cardinalidad (Cardinality Ratios) - ¡Clave en el diseño!
Define el número de instancias de una entidad que están asociadas con el número de instancias de otra entidad. Se define para AMBOS lados de la relación.
-
Uno a Uno (1:1): Una instancia de Entidad A se relaciona con exactamente una instancia de Entidad B, y viceversa.
- Notación Crow’s Foot:
|----|(una línea vertical en cada extremo) - Ej:
PersonatienePasaporte(una persona tiene un pasaporte, un pasaporte pertenece a una persona).
- Notación Crow’s Foot:
-
Uno a Muchos (1:N): Una instancia de Entidad A se relaciona con muchas instancias de Entidad B, pero una instancia de Entidad B se relaciona con exactamente una instancia de Entidad A.
- Notación Crow’s Foot:
|----<(una línea vertical en el lado “uno”, pata de cuervo en el lado “muchos”) - Ej:
DepartamentotieneEmpleados(un departamento tiene muchos empleados, un empleado pertenece a un solo departamento).
- Notación Crow’s Foot:
-
Muchos a Muchos (M:N): Una instancia de Entidad A se relaciona con muchas instancias de Entidad B, y una instancia de Entidad B se relaciona con muchas instancias de Entidad A.
- Notación Crow’s Foot:
<----<(pata de cuervo en ambos extremos) - Ej:
Estudiantese inscribe enCursos(un estudiante se inscribe en muchos cursos, un curso tiene muchos estudiantes). - Resolución: En bases de datos relacionales, las relaciones M:N se resuelven mediante una tabla de unión (junction table) que contiene las Claves Foráneas de ambas entidades y, a menudo, atributos propios (ej.
Inscripciónpodría tenerFechaInscripción,Calificación).
- Notación Crow’s Foot:
4.3. Participación (Participation Constraints)
Define si la participación de una entidad en una relación es obligatoria o opcional. Se define para cada entidad en la relación.
-
Participación Total / Obligatoria: Cada instancia de la entidad debe participar en al menos una instancia de la relación.
- Notación Crow’s Foot: Línea doble
||en el extremo de la entidad. - Ej:
Empleadotrabaja enDepartamento(cada empleado DEBE estar en un departamento).
- Notación Crow’s Foot: Línea doble
-
Participación Parcial / Opcional: Cada instancia de la entidad puede participar en la relación (no es obligatorio).
- Notación Crow’s Foot: Círculo
Oen el extremo de la entidad. - Ej:
ClienterealizaPedido(un cliente puede o no realizar pedidos).
- Notación Crow’s Foot: Círculo
Combinación de Cardinalidad y Participación (Crow’s Foot)
Los símbolos en cada extremo de la línea de relación se combinan para mostrar la cardinalidad mínima y máxima.
O|----|: Cero o uno (Mínimo: 0, Máximo: 1)||----|: Uno o uno (Mínimo: 1, Máximo: 1)O----<: Cero o muchos (Mínimo: 0, Máximo: N)|----<: Uno o muchos (Mínimo: 1, Máximo: N)
5. 🛠️ Pasos para Crear un DER
- Identificar Entidades: Enumera todos los objetos o conceptos significativos en el sistema.
- Identificar Atributos y Claves Primarias: Para cada entidad, define sus propiedades y elige una o más para la clave primaria.
- Identificar Relaciones: Determina cómo se asocian las entidades entre sí.
- Determinar Cardinalidad y Participación: Para cada relación, especifica las cardinalidades (1:1, 1:N, M:N) y las participaciones (obligatoria/opcional) en ambos sentidos.
- Resolver Relaciones Muchos-a-Muchos: Convierte cada relación M:N en una nueva entidad de unión (tabla intermedia) y dos relaciones 1:N.
- Refinar y Normalizar: Revisa el diagrama en busca de redundancias, inconsistencias y para aplicar principios de normalización de bases de datos.
6. 💡 Buenas Prácticas y Consejos
- Nombres Claros y Semánticos: Usa nombres significativos para entidades, atributos y relaciones. Las entidades son sustantivos (plural o singular consistente), las relaciones son verbos.
- Foco Conceptual: Los DER se centran en el “qué” (qué datos hay y cómo se relacionan), no en el “cómo” (cómo se implementa físicamente en la base de datos).
- Iterativo: El diseño de la base de datos es un proceso iterativo. Tu DER evolucionará.
- Validación con el Negocio: Asegúrate de que el DER refleja con precisión las reglas y procesos del negocio.
- Evitar Redundancia: Un buen DER minimiza la duplicación de datos.
- Herramientas: Utiliza herramientas de software (ej. Draw.io, Lucidchart, dbdiagram.io) para dibujar y gestionar tus DERs de forma profesional.
- No Confundir DER con Diagramas de Clases (UML): Aunque comparten símbolos, un DER modela datos para una BD, mientras que un Diagrama de Clases UML modela la estructura de un sistema orientado a objetos.
Este cheatsheet te proporciona una referencia completa de los Diagramas de Entidad-Relación, cubriendo sus conceptos esenciales, notaciones, componentes, tipos de relaciones y las mejores prácticas para modelar bases de datos de manera efectiva.