Tema+8.+Ejercicios+transformación+a+Módelo+Relacional


 * Hacer el diagrama entidad/relación, pasar al modelo relacional y normalizar hasta 3ª forma normal los siguientes ejercicios: **


 * EJERCICIO 1 **

Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes (nombre, apellidos, dni, dirección y fecha de nacimiento). Cada producto tiene un nombre y un código, así como un precio unitario. Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser comprado por varios clientes. Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta que un producto sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferentes productos. De cada proveedor se desea conocer el NIF, nombre y dirección.


 * Solución 1. Modelo Relacional ||  ||>   || Solución 1. Modelo Entidad-Relación ||


 * EJERCICIO 2 **

Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por toda España. Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el dni, nombre, teléfono, dirección, salario y población en la que vive. De los paquetes transportados interesa conocer el código de paquete, descripción, destinatario y dirección del destinatario. Un camionero distribuye muchos paquetes, y un paquete sólo puede ser distribuido por un camionero. De las provincias a las que llegan los paquetes interesa guardar el código de provincia y el nombre. Un paquete sólo puede llegar a una provincia. Sin embargo, a una provincia pueden llegar varios paquetes. De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo, tipo y potencia. Un camionero puede conducir diferentes camiones en fechas diferentes, y un camión puede ser conducido por varios camioneros.


 * Solución 2. Modelo Relacional ||  ||   || Solución 2. Modelo Entidad-Relación ||


 * EJERCICIO 3 **

Se desea diseñar la base de datos de un Instituto. En la base de datos se desea guardar los datos de los profesores del Instituto (DNI, nombre, dirección y teléfono). Los profesores imparten módulos, y cada módulo tiene un código y un nombre. Cada alumno está matriculado en uno o varios módulos. De cada alumno se desea guardar el nº de expediente, nombre, apellidos y fecha de nacimiento. Los profesores pueden impartir varios módulos, pero un módulo sólo puede ser impartido por un profesor. Cada curso tiene un grupo de alumnos, uno de los cuales es el delegado del grupo.


 * Solución 3. Modelo Relacional ||  ||   || Solución 3. Modelo Entidad-Relación ||


 * EJERCICIO 4 **

Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa dedicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos: La empresa dispone de una serie de coches para su venta. Se necesita conocer la matrícula, marca y modelo, el color y el precio de venta de cada coche. Los datos que interesa conocer de cada cliente son el NIF, nombre, dirección, ciudad y número de teléfono: además, los clientes se diferencian por un código interno de la empresa que se incrementa automáticamente cuando un cliente se da de alta en ella. Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser comprado por un único cliente. El concesionario también se encarga de llevar a cabo las revisiones que se realizan a cada coche. Cada revisión tiene asociado un código que se incrementa automáticamente por cada revisión que se haga. De cada revisión se desea saber si se ha hecho cambio de filtro, si se ha hecho cambio de aceite, si se ha hecho cambio de frenos u otros. Los coches pueden pasar varias revisiones en el concesionario.


 * Solución 4. Modelo Relacional ||  ||   || Solución 4. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 5 **

<span style="font-family: Verdana,Geneva,sans-serif;">La clínica “SAN ANTÓN” necesita llevar un control informatizado de su gestión de pacientes y médicos. <span style="font-family: Verdana,Geneva,sans-serif;">De cada paciente se desea guardar el código, nombre, apellidos, dirección, población, provincia, código postal, teléfono y fecha de nacimiento. <span style="font-family: Verdana,Geneva,sans-serif;">De cada médico se desea guardar el código, nombre, apellidos, teléfono y especialidad. Se desea llevar el control de cada uno de los ingresos que el paciente hace en el hospital. Cada ingreso que realiza el paciente queda registrado en la base de datos. De cada ingreso se guarda el código de <span style="font-family: Verdana,Geneva,sans-serif;">ingreso (que se incrementará automáticamente cada vez que el paciente realice un ingreso), el número de habitación y cama en la que el paciente realiza el ingreso y la fecha de ingreso. <span style="font-family: Verdana,Geneva,sans-serif;">Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser atendido por un único médico. Un paciente puede realizar varios ingresos en el hospital.


 * Solución 5. Modelo Relacional ||  ||   || Solución 5. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 6 **

