1. Ejercicios de Iniciación

1.1. Alumnos y asignaturas. Relaciones grado 2.

Se desea diseñar una base de datos para un centro de enseñanza que contenga información sobre los alumnos, las asignaturas y las calificaciones que se obtienen en cada una de las mismas.

1.2. Universidad. Relaciones grado 2.

Se desea diseñar una base de datos para una Universidad que contenga información sobre los alumnos, las asignaturas y las carreras que se pueden estudiar. Construir un modelo E/R teniendo en cuenta las siguientes restricciones:
  • ­ Un alumno puede estar matriculado en muchas asignaturas.
  • ­ Una asignatura sólo puede pertenecer a una sola carrera.
  • ­ Una carrera puede tener muchas asignaturas.

1.3. Universidad 2. Relaciones grado 3.

Se desea diseñar una base de datos para una Universidad que contenga información sobre los alumnos, las asignaturas y los profesores. Construir un modelo E/R teniendo en cuenta las siguientes restricciones:
  • ­ Una asignatura puede estar impartida por muchos profesores (no a la vez) ya que pueden existir diversos grupos.
  • ­ Un profesor puede dar clases de muchas asignaturas.
  • ­ Un alumno puede estar matriculado en muchas asignaturas.
  • ­ Se necesita tener constancia de las asignaturas en las que está matriculado un alumno así como de las notas obtenidas y los profesores que le han calificado.
  • ­ También es necesario tener constancia de las asignaturas que imparten todos los profesores (independientemente de si tienenen algún alumno matriculado en su grupo).
  • ­ No existen asignaturas con el mismo nombre.
  • ­ Un alumno no puede estar matriculado en la misma asignatura con dos profesores distintos.

1.4. Bancos. Entidades débiles.

Se desea diseñar una base de datos para una sucursal bancaria que contenga información sobre los clientes, las cuentas, las sucursales y las operaciones realizadas en cada una de las cuentas. Construir un modelo E/R teniendo en cuenta las siguientes restricciones:
  • ­ Una operación viene determinada por su número de operación, la fecha y la cantidad.
  • ­ Un cliente puede tener muchas cuentas.
  • ­ Una cuenta puede pertenecer a varios clientes.
  • ­ Una cuenta solamente puede estar en una sucursal.

1.5. Centro comercial. Relaciones de Generalización.

Se desea diseñar una base de datos para un centro comercial organizado por departamentos que contengan información sobre los clientes que han comprado algo, los trabajadores, el género que se oferta y las ventas realizadas. Construir un modelo E/R teniendo en cuenta las siguientes restricciones:
  • ­ Existen tres tipos de trabajadores: gerentes, jefes y vendedores.
  • ­ Cada departamento está gestionado por un gerente.
  • ­ Un determinado producto sólo se encuentra en un departamento.
  • ­ Los jefes y vendedores sólo pueden pertenecer a un único departamento.
  • ­ Un gerente tiene a su cargo a un cierto número de jefes y éstos a su vez a un cierto número de vendedores.
  • ­ Una venta la realiza un vendedor a un cliente y debe quedar constancia del artículo vendido. Sólo un artículo por apunte de venta.

1.6. Discoteca-Videoteca. Relaciones de Generalización y de grado 3.

Se desea diseñar una base de datos para una videoteca-discoteca que contenga información de videos (películas), discos (música), empleados y préstamos. Construir un modelo E/R teniendo en cuenta las siguientes restricciones:
  • ­ Un socio puede tener en préstamo varios vídeos y discos a la vez.
  • ­ Un vídeo o disco sólo p uede estar prestado a un socio.
  • ­ Un empleado puede prestar muchos discos y vídeos.
  • ­ Cuando se realiza un préstamo deben aparecer el socio, el vídeo o disco, la fecha y el empleado.
  • ­ En los discos debe aparecer información sobre su autor y en los vídeos su protagonista.
  • Añade los campos y la información que creas necesaria para que el diseño sea correcto.

1.7. Agencia matrimonial.

Se desea diseñar una base de datos para una agencia matrimonial que contenga información de hombres (con todos sus datos personales), mujeres (con todos sus datos personales), empleados (divididos en tres categorías: socios, directores y administrativos), citas realizadas (debe quedar constancia de la fecha, el hombre, la mujer y el director que la promovió) y matrimonios (fecha, hombre, mujer). Construir un modelo E/R teniendo en cuenta las siguientes restricciones:
  • ­ Un hombre puede tener citas con varias mujeres.
  • ­ Una mujer puede tener citas con varios hombres.
  • ­ Un hombre puede casarse con varias mujeres ya que puede enviudar o divorciarse.
  • ­ Una mujer puede casarse con varios hombres ya que puede enviudar o divorciarse.
  • ­ Sólo los directores pueden promover citas.
  • ­ Un socio tiene a su cargo varios directores y éstos a su vez varios administrativos.

2. Ejercicios para practicar

2.1. Seguros de automóvil

