Hola a todos, hoy vamos a practicar con ejercicios modelo entidad relacion sobre una base de datos de asociaciones de ONGs.
Antes de comenzar, recuerda que tenemos un curso de modelo entidad relacion que puedes revisar antes de hacer ejercicios, te lo dejo por aquí.
Enunciado
La coordinadora nacional de ONGs desea mantener una base de datos de las asociaciones de este tipo que existen en nuestro pais.
Para ello necesita almacenar información sobre cada asociación, los socios que las componen, los proyectos que realizan y los trabajadores de las mismas.
De las asociaciones se desea almacenar su CIF, denominación, dirección y provincia, su tipo (ecologista, integración, desarrollo, …), así como si esta declarada de utilidad publica por el Ministerio del Interior.
Cada asociación esta formada por socios de los que se precisa conocer su DNI, nombre, dirección, provincia, fecha de alta en la asociación, la cuota mensual con que colaboran y la aportación anual que realizan (que se obtendrá multiplicando la cuota mensual por los meses del año).
Los trabajadores de estas organizaciones pueden ser de dos tipos: asalariados y voluntarios.
Los asalariados son trabajadores que cobran un sueldo y ocupan cierto cargo en la asociación. Se desea almacenar la cantidad que éstos pagan a la seguridad social y el tanto por ciento de IRPF que se le descuenta.
Los voluntarios trabajan en la organización desinteresadamente, siendo preciso conocer su edad, profesión y las horas que dedican a la asociación a efectos de cálculo de estadísticas.
Cada trabajador se identifica por su DNI, tiene un nombre y fecha de ingreso.
Un socio no puede ser trabajador de la asociación.
Las asociaciones llevan a cabo proyectos a los que están asignados sus trabajadores.
De cada proyecto se desea almacenar su número de identificación dentro de la asociación, en qué pais se lleva a cabo y en que zona de este, así como el objetivo que persigue y el numero de beneficiarios a los que afecta.
Un proyecto se compone a su vez de subproyectos.
Proceso
Para ello necesita almacenar información sobre cada asociación, los socios que las componen, los proyectos que realizan y los trabajadores de las mismas.De las asociaciones se desea almacenar su CIF, denominación, dirección y provincia, su tipo (ecologista, integración, desarrollo, …), así como si esta declarada de utilidad publica por el Ministerio del Interior.
Detectamos diferentes entidades: asociacion, proyecto, socio y trabajador.
Asignamos los atributos a la entidad asociacion, CIF será el campo identificativo y denominacion será único.
Cada asociación esta formada por socios de los que se precisa conocer su DNI, nombre, dirección, provincia, fecha de alta en la asociación, la cuota mensual con que colaboran y la aportación anual que realizan (que se obtendrá multiplicando la cuota mensual por los meses del año).

Asignamos los atributos a la entidad socio, DNI-será el campo identificativo.
La cardinalidad entre ambas será N:M ya que una asociación esta formado por varios socios y un socio puede estar en diferentes asociaciones.
Los atributos fecha_ingreso, cuota_mensual y aportacion_mensual las pondremos en la relación. El campo aportacion_mensual es un campo calculado.
Los trabajadores de estas organizaciones pueden ser de dos tipos: asalariados y voluntarios.
Los asalariados son trabajadores que cobran un sueldo y ocupan cierto cargo en la asociación. Se desea almacenar la cantidad que éstos pagan a la seguridad social y el tanto por ciento de IRPF que se le descuenta.
Los voluntarios trabajan en la organización desinteresadamente, siendo preciso conocer su edad, profesión y las horas que dedican a la asociación a efectos de cálculo de estadísticas.
Cada trabajador se identifica por su DNI, tiene un nombre y fecha de ingreso.

Tenemos una generalización en trabajador, añadimos lo subtipos: asalariado y voluntario.
El tipo de la generalización será exclusiva y total, ya que solo pueden haber asalariados o voluntarios y que un asalariado no puede ser voluntario ni viceversa.
Asignamos los atributos a los subtipos.
Asignamos los atributos de la entidad trabajador, DNI será el campo identificativo.
Un socio no puede ser trabajador de la asociación.

Como socio y trabajador comparten DNI y nombre, podemos crear una nueva generalización para ambos.
También será exclusiva y total, porque solo habrán trabajadores o socios y un trabajador no puede ser socio ni viceversa.
Las asociaciones llevan a cabo proyectos a los que están asignados sus trabajadores.
De cada proyecto se desea almacenar su número de identificación dentro de la asociación, en qué pais se lleva a cabo y en que zona de este, así como el objetivo que persigue y el numero de beneficiarios a los que afecta.
Un proyecto se compone a su vez de subproyectos.

Como el proyecto necesita el numero de identificación, significa que es una entidad débil con relacion de identificación.
Asignamos los atributos de proyecto.
Como un proyecto se compone de otros, lo representaremos con una relación reflexiva.
Resultado final

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.
¿Quieres mas ejercicios? Te dejo otro video.
Espero que os sea de ayuda, si tenéis dudas, preguntad, estamos para ayudarte.
Deja una respuesta