O banco de dados do usuário RESERVDB contém duas tabelas chamadas XMLFLIGHTTB e XMLPASSENGERTB. A figura a seguir mostra como os fluxos de mensagens XML_Reservation e XML_CancelReservation modificam os dados nas duas tabelas, enquanto que os fluxos de mensagens XML_PassengerQuery e XML_FlightQuery somente consultam as informações e não modificam os dados.
A finalidade da tabela XMLFLIGHTTB é conter as informações atuais sobre os assentos disponíveis nos vôos. Quando é criada, a tabela XMLFLIGHTTB é ocupada com dados sobre os vôos. Os fluxos de mensagens XML_Reservation e XML_CancelReservation modificam os dados da tabela.
A tabela a seguir mostra algumas informações sobre os campos de XMLFLIGHTTB.
Nome do Campo | Tipo de dados | Nulo? | Conteúdo |
---|---|---|---|
FLIGHTDATE | CHAR | Não | A data do vôo. |
FLIGHTNO | CHAR | Não | O número do vôo. |
ECONOMICCLASS | INTEGER | Não | O número de assentos reservados na Classe Econômica. |
FIRSTCLASS | INTEGER | Não | O número de assentos reservados na Primeira Classe. |
TOTALECONOMIC | INTEGER | Não | O número de assentos disponíveis na Classe Econômica. |
TOTALFIRST | INTEGER | Não | O número de assentos disponíveis na Primeira classe. |
ECONOMICPRICE | INTEGER | Não | O preço dos assentos na Classe Econômica. |
FIRSTPRICE | INTEGER | Não | O preço dos assentos na Primeira Classe. |
STARTPOINT | CHAR | Não | A origem do vôo. |
ENDPOINT | CHAR | Não | O destino do vôo. |
RESERVATIONSEQNO | INTEGER | Não | O número de reservas feitas até o momento. O fluxo de mensagens XML_Reservation utiliza esse número para gerar os números de reserva exclusivos para os passageiros. |
Quando o passageiro reserva um assento em um vôo, o fluxo de mensagens XML_Reservation reduz o número de assentos disponíveis em cada classe, mostrado nos campos TOTALECONOMIC e TOTALFIRST da tabela XMLFLIGHTTB. O fluxo de mensagens XML_Reservation aumenta o número de assentos reservados nos campos ECONOMICCLASS e FIRSTCLASS.
O RESERVATIONSEQNO de cada linha da tabela XMLFLIGHTTB é igual a "0" quando a tabela é criada e ocupada. Na primeira vez em que o fluxo de mensagens XML_Reservation é executado utilizando a primeira mensagem de entrada, o RESERVATIONSEQNO aumenta para "4" em cada linha da tabela para mostrar que quatro reservas foram feitas. O RESERVATIONSEQNO aumenta para "5" quando você executa o fluxo de mensagens XML_Reservation utilizando a segunda mensagem de entrada. O RESERVATIONSEQNO é utilizado para criar os números de reservas exclusivos. O número dos campos RESERVATIONSEQNO não é reduzido quando as reservas são canceladas.
Quando as reservas são canceladas, o fluxo de mensagens XML_CancelReservation aumenta o número de assentos disponíveis, que é mostrado nos campos TOTALECONOMIC e TOTALFIRST e reduz o número de reservas do vôo, que é mostrado nos campos ECONOMICCLASS e FIRSTCLASS.
A finalidade da tabela XMLPASSENGERTB é conter as informações atuais sobre os passageiros que têm assentos reservados nos vôos listados em XMLFLIGHTTB. Quando é criada, a tabela XMLPASSENGERTB não contém nenhum dado. Os fluxos de mensagens XML_Reservation e XML_CancelReservation incluem e removem dados da tabela.
A tabela a seguir mostra algumas informações sobre os campos de XMLPASSENGERTB.
Nome do Campo | Tipo de dados | Nulo? | Conteúdo |
---|---|---|---|
LASTNAME | CHAR | Não | O sobrenome do passageiro. |
FIRSTNAME | CHAR | Não | O nome do passageiro. |
FLIGHTNO | CHAR | Não | O número do vôo. |
FLIGHTDATE | CHAR | Não | A data do vôo. |
CLASSTYPE | CHAR | Não | A classe do assento que foi reservado. |
RESERVATIONNO | VARCHAR | Não | O número de reserva exclusivo alocado pelo fluxo de mensagens XML_Reservation. |
Quando um passageiro reserva um assento em um vôo, o fluxo de mensagens XML_Reservation inclui à tabela XMLPASSENGERTB uma linha para cada passageiro que reservou um assento. A primeira mensagem de entrada XML_Reservation solicita quatro reservas, portanto, quatro linhas de dados são incluídas. A segunda mensagem de entrada solicita uma reserva, portanto, uma linha de dados é incluída, criando um total de cinco linhas de dados na tabela.
A coluna RESERVATIONNO contém os números de reservas que foram gerados automaticamente para identificar exclusivamente as reservas. Toda vez que subseqüentemente você executar o fluxo de mensagens XML_Reservation, o RESERVATIONSEQNO aumentará.
Quando as reservas são canceladas, o fluxo de mensagens XML_CancelReservation remove as reservas da tabela XMLPASSENGERTB. O cancelamento de reservas não redefine o campo RESERVATIONSEQNO da tabela XMLFLIGHTTB, portanto, quando novas reservas forem feitas, o número da reserva no campo RESERVATIONNO da tabela XMLPASSENGERTB será sempre exclusivo.