Construir un diagrama E/R para una compañía de seguros de automóvil que cuenta con un fichero de clientes con sus nombres y domicilios. Cada uno de los clientes posee un cierto número de vehículos. De cada automóvil se almacena la marca, el modelo, año de fabricación, color y número de matrícula. Se guarda también la fecha e importe de cada uno de los accidentes en los que se ha visto relacionado.

2.2. Relaciones familiares

Diseñar un diagrama E/R de una base de datos con información de personas y sus relaciones familiares (padre, hermano, abuelo, hijo, primo, nieto, casado_con).

2.3. ASI Consulting

Estamos modelando los datos de la compañía ASI Consulting. La base de datos de ASI Consulting debe mantener información sobre los empleados de la compañía, los departamentos y los proyectos. La descripción de la compañía es la siguiente:
  1. ASI Consulting está organizada en departamentos. Cada departamento tiene un nombre único, un número único y un empleado que lo administra. Se quiere saber la fecha en que el empleado administrador empezó a hacerse cargo del departamento. Un departamento puede tener varios locales.
  2. Cada departamento controla un cierto número de proyectos. Cada proyecto tiene un nombre y número únicos, y un local.
  3. Para cada empleado se desea tener su nombre, código de empleado, dirección, salario, sexo y año de nacimiento. Un empleado es asignado a un departamento, pero puede trabajar en varios proyectos, los que no son necesariamente controlados por el mismo departamento. Se quiere saber el número de horas semanales que un empleado trabaja en cada proyecto. Se quiere además saber cuál es el supervisor directo de cada empleado.
  4. Se desea conocer las personas dependientes de cada empleado para propósitos de seguros. De cada dependiente se desea conocer el nombre, sexo, fecha de nacimiento y relación con el empleado.

2.4. Carreteras

Diseño un esquema E/R que recoja la organización de una Base de Datos para contener la información sobre todas las carreteras del país, sabiendo que se deben cumplir las siguientes especificaciones:
  1. Las carreteras se encuentran divididas en categorías (locales, comarcales, nacionales, autovías, autopistas, etc…).
  2. Las carreteras se dividen en tramos. Un tramo pertenece siempre a una única carretera y no puede cambiar de carretera.
  3. Un tramo puede pasar por varios municipios, interesando conocer el kilómetro de la carretera en el que entra en el municipio y el kilómetro por el que sale.
  4. Existe una serie de áreas en las que se agrupan los tramos, cada uno de los cuales no puede pertenecer a más de un área.

2.5. Padrón

Supongamos el siguiente universo del discurso sobre municipios, viviendas y personas. Cada persona sólo puede habitar en una vivienda y estar empadronada en un municipio, pero puede ser propietaria de varias viviendas. Nos interesa también conocer las personas que dependen del Cabeza de Familia. Se indicarán los supuestos semánticos que se consideren oportunos para justificar todas las decisiones de diseño.

2.6. Amigos de la Fiesta

La asociación “Amigos de la Fiesta” desea recoger en una base de datos toda la información acerca de las corridas de toros que se celebran en España y de todos los datos relacionados con ellas.
  1. Se desea tener información acerca de cada corrida, con la feria en la que se celebra, el número de orden dentro de la feria y el año.
  2. En cada corrida actúan una serie de toreros (un mínimo de 1 y un máximo de 3) de los que se guardará su DNI, nombre, apodo y fecha en que tomó la alternativa (fecha en la que se convirtió en matador de toros). Además se desea saber quien fue el torero que le dio la alternativa (padrino) en su día (un torero puede dar la alternativa a cuantos toreros quiera).
  3. En cada corrida un torero obtiene una seria de premios (cuántas orejas, cuántos rabos y si salió por la puerta grande) con los que se crearán estadísticas.
  4. Cada torero tiene un apoderado del que es protegido. A su vez, un apoderado lo puede ser de varios toreros. De los apoderamos deseamos saber su DNI, nombre, dirección y teléfono.
  5. Una corrida se celebra en una plaza de toros de la que se desea saber su nombre (se supone único), categoría, localidad, dirección y aforo. En una misma plaza se celebran varias corridas.
  6. En cada corrida son estoqueados al menos 6 toros. Cada toro viene identificado por el código de la ganadería a la que pertenece, el año en que nació y el número de orden. Además se desea mantener información acerca de su nombre y color así como el orden en que fue toreado.
  7. Cada toro pertenece a una ganadería determinada. De cada ganadería se pretende saber su código, localidad y antigüedad.

2.7. Formación

El departamento de formación de una empresa desea construir una base de datos para planificar y gestionar la formación de sus empleados. La empresa organiza cursos internos de formación de los que se desea conocer el código de curso, el nombre, una descripción, el número de horas de duración y el coste del curso. Además deberemos tener en cuenta que:
  1. Un curso puede tener como prerrequisito haber realizado otro(s) previamente, y, a su vez la realización de un curso puede ser prerrequisito de otros. Un curso que es un prerrequisito de otro puede serlo de forma obligatoria o sólo recomendable.
  2. Un mismo curso tiene diferentes ediciones, es decir, se imparte en diferentes lugares, fechas y con diferentes horarios (intensivo, de mañana o de tarde). En una misma fecha de inicio sólo puede impartirse una edición de un curso. Los cursos se imparte por personal de la propia empresa.
  3. De los empleados se desea almacenar su código de empleado, nombre y apellidos, dirección, teléfono, NIF, fecha de nacimiento, nacionalidad, sexo, firma y salario, así como si está o no capacitado para impartir cursos.
  4. Un mismo empleado puede ser docente en una edición de un curso y alumno en otra edición, pero nunca puede ser ambas cosas a la vez (en una misma edición de curso o lo imparte o lo recibe).

