Sobre o banco de dados RESERVDB

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.

Um diagrama resumindo as interações entre os fluxos de mensagens e o banco de dados do usuário.

A Tabela XMLFLIGHTTB

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

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.

Voltar para a amostra Sobre as Reservas Aéreas