Sobre o banco de dados RESERVDB

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.

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

A Tabela XMLFLIGHTTB

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 Tabela XMLPASSENGERTB

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.

Ícone Página Principal   Voltar para sobre a Amostra Reservas Aéreas