2.8. Mundiales de fútbol

Realizar el esquema E/R para una base de datos en la que se desea almacenar la información sobre campeonatos mundiales de fútbol, teniendo en cuenta que:
  1. Un jugador pertenece a un único equipo y no hay dos jugadores con el mismo nombre.
  2. Un jugador puede actuar en varios puestos distintos, pero en un determinado partido sólo puede jugar en un puesto.
  3. En cada partido intervienen cuatro colegiados: un juez de línea para cada banda, un árbitro, y un suplente.
  4. Un colegiado puede realizar una función en un partido y otra distinta en otro partido.
  5. Cada partido involucra a dos equipos.
  6. Es obligatorio en todo momento que un jugador pertenezca a un equipo determinado y no podrá cambiar de equipo a lo largo del mundial.

2.9. ONGs

La coordinadora nacional de Organizaciones No Gubernamentales (ONG´s) desea mantener una base de datos de las asociaciones de este tipo que existen en nuestro país. 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. Se deben tener en cuenta las siguientes condiciones:
  1. De las asociaciones se desea almacenar su CIF, denominación, dirección y provincia, su tipo (ecologista, integración, desarrollo, …), así como si está declarada de utilidad pública por el Ministerio de Interior.
  2. Cada asociación está 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 cuata mensual por los meses del año).
  3. Los trabajadores de estas organizaciones pueden ser de dos tipos: asalariados y voluntarios.
  4. 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 les descuenta.
  5. 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.
  6. Cada trabajador se identifica por su DNI, tiene un nombre y fecha de ingreso.
  7. Un socio no puede ser trabajador de la asociación.
  8. Las asociaciones llevan a cabo proyectos a los que están asignados sus trabajadores. Un trabajador puede trabajar en diferentes proyectos de un mismo país. De cada proyecto se desea almacenar su número de identificación dentro de la asociación, en qué país se lleva a cabo y en qué zona de éste, así como el objetivo que persigue y el número de beneficiarios a los que afecta. Un proyecto se compone a su vez de subproyectos (que tienen entidad de proyectos).

3.1 Crea el diagrama E/R para almacenar los datos y sacar los tickets como este.
IMG_00056.jpg
Ticket.jpg

4.0 Indica el enunciado apartir de este diagrama de Entidad/Relación:

OrganizaciónPoliticaB.jpg

5. Crear un diagrama de E\R para almacenar los datos de un E\R


6. Crea el esquema Relacional para el siguiente problema. Crea la base de datos en Access e introduce datos de ejemplo.


Se desea almacenar información sobre las evaluaciones en un centro educativo. La base de datos debe almacenar los nombres, número de identificación y fecha de nacimiento de los alumnos. Todos los alumnos pertenecen a un grupo (1º ESO A, 1º ESO B, etc.), que a su vez pertenecen a un curso (1º ESO, 2º ESO, 1º BCH, etc.). Cada grupo tiene un alumno delegado. Cada curso tiene un número determinado de materias (asignaturas). De cada materia debemos almacenar su nombre, descripción y el número de horas semanales en el curso.

Las notas se ponen en función de lo que se llama Competencia Básica (con un nombre y una descripción). Existen 9 competencias básicas. Cada competencia tiene una importancia en la asignatura (tanto por ciento). Para cada alumno y asignatura deberán ponerse 9 notas, una por cada competencia. Así, la nota final de un alumno en la asignatura se calculará en función de la nota de cada competencia multiplicada por ese tanto por ciento.

El almacenamiento debe ser genérico, es decir, no es una opción crear una tabla con una columna para cada una de las notas de la competencia (e.d. nota1, nota2, …, nota9).

7. Crea el esquema Relacional para el siguiente problema. Crea la base de datos en Access e introduce datos de ejemplo.

Una comunidad autónoma desea guardar información sobre los alojamientos rurales que existen en dicha comunidad. Para ello decide crear una base de datos que recoja los siguientes puntos:
  • Un alojamiento rural se identifica con su nombre, tiene una dirección, un teléfono y una persona de contacto que pertenece al personal del alojamiento.
  • En cada alojamiento trabajan una serie de personas que se identifican por un código de personal. Se guarda también su nombre, DNI y dirección. Aunque en un alojamiento trabajen varias personas, una persona sólo puede trabajar en un alojamiento.
  • Los alojamientos se alquilan por habitaciones y se desea conocer cuántas habitaciones componen el alojamiento, de qué tipo (indiiduales, dobles, triples) es cada una de estas habitaciones, si poseen cuarto de baño y el precio.