Sistemas de Información Digitales II Curso 2004-2005 Ejercicios de Access
1 Tipos de dato Qué tipo de dato debería utilizarse para almacenar los siguientes conceptos?. Empléese el tipo más ajustado para optimizar el uso de memoria. La población de Bulnes. La cantidad de diskettes que te debe tu compañero. El nombre y los apellidos de un alumno. La población de Gijón. El peso medio de los alumnos de clase. El día de nacimiento de un empleado. La edad de una persona. El número de veces que aparece la letra e en una página de texto. El texto completo de la reclamación que un usuario hace ante la DGT por una multa que considera injusta. El resultado de la suma de los gastos del mes pasado. El tipo de interés que me da mi cuenta bancaria. El código (artificial) de un item de almacén. La hora a la que un empleado fichó para salir. La distancia del Sol a la tierra. 2 Habitantes y municipios Se necesita una base de datos para llevar el padrón de municipios del Principado de Asturias. De cada municipio se necesita conocer que viviendas hay, que personas viven en ellas y quien es su propietario. Del municipio es necesario saber su nombre, su extensión en km2 y algunos datos estadísticos. De cada persona es necesario conocer su nombre y apellidos, su nif, su profesión, sus ingresos y lugar de residencia. De cada vivienda debe controlarse su fecha de construcción, sus superficie en m2, su tipo (casa, piso, nave, etc) y su dirección. Diseñar el esquema relacional completo. Realizar las siguientes consultas: a. Obtener el nombre y el nif de las personas que viven en pisos. Llamarla CONSULTA 1. Página 2 de 10
b. Obtener el número de viviendas que hay en los municipios de mas de 200 km 2. Llamarla CONSULTA 2. c. Obtener los códigos de as viviendas donde viven mas de 2 personas. Llamarla CONSULTA 3. d. Obtener los nombres de los hombres que viven en piso y tienen entre 30 y 38 años. Llamarla CONSULTA 4. e. Calcular el número de habitantes de un municipio que se pide como parámetro. Llamarla CONSULTA 5. f. Obtener los ingresos medios por municipio. Llamarla CONSULTA 6. g. Obtener los nombres de las personas que viven solas. Llamarla CONSULTA 7. h. Crear un informe que muestre el número total de personas que viven en cada vivienda agrupado por municipio. 3 Repartidores Se dispone de una base de datos para gestionar los repartos de productos químicos por parte de una serie de repartidores a unos laboratorios. La empresa que hace el reparto tiene una serie de empleados repartidores. Cada repartidor realiza varios repartos al día y estos consisten en llevar determinados productos químicos a los laboratorios que los solicitan. Un reparto concreto es servido por un solo repartidor a un solo laboratorio y puede contener varios productos químicos. Acerca de los repartidores debe saber su nombre y apellidos, su dirección y su teléfono. Sobre cada laboratorio hay que controlar su nombre y su dirección de reparto De cada reparto es necesario saber por quien fue servido, a que laboratorio, que productos químicos contenía y que cantidad de cada uno de ellos. Se pide dibujar el esquema relacional. 4 Accidentes geográficos Se pretende crear una base de datos ejemplo sobre tipos de accidentes geográficos. La información digna de tener en consideración es la siguiente: Provincias: Nombre, número de habitantes y extensión. Es de interés conocer con que otras provincias limita cada provincia, así como a que región pertenece. Ciudades: Nombre, número de habitantes y extensión, también se quiere saber a que provincia pertenece cada ciudad. Regiones: Nombre y extensión. Se sabe que una región concreta sólo es de un país. Países: Nombre, renta per cápita y Capital. Un país sólo está en un continente. Página 3 de 10
Ríos: Nombre, caudal y longitud. Es de interés conocer que provincias son bañadas por cada río, en que montaña tiene su nacimiento, y si desemboca en otro río o en el mar. En este último caso se desea conocer el nombre y la extensión de dicho mar. Montañas: Nombre y altitud. Se precisa conocer la situación provincial de cada montaña, así como si forma parte de una determinada cordillera (sólo interesa el nombre de la cordillera). En base a la información anterior se pide representar el esquema conceptual usando el Modelo relacional. 5 Alojamientos rurales El Principado de Asturias desea guardar información sobre los alojamientos rurales que existen en dicha comunidad. Para ello decide crear una base de datos que recoja las siguientes consideraciones: Un alojamiento rural se identifica por un nombre ( Villa Aurora, Las Rosas, etc.), 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 requiere conocer el nombre completo, la dirección y el NIF. Aunque en un alojamiento trabajen varias personas, una persona solo puede trabajar en un alojamiento. Los alojamientos se alquilan por habitaciones y se desea conocer cuántas habitaciones componen el alojamiento, de qué tipo es cada una de estas habitaciones (individuales, dobles, triples), si poseen cuarto de baño y el precio. En algunos de estos alojamientos se realizan actividades multiaventura organizadas para huéspedes (senderismo, bicicleta de montaña, etc.). Estas actividades se identifican por un código. Es de interés saber el nombre de la actividad, la descripción y el nivel de dificultad de dicha actividad (1..10). Diseñar el esquema relacional completo (tablas, campos, restricciones de integridad, y relaciones) 6 Jardines Partiendo del esquema relacional mostrado a continuación redactar un enunciado que exprese toda la semántica asociada del gráfico. Página 4 de 10
7 Biblioteca Se necesita informatizar la biblioteca personal de un aficionado a los libros. A los efectos de este problema entenderemos: Libro como la obra que crea un autor. Miguel de Cervantes escribió El ingenioso Hidalgo Don Quijote de la Mancha. Edición como la versión que imprime una editorial del libro creado por un autor. Del Quijote ha habido muchas ediciones. Ejemplar como copia impresa de una edición que de un libro imprime una editorial. Tras conversaciones con nuestro bibliófilo obtenemos las siguientes conclusiones acerca de lo que el espera de nuestra Base de Datos: Un autor a lo largo de su carrera puede escribir muchos libros y hay ocasiones en las que un libro puede ser creado por varios autores en colaboración. De cada libro se pueden imprimir varias ediciones. Una edición es la impresión por una editorial del libro creado por el autor y tiene un ISBN. Puede que de una edición a otra del mismo libro cambie la editorial. Cada libro versará sobre una(s) materia(s), por simplificación solo trataremos una. Hay algunas ediciones de libros de las que nuestro bibliófilo tiene varios ejemplares, necesita identificar cada uno de ellos y saber en que estantería tiene cada una de las copias (cada estantería se identifica por un código que le da el bibliófilo). De cada libro es necesario contemplar título, materia sobre la que versa y observaciones adicionales que el bibliófilo desee añadir en formato libre. Las materias estarán normalizadas, es decir, definidas a parte y para cada una se deberá guardar su código y una descripción textual. Página 5 de 10
De los autores es necesario mantener su nombre y apellidos o pseudónimo, su nacionalidad y se les asignará un código identificativo arbitrario. Para las editoriales es necesario guardar su nombre comercial, su dirección postal si se conoce, y datos de contacto (teléfono, mail, etc). De cada edición de un libro se necesita saber de que libro, qué editorial, la fecha de primera impresión (no nos importan las reimpresiones) y su ISBN. Por cada ejemplar de una impresión debemos generar un código identificativo, su fecha de adquisición, en que estante está ubicado y a que edición pertenece. 1. Crear la estructura de base de datos que represente el problema enunciado: tablas, campos, relaciones, reglas de validación de campos, mensajes de error para las reglas de validación, etc. 2. Crear formularios para introducir y modificar datos de al menos: Autores Materias Editoriales Ejemplares de libros. 3. Crear consultas para: Listar titulo de libros de un autor leyendo el nombre (o parte) desde teclado. Listar titulo, editorial, códigos de ejemplar y ubicaciones de un libro cuyo ISBN se lee por teclado. Listar títulos, códigos de ejemplar y ubicaciones de libros impresos por una editorial cuyo nombre se introduce por teclado. Listar ejemplares y ubicaciones de libros escritos por un autor cuyo nombre se introduce por teclado. Listar todos los libros clasificados y ordenados alfabéticamente por materia. Listar titulo, autor, editorial e ISBN de los libros adquiridos entre dos fechas leídas por teclado. Listar libros y sus autores de los que hay más de un ejemplar en la biblioteca. Mostrar el número de ejemplares que se poseen de un libro cuyo título parcial se introduce por teclado. 4. Crear consultas de eliminación (manteniendo la integridad de los datos) para: Borrar un libro de la biblioteca cuyo título ISBN se lee desde teclado. Borrar un editorial leyendo su nombre completo desde teclado. 5. Informes: De todos los ejemplares de libros existentes en la biblioteca con su autor, título, fecha de primera impresión, código de ejemplar y su ubicación. De todos los libros agrupados por materias. Página 6 de 10
8 Taller mecánico Se necesita automatizar la gestión del taller mecánico ALCHARIN. Tras varias conversaciones con su propietario se llega a las siguientes conclusiones: Se necesita guardar los datos de los clientes que realizan reparaciones en el taller. De ellos se necesita, su NIF, nombre completo, dirección y teléfono. Con el fin de guardar un historial de las reparaciones de cada vehículo se necesita guardar de cada uno de ellos su matrícula, marca y modelo. Hay que tener en cuenta que un cliente puede tener varios vehículos pero no se contemplará el caso de que un vehículo sea de varios clientes. De cada vehículo se deben guardar sus reparaciones. Se entiende que una reparación es para un solo vehículo y es necesario saber la fecha en que se efectuó y una descripción del problema. Una reparación podrá ser efectuada por varios mecánicos. Obviamente un mecánico efectuará muchas reparaciones. Cada mecánico estará identificado por un código y se guardará su nombre completo, categoría, fecha de ingreso en el taller y el salario Para cada reparación realizada a un vehículo por un mecánico (pueden haber intervenido varios en la misma) debe almacenarse el número de horas que le ha llevado a cada mecánico que haya participado realizar dicha reparación. 1. Crear la base de datos en Access (tablas, campos, relaciones, etc). 2. Realizar las siguientes consultas: a. Se necesita de cada vehículo (matrícula, marca y modelo) el número total de reparaciones que se le han realizado y el nombre del propietario. Guárdala como CONSULTA_A. b. Se necesita saber el número de reparaciones que ha realizado cada mecánico (nombre) en un mes solicitado por teclado (se indicará el número del mes). Guárdala como CONSULTA_B. c. Se necesita saber el importe de la mano de obra de cada reparación. Por cada una se debe mostrar marca y modelo del vehículo, nombre del propietario, fecha de la reparación, descripción e importe. El importe será el resultado de multiplicar el número de horas de la reparación por el precio de una hora de trabajo. Asúmanse 18 hora. Guárdala como CONSULTA_C. d. Realizar una consulta que muestre todos aquellos vehículos en los que la duración total de la reparación superó las 5 horas. Guárdala como CONSULTA_D. e. Mostrar la duración total de cada una de las reparaciones realizadas en un mes (número de mes) y un año que se solicitan por teclado. Guárdala como CONSULTA_E. Página 7 de 10
f. El propietario ha decidido subir el sueldo a los mecánicos del taller según el IPC (2.6 %). Hágase una consulta que actualicé el salario de todos los mecánicos del taller. Guárdala como CONSULTA_F. 3. Se necesita un informe que muestre las reparaciones realizadas por cada mecánico así como el número de horas realizadas por cada mecánico en cada reparación. El informe debe estar agrupado por mecánico y después ordenado por fecha de reparación. Guárdala como CONSULTA_G. 9 Vuelta Ciclista La Federación Asturiana de Ciclismo (FAC) nos ha encargado informatizar la gestión de las vueltas ciclistas organizadas bajo su ámbito. Tras varias conversaciones con sus responsables se llega a las siguientes conclusiones: LA FAC organiza al cabo del año varias vueltas de carácter regional. De cada una de ellas es necesario saber: su nombre oficial (p.e. VI vuelta a los valles mineros), nombre del director de la vuelta, fecha de inicio y fecha de fin. Para cada vuelta se necesita mantener los datos de los ciclistas inscritos. De cada uno de ellos se recogerá su nombre y apellidos, fecha de nacimiento, equipo y dorsal. El dorsal es un número asignado por la organización a cada ciclista para cada vuelta (empezando en 1). Los ciclistas pertenecen a equipos, en la base de datos debemos guardar por cada equipo su nombre oficial y el del director. Cada vuelta tiene varias etapas. De cada una de ellas se necesita saber: fecha de recorrido, hora de salida, longitud en kilómetros, puntos de origen y destino, tipo de etapa (contrarreloj, montaña y rodadura). Finalmente se necesita guardar las llegadas de los ciclistas en cada etapa. Para cada ciclista y etapa se almacenará la hora de llegada y la posición. 1. Crear la base de datos en Access (tablas, campos, relaciones, etc). 2. Realizar las siguientes consultas: a. Se necesita obtener un listado de todas las vueltas de forma que para cada una de ellas se muestren todos sus datos y la longitud total en kilómetros (suma de las longitudes de sus etapas). Guárdala como CONSULTA_A. b. Obtén un listado de todas las vueltas en las que ha participado un equipo cuyo nombre de director se pida por teclado. El listado debe estar ordenado de forma inversa por fecha de inicio de la vuelta. Guárdala como CONSULTA_B. c. Nos piden también un listado de todas las etapas que se disputaron (o disputarán) en el mes de Junio y son de más de 100 Km. Guárdala como CONSULTA_C. d. Muestra todos los ciclistas por orden de llegada de todas la etapas de montaña. Guárdala como CONSULTA_D. Página 8 de 10
e. Modifica la tabla de llegadas para añadir un nuevo campo que guarde el tiempo invertido por el ciclista en la etapa. Después realiza una consulta de actualización para ese campo de forma guarde la diferencia entre la hora de llegada y la hora de salida de la etapa. Guárdala como CONSULTA_E. f. Realiza una consulta que muestre la clasificación de una etapa cuyo código será solicitado por teclado. Para ello muestra los nombres de los ciclistas y el tiempo invertido ordenándolos de forma ascendente. Guárdala como CONSULTA_F. 4. Realiza un informe que muestra todas las vueltas, para cada vuelta todos los ciclistas y para cada ciclista los tiempos invertidos en cada etapa. Guárdala como CONSULTA_G. 10 Gestión hotelera La sociedad HOTELASTUR, especializada en la gestión hotelera, desea automatizar su actividad. En la actualidad HOTELASTUR se encarga de la gestión centralizada de 8 hoteles de 80 habitaciones como máximo cada uno. Estos hoteles están distribuidos en 5 categorías (una, dos, tres, cuatro y cinco estrellas). Hay hasta varios tipos de habitación en toda la cadena hotelera: Sencilla, Doble, Doble King Size, Triple. Triple King Size, Suite y Salón de convenciones. Cada habitación tiene un precio fijado por el hotel según el tipo de esta. Cada hotel de forma independiente ofrece a sus huéspedes comidas, consumiciones y servicios. El precio de estos conceptos es propio de cada hotel. Se han de poder gestionar las reservas y llegadas al hotel. Un cliente puede hacer una reserva por teléfono o llegar directamente al hotel y coger una habitación libre. Las habitaciones reservadas por clientes quedarán libres al terminar el periodo de reserva o porqué se ha cancelado la reserva. De alguna manera el gerente del hotel tiene que poder saber si una habitación esta reservada o no, cuantas tiene libres, ocupadas y reservadas. (Si una habitación está libre puede ser ocupada o reservada. Si está reservada puede ser cancelada). Asimismo necesitaremos saber la fecha inicial y final de la reserva, así como el estado de la habitación que puede ser 1:reservada, 2:ocupada, 3:libre. Realizar el diseño de la base de datos creando tablas y relaciones. Realizar las siguientes consultas: a) Realizar una consulta que muestre las reservas hechas a nombre de un cliente cuyo DNI se pedirá por teclado. b) Realizar una consulta que muestre las ocupaciones hechas por un cliente cuyo DNI se pedirá por teclado. c) Realizar una consulta para reservar una habitación para un cliente cuyo DNI se pedirá por teclado junto con las fechas de reserva. Página 9 de 10
d) Realizar una consulta para anular una reserva cuyo código de reserva se pedirá por teclado. e) Realizar una consulta que muestre las habitaciones reservadas para una fecha que se indique como parámetro desde teclado. La consulta deberá mostrar el número de habitación junto con el nombre del hotel, la clase del hotel y la categoría de habitación. f) Realizar una consulta que muestre las habitaciones ocupadas para un hotel que se introduce desde teclado como parámetro. La consulta deberá mostrar el número de habitación, la categoría de habitación y el número de días que la habitación estará ocupada. g) Realizar una consulta que muestre los precios para las distintas categorías de habitaciones para una clase de hotel que se indique como parámetro desde teclado. Deberá mostrase, la categoría de la habitación, así como el precio de la habitación dependiendo del número de ocupantes. h) Realizar una consulta que muestre el número total de habitaciones ocupadas por hotel. i) Realizar un informe que muestre las habitaciones ocupadas agrupadas por hotel y dentro del hotel por la categoría de la habitación. Se mostrará el nombre del hotel y la clase del hotel y por cada hotel, el número de habitación y la categoría de la misma. j) Realizar un informe que muestre el código de la consumición y la descripción de las consumiciones cargadas a un determinado número de habitación que se indicará como parámetro. k) Realizar un informe que muestre el importe de la habitación, así como el listado de las consumiciones con su nombre y precio y el total de las mismas, de un número de habitación y hotel que se indiquen por teclado. Página 10 de 10