UD02 · Modelo Entidad/Relación (E/R y EER)
Resumen del Tema
Visión General: El Modelo Entidad-Relación Extendido (EER), introducido originalmente por Peter Chen en 1976 y refinado posteriormente con potentes mecanismos semánticos de abstracción de datos, constituye el estándar de industria indiscutible para el diseño conceptual de bases de datos.
Su objetivo prioritario es modelar y estructurar la semántica de la información del mundo real de forma completamente abstracta e independiente del software informático o Sistema Gestor de Bases de Datos (SGBD) que se utilice en la fase de implementación. En esta unidad se analiza de forma exhaustiva el flujo de trabajo del diseño de datos, los componentes elementales del modelo (entidades fuertes y débiles, atributos clasificatorios y relaciones), las reglas minuciosas de cardinalidad e integridad, las jerarquías de generalización y especialización con herencia de atributos, el concepto de agregación, el cálculo formal de cardinalidades en relaciones ternarias y una metodología estructurada en 5 pasos respaldada por casos prácticos reales completos.
RA6 Diseña modelos relacionales normalizados interpretando diagramas entidad/relación. 4 CE
- RA6.a Se han utilizado herramientas gráficas para representar el diseño lógico.
- RA6.d Se han analizado las relaciones entre las tablas del diseño lógico.
- RA6.e Se han identificado los campos clave.
- RA6.h Se han analizado y documentado las restricciones que no pueden plasmarse en el diseño lógico.
Temporalización
La unidad ocupa 19 horas de aula (12 de teoría y 7 de práctica). Cada sesión aparece señalada en la página con una franja de color.
| Sesión | Horas | Tipo | Contenido | Dónde |
|---|---|---|---|---|
| 1 | 2 | Teoría | Ciclo de vida del diseño. Entidades fuertes y débiles | §1 y §2.1 |
| 2 | 2 | Teoría | Atributos y relaciones: grado y roles | §2.2 y §2.3 |
| 3 | 2 | Teoría | Cardinalidades mínima y máxima | §2.4 · laboratorio interactivo |
| 4 | 1 | Práctica | Leer y escribir cardinalidades | Práctica 2.2 |
| 5 | 2 | Práctica | Biblioteca municipal: del enunciado al diagrama | Práctica 2.1 |
| 6 | 2 | Teoría | Restricciones avanzadas y jerarquías EER | §3, §4.1 y §4.2 · clasificador interactivo |
| 7 | 2 | Teoría | Agregación y relaciones ternarias | §4.3 y §4.4 |
| 8 | 1 | Teoría | Metodología en cinco pasos y ejemplos resueltos | §5 y §6 |
| 9 | 1 | Teoría | Notaciones y herramientas de modelado | §7 |
| 10 | 2 | Práctica | Plataforma de streaming | Práctica 2.3 |
| 11 | 2 | Práctica | Modelo conceptual de EduGest | §8 y proyecto EduGest-2 |
Cómo se estudia esta unidad. Cada sesión de teoría termina con una pequeña comprobación o un laboratorio interactivo. Úsalos antes de pasar a las prácticas: si no puedes explicar por qué sale un resultado, vuelve a leer el apartado.
Objetivos de aprendizaje
Al terminar esta unidad serás capaz de:
- Analizar un enunciado de requisitos e identificar entidades, atributos, identificadores y relaciones.
- Determinar el grado y las cardinalidades (mínima y máxima) de una relación y justificarlas.
- Distinguir entidades fuertes y débiles, y modelar relaciones reflexivas y ternarias.
- Aplicar las extensiones del modelo EER: generalización/especialización y agregación.
- Representar el modelo con herramientas gráficas y en distintas notaciones.
- Documentar los supuestos y las restricciones que el diagrama no puede expresar.
1. Etapas en el Análisis y Diseño de Datos
1.1 El Ciclo de Vida del Diseño de Bases de Datos
El diseño de una base de datos no es una actividad improvisada, sino un proceso de ingeniería de software estructurado que traduce un problema del mundo real en estructuras de información eficientes y sin redundancias.
Intentar construir una base de datos directamente en el SGBD (escribiendo código SQL CREATE TABLE) sin realizar previamente un modelado conceptual riguroso conduce inevitablemente a errores graves de arquitectura: tablas mal estructuradas, claves duplicadas, pérdida de relaciones esenciales y redundancia incontrolada.
1.2 Los Cuatro Niveles de Abstracción
El proceso completo de diseño se divide en cuatro fases sucesivas e interconectadas:
graph TD
MR[1. Mundo Real / Requisitos del Negocio] --> MC[2. Modelo Conceptual / Esquema EER]
MC --> ML[3. Modelo Lógico / Esquema Relacional]
ML --> MF[4. Modelo Físico / Tablas e Índices en SGBD]Entorno del Mundo Real (Fase de Requisitos): Consiste en la recolección, análisis e interpretación de las necesidades de información de la organización a través de entrevistas con los usuarios, formularios existentes, albaranes y reglas de negocio. El resultado de esta fase es un documento en lenguaje natural denominado Especificación de Requisitos de Software (ERS).
Modelo Conceptual (Esquema Conceptual EER): Se sintetizan las especificaciones del mundo real en un diagrama gráfico normalizado (Diagrama Entidad-Relación Extendido). Este esquema representa la estructura semántica de los datos de forma totalmente independiente del SGBD y del soporte tecnológico que se vaya a utilizar.
Modelo Lógico (Esquema Lógico / Relacional): Se transforma el esquema conceptual EER a las estructuras propias del paradigma del SGBD elegido. En las bases de datos relacionales, esto implica aplicar reglas formales de paso de E/R a tablas, claves primarias (
PK), claves foráneas (FK) y procesos de normalización (1FN, 2FN, 3FN).Modelo Físico (Esquema Físico SQL): Se traducen las tablas lógicas a código ejecutable en el SGBD destino (sentencias SQL DDL) definiendo los tipos de datos físicos concretos (
VARCHAR,NUMERIC), métodos de almacenamiento, factor de empaquetamiento, particionamiento e índices B-Tree/Hash.
2. El Modelo Conceptual Entidad-Relación (E/R)
Curiosidad Un artículo de 1976 que sigue citándose
Peter Chen publicó «The Entity-Relationship Model: Toward a Unified View of Data» en 1976 en la revista ACM Transactions on Database Systems. Casi medio siglo después, sus rectángulos, rombos y elipses siguen siendo el idioma común del diseño conceptual.
2.1 Entidades: Fuertes, Débiles e Instancias
Una entidad es cualquier objeto, persona, lugar, concepto abstracto o evento del mundo real que posee existencia distinguible y sobre el cual la organización necesita almacenar información en la base de datos.
- Tipo de Entidad (Clase o Conjunto de Entidades): Es la abstracción genérica que define la estructura común de un grupo de objetos homogéneos. Se representa gráficamente mediante un rectángulo con el nombre en letras mayúsculas, formato singular y sin abreviaturas (ej.
ALUMNO,EMPLEADO,FACTURA). - Instancia u Ocurrencia: Es un elemento individual concreto que pertenece a dicho tipo de entidad (ej. dentro de la entidad
ALUMNO, una instancia específica es el alumno con DNI12345678Allamado Juan Pérez).
Clasificación de Entidades por su Dependencia de Existencia
Entidad Fuerte (Regular o Principal): Posee existencia propia e independiente en el sistema. Sus instancias se identifican unívocamente mediante sus propios atributos identificadores (clave primaria) sin requerir la presencia de otras entidades (ej.
CLIENTE,PRODUCTO,LIBRO).Entidad Débil: No puede existir de forma autónoma en la base de datos. Su presencia depende de la existencia previa de una entidad fuerte principal (denominada Entidad Propietaria o Padre). Si una instancia de la entidad fuerte es eliminada, todas las instancias de la entidad débil vinculadas a ella carecen de sentido y deben ser eliminadas en cascada. Se representa gráficamente mediante un doble recuadro.
Ejemplo de Entidad Débil: La entidad
EJEMPLARrespecto a la entidad fuerteLIBRO. La biblioteca posee la obra intelectual “Don Quijote de la Mancha” (LIBROfuerte), pero físicamente dispone de 5 copias en la estantería (EJEMPLARdébil). Si la obra deja de prestarse y se borra de la base de datos, todos sus ejemplares físicos asociados desaparecen automáticamente.
2.2 Atributos: Clasificación, Estructura y Dominio
Un atributo es cada una de las propiedades, características o cualidades cualitativas o cuantitativas que describen a un tipo de entidad o a una relación.
El dominio de un atributo es el conjunto de todos los valores atómicos válidos que dicho atributo puede tomar legalmente (ej. el dominio de fecha_nacimiento es el conjunto de fechas válidas no futuras).
Clasificación Completa de Atributos
Atributo Identificador Principal (Clave Primaria - PK): Atributo o conjunto mínimo de atributos cuyos valores garantizan distinguir de forma única e irrepetible cada instancia dentro de la entidad. Se representa mediante el nombre del atributo subrayado. Un identificador no puede tomar nunca valores nulos (
NOT NULL).Atributo Identificador Alternativo (Clave Alternativa): Atributo candidato que también podría identificar unívocamente a cada instancia pero no ha sido seleccionado como clave primaria. Se representa mediante subrayado discontinuo (ej. en
PERSONA, si elid_personaes la PK, eldnio elnum_seguridad_socialson claves alternativas).Atributo Descriptor (Simple o Escalar): Atributo convencional que aporta información descriptiva no identificadora y almacena un único valor atómico (ej.
nombre,precio,edad).Atributo Compuesto (Estructurado): Atributo que se puede descomponer de forma jerárquica en varios sub-atributos simples con significado propio. Se representa como un árbol de elipses (ej. el atributo
direcciónse subdivide encalle,número,piso,código_postalyciudad).Atributo Multivaluado: Atributo que puede albergar una lista de múltiples valores para una misma instancia de entidad. Se indica mediante una etiqueta sobre la línea del atributo o mediante una doble elipse (ej. una persona que posee varios números de
teléfonoo varias direcciones deemail).Atributo Derivado (Calculado): Atributo cuyo valor no se almacena físicamente, sino que se calcula dinámicamente a partir de otros atributos guardados en la base de datos (ej. el atributo
edadse calcula restando lafecha_nacimientode la fecha actual). Se representa con una elipse discontinua.
Pista: ¿atributo multivaluado o entidad?
Si de cada valor necesitas guardar información propia (de un teléfono, su tipo o si es el principal; de una dirección, su fecha de alta), ya no es un simple atributo multivaluado: es una entidad débil relacionada con la original. Un multivaluado solo sirve cuando cada valor es un dato aislado.
2.3 Relaciones: Grado, Semántica y Nombres de Rol
Una relación es una asociación o interrelación semántica que conecta dos o más tipos de entidades dentro del modelo. Se representa gráficamente mediante un rombo etiquetado con un verbo descriptivo en mayúsculas (ej. COMPRA, TRABAJA, PERTENECE).
El Grado de la Relación
El grado indica el número de entidades distintas que participan en la asociación:
- Grado 1 — Relación Reflexiva (Recursiva): Asocia instancias de una misma entidad consigo misma. En estas relaciones es obligatorio especificar el nombre de rol que desempeña cada participante en la asociación.
- Ejemplo: La relación
SUPERVISAsobre la entidadEMPLEADO. Un empleado juega el rol de Jefe y otros empleados juegan el rol de Subordinados.
- Ejemplo: La relación
- Grado 2 — Relación Binaria: Asocia dos entidades distintas (es la forma más habitual en el modelado, ej.
CLIENTEREALIZAPEDIDO). - Grado 3 — Relación Ternaria: Asocia simultáneamente tres entidades distintas (ej.
PROFESOR,ASIGNATURAyGRUPOen la relaciónIMPARTE).
2.4 Restricciones de Cardinalidad (Mínima y Máxima)
La cardinalidad de una relación expresa los límites cuantitativos de participación de las instancias de las entidades en la asociación.
Para cada entidad que participa en una relación, la cardinalidad se define como un par de valores expresado en el formato:
ENTIDAD_A ──────(min_a, max_a)────── < RELACIÓN > ──────(min_b, max_b)────── ENTIDAD_B1. Cardinalidad Mínima ( o )
- (Participación Opcional o Parcial): Una instancia de la entidad puede existir en la base de datos sin necesidad de estar asociada con ninguna instancia de la otra entidad.
- (Participación Obligatoria, Total o Existencial): Toda instancia de la entidad debe estar asociada obligatoriamente al menos con una instancia de la otra entidad.
2. Cardinalidad Máxima ( o )
- Relación Uno a Uno (): Una instancia de se relaciona como máximo con una instancia de , y viceversa.
- Relación Uno a Muchos (): Una instancia de puede relacionarse con múltiples instancias de , pero una instancia de solo puede relacionarse con una de .
- Relación Muchos a Muchos (): Una instancia de se relaciona con múltiples instancias de , y una de se relaciona con múltiples instancias de .
Regla Mnemotécnica de Lectura de Cardinalidades: Para determinar la cardinalidad de la
ENTIDAD_Arespecto a laENTIDAD_Ben la relaciónR, nos formulamos dos preguntas situándonos mentalmente en una instancia deENTIDAD_A:
- ¿Con cuántas instancias de
ENTIDAD_Bpuede asociarse como MÍNIMO una instancia deENTIDAD_A? Cardinalidad mínima.- ¿Con cuántas instancias de
ENTIDAD_Bpuede asociarse como MÁXIMO una instancia deENTIDAD_A? Cardinalidad máxima.
El error más común del tema: leer la cardinalidad al revés. Un mismo par puede ir junto a una entidad o junto a la opuesta según el libro o la herramienta (ver apartado 7.1). Antes de interpretar un diagrama, traduce siempre a una frase: «cada … se relaciona con … instancias de …».
Laboratorio: lee y construye cardinalidades
Cambia los valores y observa cómo se transforman el diagrama, las frases, el tipo de relación y la sintaxis de Mermaid.
Convención de este widget: el par (mín, máx) de una entidad indica con cuántas instancias de la otra entidad se relaciona cada una de sus instancias (como en el apartado 2.4). El símbolo de pata de gallo junto a una entidad indica cuántas instancias de esa entidad se relacionan con una de la otra: por eso se lee «al revés» que el par.
Las sesiones 4 y 5 se hacen con las prácticas de la unidad. Llévalas preparadas: tienes que haber leído hasta aquí y haber probado el laboratorio.
3. Restricciones Avanzadas sobre Relaciones
En modelos conceptuales complejos donde existen múltiples relaciones cruzadas entre entidades, se pueden especificar restricciones semánticas avanzadas:
3.1 Exclusividad y Exclusión
Restricción de Exclusividad: Se aplica entre dos o más relaciones ( y ) que parten de una misma entidad . Indica que una instancia de puede participar en la relación o en la relación , pero nunca en ambas al mismo tiempo.
- Ejemplo Real: Un
PROFESORpuede la relaciónIMPARTErespecto a unCURSOo la relaciónRECIBE(como alumno), pero si en un cuatrimestre imparte un curso, no puede simultáneamente recibirlo como estudiante.
- Ejemplo Real: Un
Restricción de Exclusión: Indica que si un par específico de instancias está vinculado a través de la relación , ese mismo par exacto tiene prohibido estar vinculado mediante la relación .
3.2 Inclusividad e Inclusión
Restricción de Inclusividad: Indica que para que una instancia de la entidad participe en la relación , es condición obligatoria que participe también en la relación .
Restricción de Inclusión: Se aplica sobre los pares de instancias relacionadas. Si la pareja está asociada mediante la relación , es estrictamente obligatorio que dicha pareja esté previamente relacionada en .
4. Extensiones del Modelo (EER)
4.1 Generalización y Especialización (Mecanismo de Herencia)
El Modelo Entidad-Relación Extendido (EER) incorpora conceptos orientados a objetos para gestionar jerarquías de clases de entidades:
- Supertipo (Entidad Genérica): Es la entidad de nivel superior que contiene los atributos comunes (incluyendo la clave primaria) y las relaciones generales que comparten todas las variantes.
- Subtipo (Entidad Especializada): Es una entidad de nivel inferior que representa una subclase o variante específica del supertipo.
- El Principio de Herencia: Todo subtipo hereda automáticamente todos los atributos (identificadores y descriptores) y todas las relaciones del supertipo. Los subtipos solo deben definir sus atributos y relaciones exclusivos.
- Especialización (Enfoque Top-Down): Proceso de diseño descendente en el que se parte de una entidad supertipo y se identifican subgrupos especializados con propiedades exclusivas.
- Generalización (Enfoque Bottom-Up): Proceso de diseño ascendente en el que se observan múltiples entidades con atributos repetidos y se abstrae una entidad supertipo común.
4.2 Clasificación de Jerarquías (Total/Parcial, Disjunta/Solapada)
Atendiendo a las reglas de pertenencia de las instancias del supertipo a los subtipos, se definen dos dimensiones independientes:
Dimensión 1: Cobertura (Total o Parcial)
- Total (): Toda instancia del supertipo DEBE pertenecer obligatoriamente al menos a uno de los subtipos.
- Parcial (): Pueden existir instancias en el supertipo que no pertenezcan a ningún subtipo especializado.
Dimensión 2: Solapamiento (Disjunta o Solapada)
- Disjunta (): Una instancia del supertipo puede pertenecer como MÁXIMO a un único subtipo (subtipos mutuamente excluyentes).
- Solapada (): Una instancia del supertipo puede pertenecer SIMULTÁNEAMENTE a varios subtipos.
Combinación de las Cuatro Clases de Jerarquía
- Total y Disjunta : Toda instancia del supertipo pertenece a un y solo un subtipo.
- Ejemplo: La entidad
PERSONAdividida enHOMBREyMUJER.
- Ejemplo: La entidad
- Parcial y Disjunta : Una instancia del supertipo puede no estar en ningún subtipo, pero si está, solo puede pertenecer a uno.
- Ejemplo: La entidad
VEHÍCULOespecializada enTURISMOyCAMIÓN(pueden existir vehículos en la base de datos que sean motocicletas sin subtipo específico).
- Ejemplo: La entidad
- Parcial y Solapada : Una instancia puede no estar en ningún subtipo o pertenecer a múltiples a la vez.
- Ejemplo: La entidad
EMPLEADOespecializada enPROGRAMADORyDIRECTOR(un empleado puede ser solo programador, o simultáneamente programador y director).
- Ejemplo: La entidad
- Total y Solapada : Toda instancia debe pertenecer al menos a un subtipo y puede estar en múltiples simultáneamente.
Laboratorio: ¿qué jerarquía es?
Fija las reglas (cobertura y solapamiento) y marca a qué subtipos pertenece cada empleado: la tabla te dirá quién incumple la jerarquía y qué estrategias de transformación son válidas.
Supertipo EMPLEADO, subtipos PROGRAMADOR y DIRECTOR. Marca a qué subtipos pertenece cada empleado y mira qué reglas se incumplen.
4.3 Agregación: Modelado de Asociaciones como Entidades
La agregación es una abstracción que permite considerar una relación entre dos entidades junto con dichas entidades como si fuera una entidad de orden superior (entidad agregada), haciendo posible que esta estructura completa se relacione a su vez con otra tercera entidad.
¿Por qué es necesaria la Agregación?
Cuando se intenta modelar una situación donde una relación solo tiene sentido para ciertas combinaciones sin forzar una relación ternaria completa.
Ejemplo Clásico de Agregación: Consideremos la relación
CASADO_CONentre las entidadesHOMBREyMUJER. Un matrimonio civil requiere ser registrado en unJUZGADO. No todas las parejas se casan por lo civil (algunas lo hacen por la iglesia). Si creáramos una relación ternaria entreHOMBRE,MUJERyJUZGADO, obligaríamos erróneamente a que todos los matrimonios registraran un juzgado. Solución con Agregación: Encapsulamos la relaciónCASADO_CONdentro de una caja de Entidad Agregada llamadaMATRIMONIO. Posteriormente, relacionamos la entidad agregadaMATRIMONIOcon la entidadJUZGADOmediante la relación opcionalREGISTRADO_EN.
¿Agregación o ternaria? Pregúntate: ¿puede existir la relación entre las dos primeras entidades sin que intervenga la tercera? Si la respuesta es sí (no todos los matrimonios se registran en un juzgado), necesitas agregación. Si los tres participantes son siempre indisolubles en el hecho que registras (qué profesor imparte qué módulo a qué grupo), es una ternaria.
4.4 Relaciones Ternarias y Análisis Formal de Cardinalidad
Una relación ternaria asocia tres entidades de forma indivisible. Para determinar sus cardinalidades con rigor, se aplica el método de fijar un par de entidades y analizar el rango del extremo libre:
Metodología Formal de Cálculo
Fijamos una instancia de y una instancia de simultáneamente, y nos preguntamos:
- ¿Con cuántas instancias de se puede asociar la pareja como mínimo y como máximo? par sobre .
Clasificación por Conectividad Máxima
Conectividad : Cualquier combinación de dos entidades se asocia como máximo con una instancia de la tercera entidad.
Conectividad : La pareja de entidades se asocia con múltiples instancias de . Sin embargo, las parejas y se asocian con como máximo una instancia de la entidad restante.
Conectividad : La pareja se asocia con múltiples instancias de , y la pareja se asocia con múltiples instancias de . Solo la pareja se limita a una única instancia de .
Conectividad : Cualquier combinación de parejas de dos entidades puede asociarse con múltiples instancias de la tercera entidad libre.
5. Fases en la Construcción del Esquema Conceptual
Para elaborar un esquema conceptual EER profesional a partir de un texto de requisitos, se debe aplicar una metodología en 5 pasos:
Paso 1: Identificación y Selección de Entidades: Buscar sustantivos comunes que representen objetos con propiedades de interés. Descartar sustantivos que representen valores simples o instancias.
Paso 2: Definición de Claves Primarias e Identificadores: Asignar atributos identificadores unívocos (
PK) a cada entidad. Identificar si existen entidades débiles que requieran claves compuestas con la entidad fuerte.Paso 3: Establecimiento de Relaciones y Cardinalidades: Identificar verbos de acción que conecten las entidades. Para cada relación, calcular minuciosamente las cardinalidades en ambos sentidos.
Paso 4: Asignación de Atributos y Dominio: Colocar los atributos descriptores en sus entidades correspondientes. Si un atributo depende de la combinación de dos entidades (ej.
fecha_alquileronota_examen), debe colocarse directamente en la relación.Paso 5: Optimización y Eliminación de Redundancias: Revisar el diagrama para detectar relaciones transitivas redundantes (relaciones que pueden deducirse combinando otras asociaciones) y simplificar el modelo.
1. Lee el enunciado
«La biblioteca presta libros a socios. De cada libro se guardan varios ejemplares físicos. Un libro puede tener varios autores.» Subraya los sustantivos (candidatos a entidad) y los verbos (candidatos a relación).
2. Entidades
Candidatas: biblioteca, libro, socio, ejemplar, autor. ¿La biblioteca es una entidad? Si solo hay una, es el contexto, no una entidad: se descarta. Quedan LIBRO, EJEMPLAR, SOCIO, AUTOR.
3. Identificadores
LIBRO se identifica por isbn; SOCIO por num_socio; AUTOR por id_autor. EJEMPLAR solo se distingue dentro de su libro: es una entidad débil con clave parcial num_ejemplar.
4. Relaciones
AUTOR–LIBRO (escribe), LIBRO–EJEMPLAR (identifica), SOCIO–EJEMPLAR (toma prestado).
5. Cardinalidades
Un autor escribe (0,N) libros y un libro lo escriben (1,N) autores → N:M. Un libro tiene (1,N) ejemplares y cada ejemplar es de (1,1) libro → 1:N. Un socio toma prestados (0,N) ejemplares y un ejemplar está en préstamo con (0,N) socios a lo largo del tiempo → N:M con atributo fecha.
6. Revisa
¿Cada entidad tiene identificador? ¿Hay atributos que en realidad son entidades? ¿Falta alguna relación? Compáralo con el diagrama de la biblioteca de más arriba.
6. Ejemplos Prácticos Completos Resueltos
6.1 Ejemplo 1: Gestión de Librería y Editoriales
Enunciado de Requisitos:
Se requiere diseñar el esquema conceptual para la gestión de una librería. De cada LIBRO se conoce su ISBN (clave primaria), título, número de páginas y precio. Cada libro es editado por una única EDITORIAL (código, nombre, dirección y teléfono). Una editorial puede editar muchos libros. Un libro puede ser escrito por varios AUTOR (código, nombre, nacionalidad) y un autor puede escribir varios libros.
erDiagram
EDITORIAL ||--o{ LIBRO : EDITA
AUTOR }|--|{ LIBRO : ESCRIBE
EDITORIAL {
int cod_editorial PK
string nombre
string direccion
string telefono
}
LIBRO {
string isbn PK
string titulo
int num_paginas
decimal precio
}
AUTOR {
int cod_autor PK
string nombre
string nacionalidad
}6.2 Ejemplo 2: Gestión Interna de Empresa y Departamentos
Enunciado de Requisitos:
Diseñar la base de datos de una empresa. Se almacena información de EMPLEADO (número de empleado, DNI, nombre, dirección y fecha de alta). Los empleados están adscritos a un DEPARTAMENTO (código de departamento, nombre). Un empleado pertenece a un único departamento y en un departamento trabajan varios empleados. Un empleado puede ser jefe de un departamento. De los empleados se registran sus HIJO (entidad débil con número de hijo y nombre) para el control de beneficios sociales.
erDiagram
DEPARTAMENTO ||--|{ EMPLEADO : PERTENECE
EMPLEADO ||--o| DEPARTAMENTO : DIRIGE
EMPLEADO ||--o{ HIJO : TIENE
DEPARTAMENTO {
int cod_dep PK
string nombre_dep
}
EMPLEADO {
int num_emp PK
string dni
string nombre
date fecha_alta
}
HIJO {
int num_hijo PK
string nombre_hijo
}6.3 Ejemplo 3: Organización de un Congreso Científico
Enunciado de Requisitos:
Un congreso científico necesita organizar sus actividades. Se registran los PARTICIPANTE (código, nombre, dirección, país). Los participantes pueden presentar PONENCIA (título identificador, número de páginas). Una ponencia es escrita por uno o varios participantes. A cada ponencia se le asignan varios participantes como revisores. Las ponencias se presentan en SESIÓN (número de sesión, fecha, hora). Una sesión alberga varias ponencias pero una ponencia solo se expone en una sesión.
6.4 Ejemplo 4: Empresa de Repostería “PAVA S.A.”
Especificaciones del Modelo PAVA S.A
- PRODUCTO e INGREDIENTE: Relación denominada
COMPUESTO_PORque contiene el atributo descriptorporcentajepara indicar la participación de cada ingrediente en la receta. - FORMATOS: La entidad
PRODUCTOse comercializa en distintosFORMATO_PRODUCTO(peso en gramos y precio específico de venta). - CLIENTE y PEDIDO: Un
CLIENTErealiza múltiplesPEDIDO. Cada pedido incluye varias líneas de detalle solicitando unidades específicas de un producto en un formato determinado. - COMPETIDORES: Relación de seguimiento de productos similares lanzados por marcas rivales en el mercado.
7. Notaciones y Herramientas de Modelado
El modelo E/R es uno, pero hay varias formas de dibujarlo. Es importante reconocerlas porque cada herramienta usa la suya (RA6.a).
| Notación | Cómo representa las relaciones | Cardinalidad | Dónde la encontrarás |
|---|---|---|---|
| Chen (original, 1976) | Rombo entre las entidades. Atributos en óvalos | Pares (mín, máx) o 1/N junto a cada entidad | Libros de texto, exámenes, estos apuntes |
| Pata de gallo (crow’s foot, Martin/IE) | Línea entre entidades. Atributos dentro del rectángulo | Símbolos en los extremos: | uno, o cero, < muchos | draw.io, MySQL Workbench, Mermaid, Lucidchart |
| Barker | Línea con trazo continuo (obligatorio) o discontinuo (opcional) y pata de gallo | Trazo y pata de gallo | Oracle SQL Developer Data Modeler |
| UML (diagrama de clases) | Asociaciones entre clases | Multiplicidad 0..1, 1, 0..*, 1..* | Ingeniería del software, herramientas CASE |
7.1 Equivalencia entre la notación de Chen y la pata de gallo
Lee siempre la cardinalidad desde una entidad hacia la otra. En la notación de pata de gallo, el símbolo que está junto a una entidad indica cuántas instancias de esa entidad se relacionan con una instancia de la entidad del otro extremo.
| Chen (participación de la entidad opuesta) | Pata de gallo | Lectura |
|---|---|---|
| (0, 1) | |o | cero o uno |
| (1, 1) | || | exactamente uno |
| (0, N) | o{ | cero o muchos |
| (1, N) | |{ | uno o muchos |
Ejemplo: «un grupo tiene cero o muchos alumnos y un alumno pertenece a cero o un grupo».
erDiagram
GRUPO |o--o{ ALUMNO : "pertenece"
GRUPO {
string cod_grupo PK
string turno
}
ALUMNO {
int id_alumno PK
string nia UK
string nombre
}En notación de Chen, la pareja (mín, máx) se coloca en algunos libros junto a la propia entidad y en otros junto a la entidad opuesta. Antes de interpretar un diagrama, comprueba qué convenio usa. En estos apuntes, la cardinalidad (mín, máx) junto a una entidad indica con cuántas instancias de esa entidad se relaciona una instancia de la otra.
7.2 Herramientas
| Herramienta | Tipo | Uso recomendado |
|---|---|---|
| draw.io / diagrams.net | Libre, web y escritorio | Diagramas E/R en notación de Chen y pata de gallo. Se integra con VS Code y Git |
| Oracle SQL Developer Data Modeler | Gratuita | Modelo lógico y relacional; genera el DDL de Oracle automáticamente (UD03 y UD05) |
| ERDPlus | Web gratuita | Diagramas de Chen y paso automático al modelo relacional |
| Mermaid | Texto a diagrama | Diagramas en Markdown dentro del repositorio (como los de estos apuntes) |
| Papel y lápiz | — | Primeros bocetos y exámenes. Sigue siendo la forma más rápida de pensar |
Una herramienta gráfica no diseña por ti. Primero razona entidades, relaciones y cardinalidades sobre el enunciado; después pásalo a la herramienta. Guarda el fichero fuente (
.drawio,.dmd,.md) en el repositorio además de la imagen exportada.
8. Caso Guiado: el Modelo E/R de EduGest
Aplicamos la metodología del apartado 5 a una parte del enunciado de EduGest: ciclos, módulos, grupos y alumnado.
Paso 1. Entidades candidatas
Subrayamos los sustantivos del enunciado y nos preguntamos si cada uno tiene propiedades propias e instancias distintas:
| Sustantivo | ¿Entidad? | Motivo |
|---|---|---|
| ciclo formativo | Sí | Tiene código, nombre, grado y horas |
| módulo profesional | Sí | Tiene código, nombre, curso y horas |
| grupo | Sí | Tiene código, turno, tutor |
| alumno | Sí | Muchos atributos propios |
| curso académico (2025-26) | No | Es un valor que describe una matrícula. Pasa a ser atributo |
| turno | No | Es un valor (M/T) de un atributo del grupo |
| tutor | No (rol) | Es un profesor que cumple un papel: se modela como relación |
Paso 2. Identificadores
CICLO:cod_ciclo(DAM, DAW…).MODULO: el código oficial no basta, porque 0484 aparece en DAM y en DAW con grupos y docentes diferentes. Opciones: un identificador artificialid_modulo, o considerarMODULOuna entidad débil deCICLO(identificadorcodigo+cod_ciclo). Las dos son correctas; elegimos el identificador artificial y anotamos que (codigo,cod_ciclo) debe ser único.GRUPO:cod_grupo.ALUMNO:nia(o un identificador interno).
Paso 3. Relaciones y cardinalidades
| Relación | Pregunta | Cardinalidad |
|---|---|---|
| CICLO — se compone de — MODULO | ¿Cuántos módulos tiene un ciclo? ¿A cuántos ciclos pertenece un módulo? | Un ciclo tiene (0, N) módulos (SMR todavía no tiene); un módulo pertenece a (1, 1) ciclo |
| CICLO — organiza — GRUPO | Un ciclo tiene (0, N) grupos; un grupo es de (1, 1) ciclo | |
| GRUPO — pertenece — ALUMNO | Un grupo tiene (0, N) alumnos; un alumno está en (0, 1) grupo | |
| ALUMNO — se matricula — MODULO | ¿Puede un alumno matricularse en varios módulos? ¿Puede un módulo tener varios alumnos? | N:M. Atributos de la relación: curso académico, fecha, convocatoria, nota |
Paso 4. Atributos de las relaciones
La nota no es del alumno (tiene muchas) ni del módulo (lo cursan muchos): depende de la pareja alumno-módulo y del curso académico. Por eso va en la relación se matricula. Además, como un alumno puede repetir un módulo en otro curso, el curso académico forma parte de lo que identifica cada matrícula.
Paso 5. Revisión
- ¿Hay ciclos? Si un alumno pertenece a un grupo y el grupo a un ciclo, no hace falta una relación directa ALUMNO-CICLO: sería redundante (se deduce).
- ¿Hay restricciones que el diagrama no recoge? Sí: un alumno solo debería matricularse en módulos del ciclo de su grupo. Se anota como restricción textual (RA6.h).
erDiagram
CICLO ||--o{ MODULO : "se compone de"
CICLO ||--o{ GRUPO : "organiza"
GRUPO |o--o{ ALUMNO : "pertenece"
ALUMNO ||--o{ MATRICULA : "realiza"
MODULO ||--o{ MATRICULA : "es objeto de"
MATRICULA {
string curso_academico
date fecha_matricula
int convocatoria
decimal nota_final
}La notación de pata de gallo no tiene rombos, así que la relación N:M se matricula, que tiene atributos, se dibuja como una entidad intermedia
MATRICULA. En notación de Chen sería un rombo con los cuatro atributos. Las dos representan lo mismo.
9. Errores Frecuentes y Buenas Prácticas
| Error frecuente | Por qué es un error | Cómo evitarlo |
|---|---|---|
Modelar como entidad algo que es un valor (TURNO, COLOR) | Una entidad necesita propiedades e instancias de interés propias | Pregúntate qué atributos tendría. Si no tiene, es un atributo |
Poner en una entidad un atributo de la relación (nota en ALUMNO) | El atributo depende de las dos entidades a la vez | Si el valor cambia según la pareja, va en la relación |
| Usar el nombre como identificador | Los nombres se repiten y cambian | Usa códigos estables o identificadores artificiales |
| Relaciones redundantes (ciclos en el diagrama) | Generan datos duplicados e inconsistentes | Comprueba si la relación se deduce de otras |
| Cardinalidades «a ojo» | Producen tablas mal diseñadas en la UD03 | Formula siempre las dos preguntas (mínimo y máximo) en los dos sentidos |
Atributos calculados (edad) guardados como atributos normales | Quedan desactualizados | Guarda fecha_nacimiento y calcula la edad |
| Inventar requisitos | El diseño deja de responder al cliente | Anota las dudas como supuestos y valídalos con el cliente |
Buenas prácticas: nombres de entidades en singular y en mayúsculas, relaciones con verbos, un diccionario de datos con el significado de cada atributo y una lista de supuestos semánticos que explique las decisiones que el enunciado no aclara.
10. Resumen y Conclusiones
- El Modelo EER es el lenguaje gráfico conceptual estándar para abstraer los requisitos del mundo real hacia un esquema de base de datos riguroso.
- Las entidades débiles dependen de una entidad fuerte y forman claves compuestas para garantizar la integridad existencial.
- Las jerarquías de generalización/especialización evitan la duplicación de código mediante el principio de herencia de atributos.
- La agregación y las relaciones ternarias permiten resolver semánticas de asociación complejas sin distorsionar las cardinalidades.
- Una metodología rigurosa en 5 pasos garantiza que la posterior traducción al modelo relacional produzca tablas bien estructuradas y normalizadas.
- El mismo modelo se puede dibujar en notación de Chen, pata de gallo, Barker o UML. Las herramientas gráficas ayudan a representarlo, pero las decisiones de diseño se razonan sobre el enunciado.
- Las reglas que el diagrama no puede expresar se documentan como restricciones textuales para implementarlas más adelante.
11. Ejercicios Resueltos
1. Pregunta Teórica: Entidades Débiles
Pregunta: Explique la diferencia entre dependencia de existencia y dependencia de identificación en una entidad débil.
Solución Explicada
- Dependencia de Existencia: Ocurre cuando las instancias de la entidad débil no pueden sobrevivir en la base de datos si se elimina la instancia de la entidad fuerte relacionada (ej. si se elimina un
CONTRATO, desaparecen susPAGOSasociados). - Dependencia de Identificación: Ocurre cuando la entidad débil no posee un atributo identificador propio suficiente para ser clave primaria, por lo que necesita combinar su identificador parcial (discriminador) con la clave primaria de la entidad fuerte propietaria.
2. Análisis de Jerarquía EER
Pregunta: En una empresa, la entidad EMPLEADO se especializa en INFORMÁTICO y ADMINISTRATIVO. Clasifique la jerarquía según sus restricciones si se establece que:
- a) Todo empleado debe ser obligatoriamente informático o administrativo.
- b) Un empleado puede desempeñar simultáneamente labores de informático y administrativo.
Solución Explicada
- a) Dado que todo empleado debe estar al menos en una subclase, la cobertura es Total ().
- b) Dado que puede pertenecer a ambas subclases a la vez, el solapamiento es Solapado ().
- Clasificación Resultante: Jerarquía Total y Solapada .
3. Ejercicio Práctico de Diseño EER
Enunciado: Diseñe el esquema conceptual para un hospital. Se registran PACIENTE (NSS, nombre) y MÉDICO (número de colegiado, nombre, especialidad). Un médico atiende a múltiples pacientes y un paciente puede ser atendido por distintos médicos. De cada atención médica se desea registrar la fecha_consulta y el diagnóstico.
Solución Explicada
- Entidades:
PACIENTE(PK:NSS) yMÉDICO(PK:num_colegiado). - Relación:
ATIENDEentreMÉDICOyPACIENTE. - Cardinalidades:
MÉDICOrespecto aATIENDE: (un médico puede no haber atendido pacientes aún o atender a muchos).PACIENTErespecto aATIENDE: (un paciente debe haber sido atendido al menos una vez y puede ser visto por varios médicos).
- Atributos de la Relación: Como un mismo médico puede atender al mismo paciente en fechas distintas con diagnósticos diferentes, los atributos
fecha_consultaydiagnósticose colocan directamente en la relaciónATIENDE.
12. Autoevaluación
Responde a las preguntas y pulsa Corregir. Cada respuesta incluye una explicación.
Referencias
- Chen, P. P. (1976). «The Entity-Relationship Model: Toward a Unified View of Data». ACM Transactions on Database Systems, 1(1).
- Elmasri, R. y Navathe, S. B. Fundamentos de sistemas de bases de datos. Pearson.
- Mermaid: sintaxis de los diagramas entidad-relación.