Un Modelo Entidad-Relación Ampliado (EER, por sus siglas en inglés) extiende las capacidades del modelo E/R tradicional, añadiendo conceptos avanzados para representar estructuras y relaciones más complejas en un sistema de base de datos. Esto es particularmente útil para manejar herencia, jerarquías, y otros conceptos más detallados.
-
Generalización y Especialización:
- Generalización: Es el proceso de agrupar entidades similares en una entidad más general. Se utiliza cuando varias entidades comparten atributos comunes.
- Especialización: Es el proceso de dividir una entidad general en entidades más específicas basadas en sus características particulares.
Ejemplo:
- Generalización: Las entidades Empleado y Cliente pueden agruparse en una entidad más general llamada Persona.
- Especialización: La entidad Persona puede dividirse en subentidades como Profesor y Estudiante, cada una con atributos específicos.
-
Jerarquías de Herencia:
- Permiten que las subentidades hereden atributos de la entidad padre (superentidad) mientras pueden agregar sus propios atributos.
- Relación: «Es un tipo de».
Ejemplo:
- Superentidad: Vehículo (con atributos comunes: matrícula, modelo).
- Subentidades: Auto (con atributo: número de puertas) y Moto (con atributo: tipo de manillar).
-
Atributos Multivalorados:
- Son atributos que pueden tener más de un valor por instancia de entidad.
- Ejemplo: Una entidad Estudiante puede tener un atributo multivalorado Teléfono, ya que puede tener varios números de contacto.
-
Relaciones con entidades débiles:
- Las entidades débiles y su dependencia de entidades fuertes se pueden representar como parte del modelo ampliado.
-
Relaciones más complejas:
- Relaciones ternarias o de mayor grado, en las cuales más de dos entidades están involucradas.
- Persona (Entidad general, con atributos comunes: PersonaID, Nombre, Dirección).
- Estudiante (Subentidad de Persona, con atributo adicional: Carrera).
- Profesor (Subentidad de Persona, con atributo adicional: Especialidad).
- Curso (Entidad independiente, con atributos: CursoID, NombreCurso).
- «Es un tipo de»: Relación jerárquica entre Persona y sus subentidades (Estudiante y Profesor).
- Imparte: Relación entre Profesor y Curso.
- Inscribirse: Relación entre Estudiante y Curso.
- Generalización: Persona → Estudiante, Profesor.
- Relación binaria: Profesor — Imparte — Curso.
- Relación N:M: Estudiante — Inscribirse — Curso.
-- Tabla para superentidad Persona
CREATE TABLE Persona (
PersonaID INT PRIMARY KEY,
Nombre VARCHAR(100),
Direccion VARCHAR(255)
);
-- Tabla para subentidad Estudiante
CREATE TABLE Estudiante (
PersonaID INT PRIMARY KEY,
Carrera VARCHAR(100),
FOREIGN KEY (PersonaID) REFERENCES Persona(PersonaID)
);
-- Tabla para subentidad Profesor
CREATE TABLE Profesor (
PersonaID INT PRIMARY KEY,
Especialidad VARCHAR(100),
FOREIGN KEY (PersonaID) REFERENCES Persona(PersonaID)
);
-- Tabla para Curso
CREATE TABLE Curso (
CursoID INT PRIMARY KEY,
NombreCurso VARCHAR(100)
);
-- Relación N:M: Inscripción
CREATE TABLE Inscripcion (
EstudianteID INT,
CursoID INT,
PRIMARY KEY (EstudianteID, CursoID),
FOREIGN KEY (EstudianteID) REFERENCES Estudiante(PersonaID),
FOREIGN KEY (CursoID) REFERENCES Curso(CursoID)
);
-- Relación 1:N: Imparte
CREATE TABLE Imparte (
ProfesorID INT,
CursoID INT,
PRIMARY KEY (ProfesorID, CursoID),
FOREIGN KEY (ProfesorID) REFERENCES Profesor(PersonaID),
FOREIGN KEY (CursoID) REFERENCES Curso(CursoID)
);
- Mayor capacidad para representar estructuras complejas.
- Reducción de redundancia gracias a la jerarquización y herencia.
- Claridad para modelar relaciones multivaloradas o de mayor grado.
https://linkedin.com/in/khanukov/**