Вы находитесь на странице: 1из 4

3 Ingeniero Tcnico en Informtica de Sistemas

Asignatura: Fundamentos de Bases de Datos

Facultad de Informtica
Curso: 2007/2008

PRCTICA B1. Consultas en SQL


Objetivo
Construir, depurar y ejecutar sentencias SQL de obtencin de informacin almacenada
en una base de datos.
Contenidos
Alquiler de coches
Se ha diseado una base de datos para almacenar y gestionar la informacin empleada por una
empresa dedicada al alquiler de automviles, teniendo en cuenta los siguientes aspectos:
La empresa dispone de un conjunto de coches para su alquiler. Se necesita conocer la matrcula,
marca y modelo, el color y el precio de alquiler de cada coche. Adems cada coche est
asignado a un determinado garaje, que no puede cambiar. De cada garaje interesa conocer su
cdigo, denominacin y direccin.
Los datos que interesa recoger de cada cliente son el DNI, nombre, direccin, ciudad y nmero
de telfono; adems, los clientes se diferencian por un cdigo interno de la empresa.
Si un cliente desea solicitar el alquiler de algn coche, se pone en contacto con una de las
agencias de la empresa de alquiler y realiza una reserva. De cada agencia interesa conocer su
cdigo y nombre.
Un mismo cliente puede haber realizado varias reservas a lo largo del tiempo, y por supuesto
algunas de esas reservas pueden tener sus fechas solapadas. Como hemos indicado, en cada
reserva participa una agencia, que no tiene que ser la misma para las distintas reservas de un
mismo cliente.
Una misma reserva puede incluir uno o varios coches. De cada reserva interesa registrar la fecha
de inicio (cundo deben entregarse los vehculos al cliente), la fecha de finalizacin (la fecha
prevista de devolucin por parte del cliente), el coste () total de la reserva y un indicador de si los
coches (todos los alquilados mediante la misma reserva) han sido devueltos, en cuyo caso la
reserva se considera cerrada. Adems, para cada vehculo interesa recoger los litros de
combustible que contiene en el momento de su entrega al cliente. El coste final de alquiler de
cada coche se obtiene multiplicando su precio de alquiler por los das que el cliente desea
reservarlo. El coste total de una reserva se obtiene sumando los costes finales de alquiler de los
coches que incluye dicha reserva.

Un esquema de base de datos relacional correspondiente al anterior enunciado contiene las tablas
que se indican en la pgina siguiente.
Los atributos que aparecen subrayados son las claves primarias, y los que aparecen en cursiva son
claves externas. Para cada clave externa se indica a qu relacin y atributos concretos hace
referencia.
El esquema de la base de datos est creado en la base de datos Oracle de prcticas, ha sido cargado
con datos adecuados, y est accesible desde las cuentas de usuario de los grupos de prcticas de
esta asignatura.

3 Ingeniero Tcnico en Informtica de Sistemas. Fundamentos de Bases de datos. Prctica B1. Consultas en SQL - 1/4

Esquema ALQUILER DE COCHES, en el modelo relacional de datos


COCHE ( matricula, marca, modelo, color, garaje, precio_alquiler )
Clave externa:

garaje

GARAJE(codigo)

GARAJE ( codigo, nombre, direccion )


CLIENTE ( dni, codigo, nombre, direccion, ciudad, telefono )
AGENCIA ( codigo, nombre )
RESERVA ( numero, fecha_inicio, fecha_fin, cliente, agencia, coste_total, cerrada )
Claves externas:

cliente
CLIENTE(codigo)
agencia AGENCIA(codigo)

LISTA_RESERVA ( reserva, coche, litros_inicio, coste_coche )


Claves externas:

reserva
coche

RESERVA(numero)
COCHE(matricula)

Diagrama Referencial del esquema ALQUILER DE COCHES


La siguiente representacin grfica del esquema relacional de base de datos ser de ayuda durante la
resolucin de los ejercicios propuestos. Cada flecha indica una referencia de clave externa, y est dirigida
hacia la relacin referenciada.
AGENCIA
GARAJE

COCHE

RESERVA

CLIENTE

LISTA_RESERVA

En primer lugar, se aconseja ejecutar el comando DESC de SQL*Plus sobre cada tabla del esquema, para
observar las caractersticas de las columnas que la componen. Despus, es conveniente ejecutar la sentencia
SELECT * FROM... sobre cada una de las tablas, a fin de visualizar los datos almacenados en las mismas.

Consultas de entrenamiento (no hay que entregar estos ejercicios)


