Enunciado #
El diagrama inicial ya incluye las tablas colocadas y sus nombres. Añade los campos y configura sus tipos, claves, restricciones y relaciones según el enunciado.
Un conservatorio necesita gestionar estudiantes, clases, profesores e instrumentos. Cada estudiante puede asistir a varias clases y aprender distintos instrumentos. Además, se quiere conservar el historial de aprendizaje, con sus fechas, y saber qué instrumentos puede enseñar cada profesor.
Datos que debes almacenar #
- Estudiante:
id_estudiante (entero, identificador, autoincremental), nombre (texto), apellido (texto), edad (entero) y nivel_habilidad (enum; principiante, intermedio o avanzado).
- Profesor:
id_profesor (entero, identificador, autoincremental), nombre (texto), apellido (texto) y anio_contratacion (entero).
- Instrumento:
id_instrumento (entero, identificador, autoincremental), nombre (texto; guitarra, piano, batería, etc.) y tipo (texto; cuerda, viento, percusión, etc.).
- Clase:
id_clase (entero, identificador, autoincremental), fecha_inicio (fecha), duracion_semanas (entero) e id_profesor (entero).
- Inscripcion:
id_estudiante (entero) e id_clase (entero).
- Especializacion:
id_profesor (entero) e id_instrumento (entero).
- HistorialInstrumento:
id_estudiante (entero), id_instrumento (entero), fecha_inicio (fecha) y fecha_fin (fecha, opcional mientras siga aprendiendo).
Reglas del negocio #
- Estudiantes y clases se relacionan N:N. La PK de
Inscripcion es (id_estudiante, id_clase).
- Cada clase tiene un único profesor y un profesor puede impartir varias clases.
- Un profesor puede enseñar varios instrumentos y un instrumento puede ser enseñado por varios profesores. Resuelve esta relación con
Especializacion, cuya PK es (id_profesor, id_instrumento); no guardes una lista de instrumentos en una columna del profesor.
- El historial de aprendizaje resuelve la relación N:N entre estudiantes e instrumentos y conserva sus fechas.
- Para permitir que un estudiante retome el mismo instrumento en otro periodo, usa
(id_estudiante, id_instrumento, fecha_inicio) como PK de HistorialInstrumento.
- Las fechas finales, cuando existan, no pueden ser anteriores a las iniciales. No se permiten periodos solapados del mismo estudiante e instrumento; estas reglas se validarían al implementar la base de datos.
- El documento no asocia cada clase a un instrumento concreto. Conserva ese alcance: la especialización del profesor y el historial del estudiante son relaciones propias, no se deducen de la asistencia a clase.
Si no se dice los contrario los campos son obligatorios.
Diseña las siete tablas y sus relaciones. Se mantiene la edad como dato del documento; una aplicación real podría calcularla a partir de una fecha de nacimiento.