<span style="font-family: Verdana,Geneva,sans-serif;">Se desea informatizar la gestión de una tienda informática. La tienda dispone de una serie de productos que se pueden vender a los clientes. <span style="font-family: Verdana,Geneva,sans-serif;">De cada producto informático se desea guardar el código, descripción, precio y número de existencias. De cada cliente se desea guardar el código, nombre, apellidos, dirección y número de teléfono. <span style="font-family: Verdana,Geneva,sans-serif;">Un cliente puede comprar varios productos en la tienda y un mismo producto puede ser comprado por varios clientes. Cada vez que se compre un artículo quedará registrada la compra en la base de datos junto con la fecha en la que se ha comprado el artículo. <span style="font-family: Verdana,Geneva,sans-serif;">La tienda tiene contactos con varios proveedores que son los que suministran los productos. Un mismo producto puede ser suministrado por varios proveedores. De cada proveedor se desea guardar el código, nombre, apellidos, dirección, provincia y número de teléfono.


 * Solución 6. Modelo Relacional ||  ||   || Solución 6. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 7 **

<span style="font-family: Verdana,Geneva,sans-serif;">Considera la siguiente relación PERSONA-TIENE HIJOS-PERSONA. Una persona puede tener muchos hijos/as o ninguno. Una persona siempre es hijo/a de otra persona. Los atributos de la persona son dni, nombre, dirección y teléfono. Transformarlo al modelo relacional.


 * Solución 7. Modelo Relacional ||  ||   || Solución 7. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 8 **

<span style="font-family: Verdana,Geneva,sans-serif;">En la biblioteca del centro se manejan fichas de autores y libros. En la ficha de cada autor se tiene el código de autor y el nombre. De cada libro se guarda el código, título, ISBN, editorial y número de página. Un autor puede escribir varios libros, y un libro puede ser escrito por varios autores. Un libro está formado por ejemplares. Cada ejemplar tiene un código y una localización. Un libro tiene muchos ejemplares y un ejemplar pertenece sólo a un libro. <span style="font-family: Verdana,Geneva,sans-serif;">Los usuarios de la biblioteca del centro también disponen de ficha en la biblioteca y sacan ejemplares de ella. De cada usuario se guarda el código, nombre, dirección y teléfono. Los ejemplares son prestados a los usuarios. Un usuario puede tomar prestados varios ejemplares, y un <span style="font-family: Verdana,Geneva,sans-serif;">ejemplar puede ser prestado a varios usuarios. De cada préstamos interesa guardar la fecha de préstamo y la fecha de devolución.


 * Solución 8. Modelo Relacional ||  ||   || Solución 8. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 9 **

<span style="font-family: Verdana,Geneva,sans-serif;">A un concesionario de coches llegan clientes para comprar automóviles. De cada coche interesa saber la matrícula, modelo, marca y color. Un cliente puede comprar varios coches en el concesionario. Cuando un cliente compra un coche, se le hace una ficha en el concesionario con la <span style="font-family: Verdana,Geneva,sans-serif;">siguiente información: dni, nombre, apellidos, dirección y teléfono. <span style="font-family: Verdana,Geneva,sans-serif;">Los coches que el concesionario vende pueden ser nuevos o usados (de segunda mano). De los coches nuevos interesa saber el número de unidades que hay en el concesionario. De los coches viejos interesa el número de kilómetros que lleva recorridos. <span style="font-family: Verdana,Geneva,sans-serif;">El concesionario también dispone de un taller en el que los mecánicos reparan los coches que llevan los clientes. Un mecánico repara varios coches a lo largo del día, y un coche puede ser reparado por varios mecánicos. Los mecánicos tienen un dni, nombre, apellidos, fecha de contratación y salario. <span style="font-family: Verdana,Geneva,sans-serif;">Se desea guardar también la fecha en la que se repara cada vehículo y el número de horas que se tardado en arreglar cada automóvil.


 * Solución 9. Modelo Relacional ||  ||   || Solución 9. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 10 **

