A seguir, são apresentadas 8 tabelas de um banco de dados e três consultas SQL.
Tabela : aeroportos
|
codigo |
nome | telefone |
cidade |
| 1 | Brasília | 2222 | 1 |
| 2 | Guararapes | 3333 | 2 |
| 3 | Galeão | 4444 | 5 |
| 4 | JFK | 5555 | 6 |
| 5 | NYC | 6666 | 6 |
| 6 | San Francisco | 7777 | 3 |
| 7 | Los Angeles | 8888 | 4 |
Tabela: agentes
|
codigo |
nome | telefone |
cidade |
| 1 | Sol Turismo | 1234 | 1 |
| 2 | Mar Turismo | 4567 | 1 |
| 3 | Praia Tur | 7890 | 2 |
| 4 | Ferias Turismo | 8901 | 5 |
| 5 | Enjoy | 9012 | 3 |
| 6 | Travel | 2345 | 3 |
Tabela: cidades
|
codigo |
nome |
pais |
| 1 | Brasilia |
Brasil |
| 2 | Recife |
Brasil |
| 3 | San Francisco |
EUA |
| 4 | Los Angeles |
EUA |
| 5 | Rio de Janeiro |
Brasil |
| 6 | New York |
EUA |
| 7 | Porto Alegre |
Brasil |
Tabela: clientes
|
codigo |
nome | telefone |
cidade |
| 1 | Roberto | 1234 | 1 |
| 2 | Jose | 2345 | 1 |
| 3 | Maria | 3456 | 1 |
| 4 | Felipe | 3456 | 1 |
| 5 | Claudia | 4567 | 2 |
| 6 | Margarida | 5678 | 2 |
| 7 | Marta | 6789 | 2 |
| 8 | John | 7890 | 3 |
Tabela: companhias
|
codigo |
nome | telefone |
cidade |
| 1 | Varig | 1212 | 7 |
| 2 | GOL | 2323 | 1 |
| 3 | American | 3434 | 3 |
| 4 | Delta | 4545 | 3 |
Tabela:
reservas_viagens
|
codigo |
cliente |
agente |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 3 | 1 |
| 4 | 3 | 4 |
| 5 | 4 | 4 |
| 6 | 5 | 5 |
| 7 | 8 | 5 |
Tabela: reservas_voos
|
codigo |
reserva_viagem |
voo |
data |
| 1 | 1 | 1 |
1/1/2006 |
| 2 | 3 | 2 |
1/3/2006 |
| 3 | 2 | 2 |
1/3/2006 |
| 4 | 5 | 3 |
1/2/2006 |
| 5 | 3 | 2 |
1/3/2006 |
| 6 | 7 | 4 |
2/2/2006 |
| 7 | 6 | 5 |
3/4/2006 |
| 8 | 1 | 3 |
5/5/2006 |
| 9 | 8 | 7 |
6/6/2006 |
| 10 | 3 | 3 |
7/7/2006 |
Tabela: voos
|
codigo |
companhia | origem | destino |
partida |
| 1 | 1 | 1 | 2 | 10:00 |
| 2 | 1 | 1 | 5 | 12:00 |
| 3 | 1 | 5 | 6 | 10:00 |
| 4 | 2 | 2 | 1 | 16:00 |
| 5 | 2 | 5 | 2 | 11:00 |
| 6 | 3 | 3 | 5 | 12:00 |
| 7 | 4 | 4 | 3 | 15:00 |
Consulta 1
select nome, telefone
from clientes
where codigo in (
select cliente
from reservas_viagens
group by cliente
having count(cliente) > 1);
Consulta 2
select nome
from cidades
where cidades.codigo in (
select cidade
from aeroportos
where aeroportos.codigo in (
select destino
from voos, companhias
where companhias.codigo = voos.companhia
and companhias.nome = 'Varig'));
Consulta 3
select distinct nome
from agentes, reservas_viagens
where agentes.codigo = reservas_viagens.agente
and reservas_viagens.codigo in (
select reserva_viagem
from reservas_voos
group by reserva_viagem
having count(reserva_viagem) > 1);
Com relação às tabelas e às consultas anteriores, julgue o seguinte item.
É correto afirmar que as tabelas apresentadas implementam o modelo ilustrado a seguir.
