El diseño de bases de datos es un arte y una ciencia que comienza mucho antes de escribir la primera línea de código SQL. Todo parte de comprender la realidad que queremos modelar y plasmarla de forma estructurada. Una de las herramientas más fundamentales para este proceso es el modelo Entidad-Relación (E/R), un concepto revolucionario introducido por Peter Chen en la década de 1970. Este modelo nos permite representar el mundo real a través de un conjunto de símbolos y reglas, capturando las propiedades esenciales de la información que necesitamos gestionar.

El modelo E/R es conceptual, lo que significa que no está atado a una tecnología específica (como un tipo de base de datos particular, un sistema operativo o un ordenador). Su objetivo principal es ser una representación clara y comprensible de la realidad, de modo que pueda ser entendido tanto por técnicos como por personas sin conocimientos informáticos. El primer paso crucial al embarcarse en la creación de una base de datos es, precisamente, analizar el problema a fondo y determinar exactamente qué información necesitamos almacenar y, más importante aún, qué información necesitaremos recuperar de ella.

Es relevante mencionar que, si bien el modelo E/R tiene una base común, existen diferentes notaciones y símbolos utilizados por distintos autores y herramientas. Lo esencial no es la notación exacta, sino que el diseño represente fielmente el problema y que todos los implicados en el proyecto entiendan y utilicen la misma representación gráfica. La correcta plasmación del problema es la clave.
Los componentes básicos del modelo E/R son las entidades y las relaciones. Identificar estos elementos es el punto de partida para construir nuestro diagrama. Una vez que tenemos claras las entidades y las relaciones, el siguiente paso es definir los atributos que describen a cada una de ellas. Pero hay un concepto adicional, vital para entender cómo interactúan estas entidades: la cardinalidad.
Entidades y Relaciones: Los Cimientos del Modelo E/R
Al observar el ámbito del problema que queremos modelar, identificamos los objetos o conceptos de los que deseamos guardar información. Cada clase de objeto se representa como un tipo de entidad. Una entidad es, en esencia, cualquier 'cosa' (persona, lugar, evento, concepto) sobre la que queremos almacenar datos. Por ejemplo, en un sistema de gestión de empleados, 'Empleado' sería una entidad. Cada empleado concreto (Juan Pérez, María García) es una *instancia* de la entidad 'Empleado'. En el diagrama E/R, las entidades se representan con un rectángulo.
Las relaciones son las asociaciones o conexiones que existen entre las entidades. Representan cómo las entidades interactúan entre sí. Siguiendo el ejemplo anterior, un 'Empleado' podría estar relacionado con una 'Sucursal Bancaria' a través de la relación 'trabaja'. En un diagrama E/R, las relaciones se representan con un rombo, y se unen a las entidades participantes mediante líneas. A veces, se puede añadir un 'rol' o papel que desempeña cada entidad en la relación si no es obvio.
Cada relación tiene un nombre (generalmente un verbo en singular), un grado (el número de entidades que participan) y una cardinalidad. Es la cardinalidad la que nos dice 'cuántas' instancias de una entidad se asocian con 'cuántas' instancias de otra en el contexto de esa relación.
Comprendiendo la Cardinalidad
La cardinalidad es uno de los conceptos más importantes y a veces confusos del modelo E/R. Nos permite especificar las restricciones sobre cuántas instancias de una entidad pueden estar relacionadas con cuántas instancias de otra entidad en una relación particular. La información proporcionada distingue entre dos tipos de cardinalidad:
1. Cardinalidades de las Entidades: Se definen como el número mínimo y máximo de instancias de una entidad que pueden participar en una instancia de la relación. Esta se representa gráficamente con una etiqueta del tipo (mínimo, máximo) junto a la línea que une la entidad con la relación, como (0,1), (1,1), (0,n) o (1,n).
* (0,1): Cero o una instancia de esta entidad participa en la relación por cada instancia de la otra(s) entidad(es). * (1,1): Exactamente una instancia de esta entidad participa en la relación por cada instancia de la otra(s) entidad(es). * (0,n): Cero o muchas instancias de esta entidad participan en la relación por cada instancia de la otra(s) entidad(es). * (1,n): Una o muchas instancias de esta entidad participan en la relación por cada instancia de la otra(s) entidad(es).
Por ejemplo, si tenemos la relación 'trabaja_en' entre 'Empleado' y 'Departamento', y un empleado *siempre* debe trabajar en *un* departamento y no puede trabajar en más de uno, la cardinalidad de la entidad 'Empleado' respecto a la relación 'trabaja_en' sería (1,1). Si un departamento *puede* tener *ningún* empleado (recién creado) o *muchos* empleados, la cardinalidad de la entidad 'Departamento' respecto a la relación 'trabaja_en' sería (0,n).
2. Cardinalidad de la Relación: Esta indica el número máximo de instancias de una entidad que se relaciona con una instancia de la otra entidad (o entidades) en esa relación, y viceversa. Se deriva de las cardinalidades máximas de las entidades participantes. Se representa gráficamente con una etiqueta en el rombo de la relación o junto a las líneas, usando notación simplificada: 1:1, 1:N, o N:M.
La cardinalidad de la relación se obtiene al considerar el número máximo de instancias con las que cada entidad puede participar en una instancia de la relación. Esencialmente, miras el valor máximo de cada entidad en la relación. Si el máximo de la Entidad A es 1 y el máximo de la Entidad B es 1, la relación es 1:1. Si el máximo de A es 1 y el máximo de B es N, la relación es 1:N (o N:1 si se lee desde B hacia A). Si el máximo de A es N y el máximo de B es M, la relación es N:M.
Cómo Determinar la Cardinalidad de una Relación (Paso a Paso Lógico)
Aunque el texto no presenta un algoritmo formal, podemos extraer el proceso lógico para determinar la cardinalidad de una relación binaria (entre dos entidades) basándonos en la definición de cardinalidad de entidad:
Paso 1: Identifica la Relación y las Entidades Participantes.
Supongamos que tienes una relación R entre la Entidad A y la Entidad B.
Paso 2: Determina la Cardinalidad de la Entidad A respecto a la Relación R.
Pregúntate: "Para una *única* instancia de la Entidad B, ¿cuántas instancias de la Entidad A *pueden* estar relacionadas con ella a través de R?". Define el número mínimo y máximo. Esto te da la cardinalidad de la Entidad A en la relación R, con notación (min_A, max_A).
Paso 3: Determina la Cardinalidad de la Entidad B respecto a la Relación R.
Ahora, pregúntate a la inversa: "Para una *única* instancia de la Entidad A, ¿cuántas instancias de la Entidad B *pueden* estar relacionadas con ella a través de R?". Define el número mínimo y máximo. Esto te da la cardinalidad de la Entidad B en la relación R, con notación (min_B, max_B).
Paso 4: Determina la Cardinalidad de la Relación R.
La cardinalidad de la relación se define por los *máximos* que determinaste en los pasos 2 y 3, leídos en ambas direcciones:
- Si max_A es 1 y max_B es 1, la cardinalidad de la relación es 1:1 (Uno a Uno).
- Si max_A es N (muchos) y max_B es 1, la cardinalidad de la relación es N:1 (Muchos a Uno).
- Si max_A es 1 y max_B es N (muchos), la cardinalidad de la relación es 1:N (Uno a Muchos).
- Si max_A es N (muchos) y max_B es M (muchos), la cardinalidad de la relación es N:M (Muchos a Muchos).
Es importante notar que las relaciones N:1 y 1:N son conceptualmente las mismas, solo cambia la dirección desde la que se leen. La notación 1:N es muy común para ambos casos, indicando que 'uno' del lado izquierdo se relaciona con 'muchos' del lado derecho, o viceversa.
Ejemplos Clásicos de Cardinalidad de Relación
Veamos los ejemplos proporcionados en el texto para clarificar:
Relación Uno a Uno (1:1):
Entidades: EMPLEADO, DEPARTAMENTO. Relación: 'es_jefe'.
Análisis de Cardinalidad de Entidad:
- Para un Departamento, ¿cuántos Empleados *pueden* ser su jefe? Mínimo 0 (podría no tener jefe asignado aún), Máximo 1. Cardinalidad de DEPARTAMENTO respecto a 'es_jefe': (0,1) o (1,1) si siempre debe tener jefe.
- Para un Empleado, ¿de cuántos Departamentos *puede* ser jefe? Mínimo 0 (no es jefe), Máximo 1. Cardinalidad de EMPLEADO respecto a 'es_jefe': (0,1) o (1,1) si es jefe y solo de uno.
Considerando los máximos: Máximo de DEPARTAMENTO es 1, Máximo de EMPLEADO es 1. La relación 'es_jefe' es 1:1.
Otro ejemplo: EMPLEADO, PUESTO_DE_TRABAJO, relación 'ocupa'. Si un puesto lo ocupa un solo empleado y un empleado ocupa un solo puesto a la vez. Cardinalidad de EMPLEADO: (1,1). Cardinalidad de PUESTO_DE_TRABAJO: (1,1). Máximos: 1 y 1. Relación: 1:1.
Relación Uno a Muchos (1:N) o Muchos a Uno (N:1):
Entidades: EMPRESA, EMPLEADO. Relación: 'trabaja'. Suponiendo no pluriempleo.
Análisis de Cardinalidad de Entidad:
- Para un Empleado, ¿en cuántas Empresas *puede* trabajar? Mínimo 1 (siempre trabaja), Máximo 1. Cardinalidad de EMPLEADO respecto a 'trabaja': (1,1).
- Para una Empresa, ¿cuántos Empleados *pueden* trabajar en ella? Mínimo 0 (recién creada) o 1, Máximo N (muchos). Cardinalidad de EMPRESA respecto a 'trabaja': (0,n) o (1,n).
Considerando los máximos: Máximo de EMPLEADO es 1, Máximo de EMPRESA es N. La relación 'trabaja' es 1:N (leída desde Empresa a Empleado) o N:1 (leída desde Empleado a Empresa). La notación 1:N es la más común.
Otro ejemplo: ASIGNATURA, PROFESOR, relación 'imparte'. Una asignatura la imparte un profesor, pero un profesor imparte muchas asignaturas.
- Para una Asignatura, ¿cuántos Profesores *pueden* impartirla? Mínimo 1, Máximo 1. Cardinalidad de ASIGNATURA: (1,1).
- Para un Profesor, ¿cuántas Asignaturas *puede* impartir? Mínimo 0 (o 1 si siempre imparte algo), Máximo N (muchas). Cardinalidad de PROFESOR: (0,n) o (1,n).
Máximos: 1 y N. Relación: 1:N.
Relación Muchos a Muchos (N:M):
Entidades: CLIENTE, ARTÍCULO. Relación: 'compra'.
Análisis de Cardinalidad de Entidad:
- Para un Artículo, ¿cuántos Clientes *pueden* comprarlo? Mínimo 0 (no vendido), Máximo N (muchos). Cardinalidad de ARTÍCULO respecto a 'compra': (0,n).
- Para un Cliente, ¿cuántos Artículos *puede* comprar? Mínimo 0 (no ha comprado aún) o 1, Máximo M (muchos). Cardinalidad de CLIENTE respecto a 'compra': (0,m) o (1,m).
Considerando los máximos: Máximo de ARTÍCULO es N, Máximo de CLIENTE es M. La relación 'compra' es N:M.
Otro ejemplo: CONDUCTOR, AUTOBÚS, relación 'conduce'. Un autobús es conducido por muchos conductores y un conductor conduce muchos autobuses.
- Para un Autobús, ¿cuántos Conductores *pueden* conducirlo (a lo largo del tiempo o en diferentes turnos)? Mínimo 0, Máximo N. Cardinalidad de AUTOBÚS: (0,n).
- Para un Conductor, ¿cuántos Autobuses *puede* conducir (a lo largo del tiempo o en diferentes turnos)? Mínimo 0, Máximo M. Cardinalidad de CONDUCTOR: (0,m).
Máximos: N y M. Relación: N:M.
Es fundamental entender la distinción entre la cardinalidad de las entidades (el par mínimo y máximo) y la cardinalidad de la relación (el tipo 1:1, 1:N, N:M derivado de los máximos). Ambas son esenciales y se utilizan en el proceso de transformación del modelo E/R al modelo relacional (tablas de una base de datos).
Grado de una Relación: Otro Aspecto a Considerar
Además de la cardinalidad, las relaciones tienen un grado, que simplemente indica cuántas entidades participan en la relación. Los grados comunes son:
- Reflexiva: Una sola entidad se relaciona consigo misma (ej. un empleado es supervisado por otro empleado).
- Binaria: Participan dos entidades (son las más comunes y en las que nos hemos centrado para la cardinalidad de relación 1:1, 1:N, N:M).
- Ternaria: Participan tres entidades simultáneamente.
- N-aria: Participan n entidades.
Las relaciones de alto grado (ternarias o n-arias) pueden a veces simplificarse en relaciones binarias introduciendo una nueva entidad que represente la relación misma, como se ilustra en el texto con el ejemplo de la relación cuaternaria 'tiene_contrato' que se transforma al introducir la entidad 'CONTRATO'. Este proceso puede hacer el modelo más claro y fácil de implementar en una base de datos relacional.
Atributos: Describiendo Entidades y Relaciones
Los atributos son las características o propiedades de las entidades o relaciones. Por ejemplo, una entidad 'Empleado' podría tener atributos como 'nombre', 'DNI', 'fecha_nacimiento'. Una relación 'compra' podría tener un atributo 'fecha_compra'. Los atributos se representan con elipses conectadas al elemento que describen.
Los atributos pueden ser:
- Obligatorios u Opcionales: Si siempre deben tener un valor (obligatorio) o pueden estar vacíos (opcional). Un DNI suele ser obligatorio para identificar a un empleado.
- Simples o Compuestos: Si no se pueden dividir en partes con significado propio (simple, ej. DNI) o si están formados por varios componentes (compuesto, ej. Dirección = Calle + Número + Población).
La Clave Primaria: Identificando Instancias Únicas
Para poder distinguir una instancia concreta de una entidad de otra, necesitamos una clave primaria. Una clave es un atributo o conjunto de atributos que identifica de forma única una instancia. Una clave candidata es un conjunto mínimo de atributos que pueden servir como identificador único. La clave primaria es la clave candidata elegida para identificar la entidad de forma única. Debe ser mínima (ningún subconjunto de ella es clave por sí solo) y única. En el diagrama E/R, la clave primaria suele subrayarse entre los atributos de la entidad.
Tabla Comparativa: Cardinalidad de Entidad vs. Cardinalidad de Relación
| Característica | Cardinalidad de Entidad | Cardinalidad de Relación |
|---|---|---|
| ¿Qué Describe? | El número mínimo y máximo de instancias de una entidad que participan en *una* instancia de la relación. | El número máximo de instancias de una entidad que se relaciona con *una* instancia de la otra entidad (y viceversa). Describe el tipo de conexión general. |
| Notación Gráfica | (mínimo, máximo) junto a la entidad (ej: (0,1), (1,n)) | Tipo de relación (ej: 1:1, 1:N, N:M) junto al rombo de la relación o en las líneas. |
| Cómo se Determina | Se define analizando las reglas de negocio para cada entidad en el contexto de la relación. | Se deriva de los valores *máximos* de las cardinalidades de las entidades participantes. |
| Importancia Principal | Especifica las restricciones de participación y obligatoriedad/opcionalidad en la relación. | Define el tipo de relación que impacta directamente en cómo se transforma al modelo relacional (cómo se crean las tablas y claves foráneas). |
Preguntas Frecuentes sobre Cardinalidad
¿Cuál es la diferencia principal entre cardinalidad de entidad y cardinalidad de relación?
La cardinalidad de entidad (mínimo, máximo) se enfoca en cuántas veces una *instancia* de una entidad *puede* participar en una *instancia* de la relación. La cardinalidad de relación (1:1, 1:N, N:M) describe el tipo general de conexión entre las entidades basado en los máximos de participación.
¿Por qué es importante determinar correctamente la cardinalidad?
Determinar la cardinalidad correctamente es crucial porque define las reglas de negocio que la base de datos debe hacer cumplir y, fundamentalmente, guía el proceso de transformación del modelo conceptual E/R al modelo lógico relacional (diseño de tablas, claves primarias y foráneas).
¿Una relación siempre tiene cardinalidad?
Sí, todas las relaciones binarias o de mayor grado tienen una cardinalidad que describe cómo las instancias de las entidades participantes se asocian.
¿Puede una entidad tener diferentes cardinalidades en diferentes relaciones?
Absolutamente. Una entidad como 'Empleado' puede tener una cardinalidad (1,1) en la relación 'trabaja_en' con 'Departamento' (siempre trabaja en uno y solo uno), pero una cardinalidad (0,n) en la relación 'participa_en' con 'Proyecto' (puede participar en muchos proyectos o en ninguno).
¿La cardinalidad mínima puede ser cero?
Sí. Una cardinalidad mínima de cero (como en (0,1) o (0,n)) indica que la participación de una instancia de esa entidad en la relación es opcional. La instancia de la entidad puede existir sin estar relacionada en ese momento.
¿La cardinalidad mínima puede ser uno?
Sí. Una cardinalidad mínima de uno (como en (1,1) o (1,n)) indica que la participación de una instancia de esa entidad en la relación es obligatoria. Cada instancia de esa entidad *debe* estar relacionada.
Comprender y aplicar correctamente la cardinalidad es un pilar del diseño de bases de datos relacionales. Permite modelar la realidad de forma precisa y asegurar que la base de datos resultante refleje fielmente las reglas y restricciones del negocio que está representando.
Si quieres conocer otros artículos parecidos a Cardinalidad en Bases de Datos: Guía Completa puedes visitar la categoría Bases de datos.

Aprende mas sobre MySQL