Acerca de la base de datos RESERVDB

La base de datos de usuario RESERVDB contiene dos tablas denominadas XMLFLIGHTTB y XMLPASSENGERTB. La figura siguiente muestra cómo los flujos de mensajes XML_Reservation y XML_CancelReservation modifican los datos en ambas tablas, mientras que los flujos de mensajes XML_PassengerQuery y XML_FlightQuery sólo consultan la información y no modifican los datos.

Diagrama que resume las interacciones entre los flujos de mensajes y la base de datos de usuario.

La tabla XMLFLIGHTTB

La tabla XMLFLIGHTTB contiene la información actual sobre los asientos disponibles en los vuelos. Cuando se crea, la tabla XMLFLIGHTTB se llena con datos sobre los vuelos. Los flujos de mensajes XML_Reservation y XML_CancelReservation modifican los datos en la tabla.

La tabla siguiente muestra cierta información sobre los campos en XMLFLIGHTTB.

Nombre del campo Tipo de datos ¿Es un nulo? Contenido
FLIGHTDATE CHAR No La fecha del vuelo.
FLIGHTNO CHAR No El número del vuelo.
ECONOMICCLASS INTEGER No El número de asientos reservados en la clase turista.
FIRSTCLASS INTEGER No El número de asientos reservados en primera clase.
TOTALECONOMIC INTEGER No El número de asientos disponibles en la clase turista.
TOTALFIRST INTEGER No El número de asientos disponibles en primera clase.
ECONOMICPRICE INTEGER No El precio de los asientos en clase turista.
FIRSTPRICE INTEGER No El precio de los asientos en primera clase.
STARTPOINT CHAR No El origen del vuelo.
ENDPOINT CHAR No El destino del vuelo.
RESERVATIONSEQNO INTEGER No El número de reservas hasta ese momento. El flujo de mensajes XML_Reservation utiliza este número para generar números de reserva exclusivos para los pasajeros.

Cuando un pasajero reserva un asiento en un vuelo, el flujo de mensajes XML_Reservation reduce el número de asientos disponibles en cada clase, que se muestra en los campos TOTALECONOMIC y TOTALFIRST de la tabla XMLFLIGHTTB. El flujo de mensajes XML_Reservation aumenta el número de asientos reservados en los campos ECONOMICCLASS y FIRSTCLASS.

El valor de RESERVATIONSEQNO para cada fila de la tabla XMLFLIGHTTB es "0" cuando se crea la tabla y se rellena con datos. La primera vez que ejecuta el flujo de mensajes XML_Reservation utilizando el primer mensaje de entrada, RESERVATIONSEQNO aumenta a "4" en cada fila de la tabla para mostrar que se han efectuado cuatro reservas. RESERVATIONSEQNO aumenta a "5" cuando ejecuta el flujo de mensajes XML_Reservation utilizando el segundo mensaje de entrada. RESERVATIONSEQNO se utiliza para crear los números de reserva exclusivos. El número de los campos RESERVATIONSEQNO no disminuye cuando se cancelan reservas.

Al cancelar reservas, el flujo de mensajes XML_CancelReservation aumenta el número de asientos disponibles, que se muestra en los campos TOTALECONOMIC y TOTALFIRST, y reduce el número de reservas en el vuelo, que se muestra en los campos ECONOMICCLASS y FIRSTCLASS.

La tabla XMLPASSENGERTB

La tabla XMLPASSENGERTB contiene la información actual sobre los pasajeros que han reservado asientos en los vuelos listados en XMLFLIGHTTB. Cuando se crea, la tabla XMLPASSENGERTB no contiene datos. Los flujos de mensajes XML_Reservation y XML_CancelReservation añaden y eliminan datos de la tabla.

La tabla siguiente muestra cierta información sobre los campos en XMLPASSENGERTB.

Nombre del campo Tipo de datos ¿Es un nulo? Contenido
LASTNAME CHAR No El apellido del pasajero
FIRSTNAME CHAR No El nombre del pasajero
FLIGHTNO CHAR No El número del vuelo.
FLIGHTDATE CHAR No La fecha del vuelo.
CLASSTYPE CHAR No La clase del asiento que se ha reservado.
RESERVATIONNO VARCHAR No El número de reserva exclusivo asignado por el flujo de mensajes XML_Reservation.

Cuando un pasajero reserva un asiento en un vuelo, el flujo de mensajes XML_Reservation añade a la tabla XMLPASSENGERTB una fila para cada pasajero que ha reservado un asiento. El primer mensaje de entrada de XML_Reservation solicita cuatro reservas, por lo que se añaden cuatro filas de datos. El segundo mensaje de entrada solicita una reserva, por lo que se añade una fila de datos, haciendo un total de cinco filas de datos en la tabla.

La columna RESERVATIONNO contiene los números de reserva que se han generado automáticamente para identificar las reservas de forma exclusiva. Cada vez que, posteriormente, ejecuta el flujo de mensajes XML_Reservation, aumenta el valor de RESERVATIONSEQNO.

Cuando se cancelan reservas, el flujo de mensajes XML_CancelReservation elimina las reservas de la tabla XMLPASSENGERTB. Al cancelar reservas, no se restablece el campo RESERVATIONSEQNO de la tabla XMLFLIGHTTB, de forma que cuando se realizan nuevas reservas, el número de reserva del campo RESERVATIONNO de la tabla XMLPASSENGERTB siempre es exclusivo.

Icono de la página principal   Volver al ejemplo Acerca de la Reserva de vuelos