<span style="font-family: Verdana,Geneva,sans-serif;">La liga de fútbol profesional ha decidido informatizar sus instalaciones creando una base de datos para guardar la información de los partidos que se juegan en la liga. <span style="font-family: Verdana,Geneva,sans-serif;">Se desea guardar en primer lugar los datos de los jugadores. De cada jugador se quiere guardar el nombre, fecha de nacimiento y posición en la que juega (portero, defensa, centrocampista...). Cada jugador tiene un código de jugador que lo identifica de manera única. <span style="font-family: Verdana,Geneva,sans-serif;">De cada uno de los equipos de la liga es necesario registrar el nombre del equipo, nombre del estadio en el que juega, el aforo que tiene, el año de fundación del equipo y la ciudad de la que es el equipo. Cada equipo también tiene un código que lo identifica de manera única. Un jugador solo <span style="font-family: Verdana,Geneva,sans-serif;">puede pertenecer a un único equipo. <span style="font-family: Verdana,Geneva,sans-serif;">De cada partido que los equipos de la liga juegan hay que registrar la fecha en la que se juega el partido, los goles que ha metido el equipo de casa y los goles que ha metido el equipo de fuera. <span style="font-family: Verdana,Geneva,sans-serif;">Cada partido tendrá un código numérico para identificar el partido. <span style="font-family: Verdana,Geneva,sans-serif;">También se quiere llevar un recuento de los goles que hay en cada partido. Se quiere almacenar el minuto en el que se realizar el gol y la descripción del gol. Un partido tiene varios goles y un jugador puede meter varios goles en un partido. <span style="font-family: Verdana,Geneva,sans-serif;">Por último se quiere almacenar, en la base de datos, los datos de los presidentes de los equipos de fútbol (dni, nombre, apellidos, fecha de nacimiento, equipo del que es presidente y año en el que fue elegido presidente). Un equipo de fútbol tan sólo puede tener un presidente, y una persona sólo puede ser presidente de un equipo de la liga.


 * Solución 10. Modelo Relacional ||  ||   || Solución 10. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 11 **

<span style="font-family: Verdana,Geneva,sans-serif;">Se desea informatizar la gestión de un centro de enseñanza para llevar el control de los alumnos matriculados y los profesores que imparten clases en ese centro. De cada profesor y cada alumno se desea recoger el nombre, apellidos, dirección, población, dni, fecha de nacimiento, código postal y teléfono. <span style="font-family: Verdana,Geneva,sans-serif;">Los alumnos se matriculan en una o más asignaturas, y de ellas se desea almacenar el código de asignatura, nombre y número de horas que se imparten a la semana. Un profesor del centro puede impartir varias asignaturas, pero una asignatura sólo es impartida por un único profesor. De cada una de las asignaturas se desea almacenar también la nota que saca el alumno y las incidencias que puedan darse con él. <span style="font-family: Verdana,Geneva,sans-serif;">Además, se desea llevar un control de los cursos que se imparten en el centro de enseñanza. De cada curso se guardará el código y el nombre. En un curso se imparten varias asignaturas, y una asignatura sólo puede ser impartida en un único curso. <span style="font-family: Verdana,Geneva,sans-serif;">Las asignaturas se imparten en diferentes aulas del centro. De cada aula se quiere almacenar el código, piso del centro en el que se encuentra y número de pupitres de que dispone. Una asignatura se puede dar en diferentes aulas, y en un aula se pueden impartir varias asignaturas. Se desea llevar un registro de las asignaturas que se imparten en cada aula. Para ello se anotará el mes, día y hora en el que se imparten cada una de las asignaturas en las distintas aulas. <span style="font-family: Verdana,Geneva,sans-serif;">La dirección del centro también designa a varios profesores como tutores en cada uno de los cursos. <span style="font-family: Verdana,Geneva,sans-serif;">Un profesor es tutor tan sólo de un curso. Un curso tiene un único tutor. Se habrá de tener en cuenta que puede que haya profesores que no sean tutores de ningún curso.


 * Solución 11. Modelo Relacional ||  ||   || Solución 11. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 12 **

