Está en la página 1de 4

Universidad Dominicana O&M

Base de Datos
Prof. Junior A. Mendez, MCP, MCSA, LIC



Se tiene el siguiente esquema de base de datos para el manejo de informacin
de un Sistema de Transportes:

TERMINALES_TRANSPORTE (cod_terminal, nombre, ciudad, estado)
VIAJE(nmero, transportadora, das)
TARIFA(num_viaje, cod_tarifa, monto, restricciones)
TRAYECTO_VIAJE(num_viaje, num_trayecto, cod_terminal_sale,
hora_salida_programada, cod_terminal_llega, hora_llegada_programada)
VIAJES_REALIZADO(num_viaje, num_trayecto,
fecha, num_asientos_disponibles, id_transporte, cod_terminal_sale, hora_salid
a, cod_terminal_llega,hora_llegada)
VIAJES_AUTORIZADO(tipo_transporte, cod_terminal)
TRANSPORTE(id_transporte, total_de_asientos, tipo_transporte)
RESERVA_ASIENTO(num_viaje, num_trayecto,
fecha, num_asiento, nombre_cliente, tel_cliente)

El anterior esquema describe una base de datos con informacin sobre viajes
de lneas areas QUISQUEYANA DE AVIACION. Cada VIAJE se identifica
con un nmero de viaje, y consta de uno o ms TRAYECTO_VIAJE
con num_trayecto 1, 2, 3, etc. Cada trayecto tiene horas y terminales de salida
y de llegada programados, y tiene muchos TRAYECTO_VIAJE, uno por cada
fecha en que tiene lugar el viaje. Se mantienen TARIFAS para cada
viaje. Para cada movimiento de trayecto, se mantiene
RESERVA_ASIENTOS, el transporte empleado en el trayecto y las horas de
salida y llegada y los terminales especficos. Un TRANSPORTE se identifica
con id_transporte y es de un cierto tipo_transporte. VIAJES AUTORIZADOS
relaciona los tipo_transporte con los terminales en los que puede
aterrizar. Cada TERMINAL se identifica con un cod_terminal.


Especifique las siguientes sentencias utilizando SELECT, INSERT, DELETE,
UPDATE, CREATE, DROP y ALTER.
Nota: La repuesta a cada pregunta es la sentencia resultante solamente.
1. Crear cada una de las tablas, utilizar el mejor criterio para el tipo de
datos y su longitud.
2. Insertar datos utilizando INSERT, este es un criterio particular de cada
estudiante.
3. Prepare una lista con los nmeros de viaje y los das de todos los viajes
o trayectos de viaje que salen del terminal codigo CA001 y llegan al
terminal cdigo BO001.
4. Obtenga una lista con los nmeros de viaje, cdigos de terminal de
salida, horas de salida programadas, cdigos de terminal de llegada,
horas de llegada programadas y das de todos los viajes o trayectos de
viajes que salgan de algn terminal de la ciudad de Santo Domingo y
lleguen a algn terminal de la ciudad de Miami.
5. Liste las diferentes tarifas que se aplicaron a los viajes que se realizaron
entre los terminales de New York y Santo Domingo, en el ao 2005.
6. Liste los terminales que tienen el mayor trfico en un da (haga el
ejemplo con cualquier fecha).
7. Muestre los viajes con los correspondientes transportes, que tuvieron
ms de 50 pasajero con reservas.
8. Realizar insercin de datos en cada una de las tablas.
9. Modificar los datos de la fecha de reservacin al 15/08/05, al cliente
JOSE PEREZ.
10. Modificar al estructura en la tabla de Viajes_realizado,
a. Modificar el campo fecha por fecha_viaje.
b. Agregar un campo llamado gmt_hora
c. Borrar el campo num_trayecto
11. Borrar la tabla llamada TRANSPORTE
DESARROLLO:
1: CREATE TABLE Customer
(Ciudad_salida char(25),
Terminal_Llegada char(25),
Hora char(10),
Fecha datetime);
3:SELECT num_viaje, num_trayecto,fecha
FROM viajes_realizados
WHERE cod_terminal_sale = 'CA001'
AND cod_terminal_llega = 'BO001';
4: SELECT tv.*, dias
FROM trayecto_viaje tv, terminales_transporte tt, viajes
WHERE (ciudad = 'Santo Domingo' AND cod_terminal_sale = tt.cod_terminal)
AND (ciudad = 'Florida' AND cod_terminal_llega = tt.cod_terminal)
AND (numero = num_viaje);
5: SELECT distinct cod_tarifa, monto
FROM viajes_realizados vr, tarifas ta, terminales_transporte
WHERE (ciudad = 'Santo Domingo' AND cod_terminal_sale = cod_terminal)
AND (ciudad = 'Bronx, New York' AND cod_terminal_llega = cod_terminal)
AND fecha between '01/01/05' and '31/12/05'
AND ta.num_viaje = vr.num_viaje;
6: CREATE TABLE tmp (term varchar2(5), total number(10));
INSERT INTO tmp (term, total)
SELECT cod_terminal, count(*)
FROM terminales_transporte, viajes_realizados
WHERE fecha = '27/02/02'
AND cod_terminal_sale = cod_terminal
OR cod_terminal_llega = cod_terminal
GROUP BY cod_terminal;
SELECT term, MAX(total)
FROM tmp
GROUP BY term;

7: SELECT num_viaje, id_transporte
FROM viajes_realizados
WHERE num_viaje IN (SELECT num_viaje
FROM reserva_asientos
GROUP BY num_viaje
HAVING count(*) > 50);

También podría gustarte