Ejercicios de modelado lógico relacional de bases de datos · Ejercicio: (avanzado) Empresa de software

Ejercicio: (avanzado) Empresa de software

Puedes preparar tu diagrama. .

Enunciado #

Una empresa de software necesita gestionar proyectos, sus equipos de trabajo y las tareas asignadas. Un empleado puede participar en varios proyectos al mismo tiempo y desempeñar un rol diferente en cada uno.

Datos que debes almacenar #

  • Empleado: id_empleado (entero, identificador), nombre (texto), apellido (texto), email (texto) y cargo (texto; puesto general en la empresa).
  • Proyecto: id_proyecto (entero, identificador), nombre (texto), descripcion (texto), fecha_inicio (fecha), fecha_fin (fecha, opcional mientras esté abierto) y presupuesto (decimal).
  • Participacion: id_empleado (entero), id_proyecto (entero) y rol (texto; función del empleado en ese proyecto).
  • Tarea: id_tarea (entero, identificador), nombre (texto), descripcion (texto), prioridad (enum; alta, media o baja), fecha_asignacion (fecha), fecha_vencimiento (fecha), estado (enum; pendiente, en_progreso o completada), id_empleado (entero) e id_proyecto (entero).

Reglas del negocio #

  1. La relación entre empleados y proyectos es N:N y se resuelve con Participacion, cuya PK es (id_empleado, id_proyecto).
  2. Se registra un rol por empleado y proyecto. El cargo general del empleado y su rol en un proyecto son datos distintos.
  3. Cada tarea pertenece a un proyecto y está asignada a un único empleado que participa en ese mismo proyecto. Un empleado puede tener varias tareas.
  4. Para garantizar esa pertenencia, (id_empleado, id_proyecto) de Tarea forma una FK compuesta hacia Participacion. Dibuja sus dos conexiones; no basta con referenciar por separado cualquier empleado y cualquier proyecto.
  5. La tarea se identifica solo por id_tarea; la pareja empleado–proyecto no es su PK ni es única, ya que puede tener varias tareas.
  6. El equipo de un proyecto está formado por sus participaciones. El documento no define equipos con identidad independiente; no añadas una tabla Equipo.

Diseña las cuatro tablas y sus conexiones. Las tareas se asocian al proyecto mediante su participación responsable. La coherencia de las fechas y los importes se validaría al implementar la base de datos.

Criterios para el challenge #

Conserva los nombres de tablas y campos indicados; los nombres de campos están escritos sin tildes y con guiones bajos. Los tipos entre paréntesis corresponden a las opciones del editor. Todos los campos son obligatorios (NN), salvo los marcados como opcionales; marca las claves primarias (PK), foráneas (FK) y las restricciones de unicidad que se deducen de las reglas.

Deja desactivados autoincremento, clave alternativa e índice. Deja vacíos el valor por defecto, las acciones ON DELETE y ON UPDATE y, salvo que se indique expresamente, CHECK. Usa los extremos 1 y n, o 1 y 1, en las conexiones; una FK opcional tiene NN desmarcado.

Una PK compuesta identifica por la combinación de sus campos: no marques cada componente como único por separado. Si una FK referencia una PK compuesta, dibuja una conexión por cada pareja de campos; todas juntas representan una única referencia a la misma fila. En una implementación SQL se debe declarar una sola FOREIGN KEY con todas esas columnas, no varias referencias independientes. El editor no comprueba por sí solo las reglas sobre varias filas ni todas las restricciones compuestas.

Cargando actividad al acercarte…