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.
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 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.