<span style="font-family: Verdana,Geneva,sans-serif;">Una empresa necesita organizar la siguiente información referente a su organización interna. <span style="font-family: Verdana,Geneva,sans-serif;">La empresa está organizada en una serie de departamentos. Cada departamento tiene un código, nombre y presupuesto anual. Cada departamento está ubicado en un centro de trabajo. La información que se desea guardar del centro de trabajo es el código de centro, nombre, población y dirección del centro. <span style="font-family: Verdana,Geneva,sans-serif;">La empresa tiene una serie de empleados. Cada empleado tiene un teléfono, fecha de alta en la empresa, NIF y nombre. De cada empleado también interesa saber el número de hijos que tiene y el salario de cada empleado. <span style="font-family: Verdana,Geneva,sans-serif;">A esta empresa también le interesa tener guardada información sobre los hijos de los empleados. <span style="font-family: Verdana,Geneva,sans-serif;">Cada hijo de un empleado tendrá un código, nombre y fecha de nacimiento. <span style="font-family: Verdana,Geneva,sans-serif;">Se desea mantener también información sobre las habilidades de los empleados (por ejemplo, mercadotecnia, trato con el cliente, fresador, operador de telefonía, etc?). Cada habilidad tendrá una descripción y un código. <span style="font-family: Verdana,Geneva,sans-serif;">Hay que tener en cuenta los siguientes aspectos: <span style="font-family: Verdana,Geneva,sans-serif;">• Un empleado está asignado a un único departamento. Un departamento estará compuesto <span style="font-family: Verdana,Geneva,sans-serif;">por uno o más empleados.
 * <span style="font-family: Verdana,Geneva,sans-serif;">Cada departamento se ubica en un único centro de trabajo. Estos se componen de uno o má departamentos.
 * <span style="font-family: Verdana,Geneva,sans-serif;">Un empleado puede tener varios hijos.
 * <span style="font-family: Verdana,Geneva,sans-serif;">Un empleado puede tener varias habilidades, y una misma habilidad puede ser poseída por
 * <span style="font-family: Verdana,Geneva,sans-serif;">empleados diferentes.
 * <span style="font-family: Verdana,Geneva,sans-serif;">Un centro de trabajo es dirigido por un empleado. Un mismo empleado puede dirigir centro de trabajo distintos.


 * Solución 12. Modelo Relacional ||  ||   || Solución 12. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 13 **

<span style="font-family: Verdana,Geneva,sans-serif;">Se desea informatizar una cadena de hoteles. Cada hotel (del que interesa almacenar su nombre, dirección, teléfono, año de construcción, etc.) se encuentra clasificado obligatoriamente en una categoría (por ejemplo, tres estrellas) pudiendo bajar o aumentar de categoría. <span style="font-family: Verdana,Geneva,sans-serif;">Cada categoría tiene asociada diversas informaciones, como, por ejemplo, el tipo de IVA que le corresponde y la descripción. <span style="font-family: Verdana,Geneva,sans-serif;">Los hoteles tiene diferentes clases de habitaciones (suites, dobles, individuales, etc.), que se numeran de forma que se pueda identificar fácilmente la planta en la que se encuentran. Así pues, de cada habitación se desea guardar el código y el tipo de habitación. <span style="font-family: Verdana,Geneva,sans-serif;">Los particulares pueden realizar reservas de las habitaciones de los hoteles. En la reserva de los particulares figurarán el nombre, la dirección y el teléfono. <span style="font-family: Verdana,Geneva,sans-serif;">Las agencias de viaje también pueden realizar reservas de las habitaciones. En caso de que la reserva la realiza una agencia de viajes, se necesitarán los mismos datos que para los particulares, además del nombre de la persona para quien la agencia de viajes está realizando la reserva. <span style="font-family: Verdana,Geneva,sans-serif;">En los dos casos anteriores también se debe almacenar el precio de la reserva, la fecha de inicio y la fecha de fin de la reserva.


 * Solución 13. Modelo Relacional ||  ||   || Solución 13. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 14 **