Antes de intentar resolver los ejercicios cuyas sentencias se deben entregar en el informe de esta prctica, se
recomienda resolver las siguientes consultas, cuya dificultad es baja y media. Ello resultar til para
comprender mejor el esquema de bases de datos Alquiler de Coches y, sobre todo, para adquirir destreza con
SQL y SQL*Plus de Oracle.
1.

Reservas (numero) realizadas por los clientes de Murcia.

2.

Resumen de las reservas (numero, fecha_inicio, fecha_fin, coste_total) pendientes de devolucin, ordenado
por fecha de finalizacin.

3.

Agencias (codigo, nombre) que participan en reservas an no devueltas.

4.

Nmero de reservas en las que ha participado cada coche (coche, cuantas_reservas).

5.

Clientes (codigo, nombre) que hayan realizado alguna reserva mediante la agencia con cdigo 2 y que
hayan realizado en total ms de 3 reservas.

6.

Para cada cliente, obtener el nmero de reservas realizadas y el precio medio de todas ellas (cliente,
cuantas_reservas, precio_medio).

7.

Agencias (codigo, nombre) que no participan en ninguna reserva con fecha de inicio posterior al 15 de
enero de 2004.

8.

Coches (matrcula, marca, modelo) reservados ms de 3 veces.

9.

Matrcula del vehculo (coche) que ms veces ha sido reservado.

10. Coches (matrcula, marca, modelo) que nunca han sido reservados.

3 Ingeniero Tcnico en Informtica de Sistemas. Fundamentos de Bases de datos. Prctica B1. Consultas en SQL - 2/4

Consultas que se debe entregar


Cada ejercicio ha de resolverse mediante una nica sentencia SELECT escrita en SQL de Oracle, la
cual, por supuesto, puede incluir varias SELECT anidadas o ser el resultado de la unin, interseccin,
etc. de diversas SELECT. En cada ejercicio se indica qu columnas deben aparecer en el resultado,
incluyendo nombres nuevos para columnas cuyo valor se calcula, por ejemplo, con una funcin.
Es necesario utilizar SQL*Plus para escribir las sentencias, depurarlas, ejecutarlas y comprobar su
resultado.
Para acortar y unificar la escritura de los SELECT, los pseudnimos o alias que se usarn en la
clusula FROM sern los siguientes:
GARAJE G, COCHE C, CLIENTE T, AGENCIA A, RESERVA R, LISTA_RESERVA L

1. Reservas (numero, fecha_inicio, fecha_fin, coche, marca, modelo) de coches del garaje con cdigo
G1 realizadas a travs de la agencia con el cdigo 4, ordenado por nmero de reserva.
2. Primera reserva que se inici y perodo de duracin (reserva, fecha_inicio, cuantos_dias).
3. Garajes (cdigo, nombre) de los que nunca se ha reservado ningn coche.
4. Clientes (dni, nombre) que hayan reservado algn coche de la marca Volkswagen ms de 2
veces. Se debe considerar las reservas individuales de los coches, es decir, si una misma reserva
consiste en el alquiler de varios coches de esta marca, debe contabilizarse cada uno de ellos.
5. Coche que ms veces ha sido reservado, indicando cuntas veces (matricula, marca, modelo,
cuantas_reservas).
6. Coche que ms veces ha sido reservado por el mismo cliente, indicando cuntas veces ha sido
reservado (coche, cliente, cuantas_reservas).
7. ltima reserva realizada por cada cliente (codigo, numero, fecha_inicio). Tambin deben aparecer
los clientes que no tienen ninguna reserva, mostrando NULL en las columnas numero y
fecha_inicio. El listado ha de estar ordenado por cdigo de cliente.
8. Para cada cliente que ha hecho menos de 3 reservas (cliente), mostrar la suma total del coste de
las reservas realizadas por dicho cliente (suma_coste). Se debe considerar las reservas globales,
es decir, si una reserva consiste en el alquiler de varios coches, slo se contabiliza una vez.
9. Reservas (numero) que slo incluyen un coche (coche), es decir, con un nico coche en la lista
de reservas, y mediante qu agencia se ha contratado (agencia), ordenadas por n de reserva.
10. Clientes que slo han hecho reservas a travs de una nica agencia (cliente, agencia), por orden
de cdigo de cliente.
11. Clientes (dni, nombre) que han hecho reservas por medio de todas las agencias.
12. Para cada coche (matricula), indicar cuntas veces se ha reservado (cuantas_reservas) y cul es la
fecha de inicio de la reserva ms reciente (fecha_inicio). En el resultado tambin deben aparecer
los coches que no han sido reservados ninguna vez, mostrando en la columna cuantas_reservas
un 0, y un NULL en la fecha_inicio. El resultado debe estar ordenado por matrcula.
13. Agencias (codigo, nombre) que participan en ms de 3 reservas cuya duracin es de una semana
o ms.
14. Nmero y coste de la reserva ms cara realizada para cada marca y modelo de coche (reserva,
marca, modelo, coste_coche). Se debe considerar las reservas individuales de los coches.
15. Obtener el coche que ha sido reservado mediante la agencia 1 con la mayor cantidad de litros
de combustible al inicio de la reserva, mostrando adems la matrcula, marca y modelo del
vehculo, la cantidad de litros de combustible de inicio y el nombre del garaje al que est
asignado el coche (matricula, marca, modelo, litros_inicio, nombre).

