Hola a todos, hoy vamos a practicar con ejercicios modelo relacional sobre una base de datos de una asociacion de ongs.
Antes de comenzar, recuerda que tenemos un curso de modelo relacional que puedes revisar antes de hacer ejercicios, te lo dejo por aquí.
https://discoduroderoer.es/curso-modelo-relacional-para-disenar-bases-de-datos
Diagrama Modelo Entidad Relacion

Transformación a Modelo Relacional
Empecemos por la generalización participante.
Crearemos una tabla para cada entidad, cada uno con sus atributos asociados.
Trabajador y socio, tendrán un atributo DNI primario y foráneo que apunta a participante.
Asalariado y voluntario, tendrán un atributo DNI primario y foráneo que apunta a trabajador.

Formato gráfica:

Formato tabla:

Veamos la relación entre asociación y socio.
Crearemos una nueva tabla intermedia entre asociacion y socio al ser una relación N:M.
Se añaden los atributos de la relación a esta nueva tabla, excepto aportacion_anual por ser un campo calculado.
Mantenemos el DNI del socio que apunta a participante.

Formato gráfica:

Formato tabla:

Continuamos con la relación entre asociación y trabajador.
En la tabla trabajador, añadiremos el campo CIF_asociacion por tener el máximo N en la relación 1:N
Mantenemos el DNI del trabajador que apunta a participante.

Formato gráfica:

Formato tabla:

Seguimos con la relación entre asociación y proyecto.
Como proyecto es una entidad débil dependiente de asociación, su tabla contendrá el campo CIF_asociacion que será primaria y foránea.
En la tabla proyecto, le añadimos el campo proyecto_base que hace referencia al campo codigo de su propia tabla. Puede ser nulo.

Formato gráfica:

Formato tabla:
Resultado final
Formato gráfica:

Formato tabla:

Te dejo el Github con todo el contenido: https://github.com/DiscoDurodeRoer/curso-disenio-base-de-datos
Te dejo un video donde lo explicamos paso a paso.
https://youtu.be/W2bqjG4tr_8
¿Quieres mas ejercicios? Te dejo otro video.
Espero que os sea de ayuda, si tenéis dudas, preguntad, estamos para ayudarte.
Deja una respuesta