<span style="font-family: Verdana,Geneva,sans-serif;">Imagina que una agencia de seguros de tu municipio te ha solicitado una base de datos mediante la cual llevar un control de los accidentes y las multas. Tras una serie de entrevistas, has tomado las siguientes notas: <span style="font-family: Verdana,Geneva,sans-serif;">Se desean registrar todas las personas que tienen un vehículo. Es necesario guardar los datos personales de cada persona (nombre, apellidos, dirección, población, teléfono y DNI). <span style="font-family: Verdana,Geneva,sans-serif;">De cada vehículo se desea almacenar la matrícula, la marca y el modelo. Una persona puede tener varios vehículos, y puede darse el caso de un vehículo pertenezca a varias personas a la vez. <span style="font-family: Verdana,Geneva,sans-serif;">También se desea incorporar la información destinada a gestionar los accidentes del municipio. <span style="font-family: Verdana,Geneva,sans-serif;">Cada accidente posee un número de referencia correlativo según orden de entrada a la base de datos. Se desea conocer la fecha, lugar y hora en que ha tenido lugar cada accidente. Se debe tener en cuenta que un accidente puede involucrar a varias personas y varios vehículos. <span style="font-family: Verdana,Geneva,sans-serif;">Se desea llevar también un registro de las multas que se aplican. Cada multa tendrá asignado un número de referencia correlativo. Además, deberá registrarse la fecha, hora, lugar de infracción e importe de la misma. Una multa solo se aplicará a un conductor e involucra a un solo vehículo.


 * Solución 14. Modelo Relacional ||  ||   || Solución 14. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 15 **

<span style="font-family: Verdana,Geneva,sans-serif;">Una agencia de viajes desea informatizar toda la gestión de los viajeros que acuden a la agencia y los viajes que estos realizan. Tras ponernos en contacto con la agencia, ésta nos proporciona la siguiente información. <span style="font-family: Verdana,Geneva,sans-serif;">La agencia desea guardar la siguiente información de los viajeros: dni, nombre, dirección y teléfono. <span style="font-family: Verdana,Geneva,sans-serif;">De cada uno de los viajes que maneja la agencia interesa guardar el código de viaje, número de plazas, fecha en la que se realiza el viaje y otros datos. Un viajero puede realizar tantos viajes como desee con la agencia. Un viaje determinado sólo puede ser cubierto por un viajero. <span style="font-family: Verdana,Geneva,sans-serif;">Cada viaje realizado tiene un destino y un lugar de origen. De cada uno de ellos se quiere almacenar el código, nombre y otros datos que puedan ser de interés. Un viaje tiene un único lugar de destino y un único lugar de origen.


 * Solución 15. Modelo Relacional ||  ||   || Solución 15. Modelo Entidad-Relación ||


 * <span style="font-family: Verdana,Geneva,sans-serif;">EJERCICIO 16 **

<span style="font-family: Verdana,Geneva,sans-serif;">Una empresa desea diseñar una base de datos para almacenar en ella toda la información generada en cada uno de los proyectos que ésta realiza. <span style="font-family: Verdana,Geneva,sans-serif;">De cada uno de los proyectos realizados interesa almacenar el código, descripción, cuantía del proyecto, fecha de inicio y fecha de fin. Los proyectos son realizados por clientes de los que se desea guardar el código, teléfono, domicilio y razón social. Un cliente puede realizar varios <span style="font-family: Verdana,Geneva,sans-serif;">proyectos, pero un solo proyecto es realizado por un único cliente. <span style="font-family: Verdana,Geneva,sans-serif;">En los proyectos participan colaboradores de los que se dispone la siguiente información: nif, nombre, domicilio, teléfono, banco y número de cuenta. Un colaborador puede participar en varios proyectos. Los proyectos son realizados por uno o más colaboradores. <span style="font-family: Verdana,Geneva,sans-serif;">Los colaboradores de los proyectos reciben pagos. De los pagos realizados se quiere guardar el número de pago, concepto, cantidad y fecha de pago. También interesa almacenar los diferentes tipos de pagos que puede realizar la empresa. De cada uno de los tipos de pagos se desea guardar el código y descripción. Un tipo de pago puede pertenecer a varios pagos.


 * Solución 16. Modelo Relacional ||  ||   || Solución 16. Modelo Entidad-Relación ||