3 Ingeniero Tcnico en Informtica de Sistemas. Fundamentos de Bases de datos. Prctica B1. Consultas en SQL - 3/4

Fecha de entrega
Lunes, 26 de Noviembre de 2007.

Documentacin que se debe entregar


La entrega se realizar mediante SUMA, antes de la fecha lmite indicada.
En el rea privada (Mis Contenidos) de la asignatura, todos los miembros de cada grupo crearn
una carpeta denominada practicas. Dentro de esta carpeta, crearn una subcarpeta que se
denominar b1-consultas. En esta carpeta (insistimos: cada miembro de cada grupo) depositar el
informe de realizacin de la prctica, junto con el conjunto de guiones (scripts) SQL. El formato de
estos ficheros ser el siguiente:
- Informe de realizacin de la prctica llamado fbdsXXX-b1 (.doc o .rtf), cuyas pginas han de
estar numeradas y que debe incluir...
 Portada, que muestre estos datos:
- asignatura, curso acadmico (2007/08) y convocatoria (junio, septiembre, febrero),
- identificador (B1) y nombre de la prctica (Consultas en SQL),
- nombre del grupo de prcticas (fbdsXXX, sustituyendo XXX por el nmero de grupo asignado),
- nombre y apellidos de cada componente del grupo,
- direccin de correo electrnico de cada integrante del grupo de prcticas.
 Para cada uno de los 15 ejercicios deber aparecer lo siguiente:
- nmero de ejercicio y enunciado del ejercicio.
- comentarios y aclaraciones que se consideren necesarios.
- Comandos SQL*Plus necesarios (si es el caso) para dar formato al resultado de la consulta.
- texto de la consulta (SELECT) con las sangras adecuadas y fcilmente legible.
- filas devueltas, formateadas de manera que resulten legibles.
- nmero de filas devueltas por la consulta.
Se pueden presentar varias soluciones alternativas de un mismo ejercicio. En ese caso, para cada una
de ellas se indicar el texto de la consulta (SELECT), las filas del resultado y el n de filas devueltas.
Puede indicarse la alternativa que se considera ms adecuada.

- Guiones SQL (scripts). Ha de crearse un guin (fichero de texto plano) por cada ejercicio,
llamado b1-nn.sql (nn es el n de ejercicio), que contendr
- nmero de ejercicio.
- comandos de SQL*Plus necesarios para dar formato al resultado de la consulta.
- texto de la consulta (SELECT) con las sangras adecuadas y fcilmente legible.
- NO DEBE APARECER el resultado de la ejecucin de la consulta.
Es posible ayudarse del comando SPOOL de SQL*Plus para la elaboracin del informe as como
del contenido de los guiones (scripts) SQL.

Criterios de evaluacin
obligatorio entregar va SUMA el informe de la prctica y todos los guiones (scripts SQL). No
se corregir la prctica si no se ha presentado la documentacin completa (por ejemplo, si slo se
entregan algunos ejercicios y otros se dejan en blanco, o si se entregan slo algunos scripts).
 La lectura del informe ha de ser suficiente para la comprensin total del trabajo realizado en la
prctica (sin necesidad de recurrir a los guiones).
 No es suficiente con que los SELECT funcionen, esto es, que devuelvan las filas correctas, sino que
se valorar el estilo en la resolucin de cada consulta, las explicaciones dadas y la organizacin
de la documentacin explicativa (informe) de la prctica.
 Importante: es obligatorio que los resultados que se presenten en el informe correspondan a la
ejecucin de las consultas sobre el esquema ya existente en la base de datos de prcticas de la
Facultad (y que es comn a todos los grupos de prcticas).
 Es

3 Ingeniero Tcnico en Informtica de Sistemas. Fundamentos de Bases de datos. Prctica B1. Consultas en SQL - 4/4

Вам также может понравиться