O banco de dados do usuário RESERVDB contém duas tabelas chamadas XMLFLIGHTTB e XMLPASSENGERTB. O diagrama a seguir mostra como os fluxos de mensagens XML_Reservation e XML_CancelReservation modificam os dados nas duas tabelas, mas os fluxos de mensagens XML_PassengerQuery e XML_FlightQuery consultam as informações apenas, não modificam os dados.
A tabela XMLFLIGHTTB contém 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? | Content |
---|---|---|---|
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 um passageiro reserva um assento em um vôo, o fluxo de mensagens XML_Reservation diminui o número de assentos disponíveis em cada classe, o que é 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 valor do campo RESERVATIONSEQNO para cada linha na tabela XMLFLIGHTTB é "0" quando a tabela está criada e preenchida. A primeira vez que você executa o fluxo de mensagens XML_Reservation usando a primeira mensagem de entrada, o valor no campo RESERVATIONSEQNO aumenta para "4" em cada linha da tabela para mostrar que quatro reservas foram feitas. O valor no campo RESERVATIONSEQNO aumenta para "5" quando você executa o fluxo de mensagens XML_Reservation usando a segunda mensagem de entrada. O campo RESERVATIONSEQNO é usado para criar números de reserva exclusivos. O valor no campo RESERVATIONSEQNO não diminui 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, o que é mostrado nos campos TOTALECONOMIC e TOTALFIRST, e diminui o número de reservas no vôo, o que é mostrado nos campos ECONOMICCLASS e FIRSTCLASS.
A tabela XMLPASSENGERTB contém informações atualizadas sobre os passageiros que fizeram reservas nos vôos relacionados 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? | Content |
---|---|---|---|
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 uma fileira à tabela XMLPASSENGERTB para cada passageiro que reservou um assento. A primeira mensagem de entrada XML_Reservation pede quatro reservas, sendo assim, quatro fileiras de dados são incluídas. A segunda mensagem de entrada pede uma reserva, sendo assim, uma fileira de dados é incluída, criando cinco fileiras de dados na tabela.
O campo RESERVATIONNO contém os números de reserva que foram gerados automaticamente para identificar com exclusividade as reservas. Sempre que você executa subsequentemente o fluxo de mensagens XML_Reservation, o valor no campo RESERVATIONSEQNO aumenta.
Quando as reservas são canceladas, o fluxo de mensagens XML_CancelReservation remove as reservas da tabela XMLPASSENGERTB. O cancelando de reservas não reconfigura o campo RESERVATIONSEQNO na tabela XMLFLIGHTTB, de modo que quando novas reservas são feitas, o número de reserva no campo RESERVATIONNO da tabela XMLPASSENGERTB é sempre exclusivo.