c
ao
Bancos de Dados - 2015/1
Prof. Alisson
Rabelo Arantes
3a Lista de Exerccios (preparat
oria para a 3a prova em 08/05/2015)
1. Considere o esquema relacional apresentado abaixo, do banco de dados da organizacao da Semana de Sistemas
de Informacao:
Atividade(Codigo(nn),Nome)
Aluno(Matricula(nn),Nome,Endereco,email,DataNasc,Idade,Selecionado)
n(r),p(m)
Aluno[Selecionado]
Atividade[Codigo]
Inscreve(Aluno(nn),Atividade(nn),Prioridade,Data)
p(rm)
Inscreve[Aluno] Aluno[Matricula]
p(rm)
Inscreve[Atividade] Atividade[Codigo]
Professor(Matricula(nn),Nome,Endereco,email)
Minicurso(Codigo(nn),Instrutor(nn),Laboratorio,DataInicio,DataTermino,CargaHoraria)
p(rm)
Minicurso[Codigo] Atividade[Codigo]
b(r),p(m)
Minicurso[Instrutor]
Professor[Matricula]
Empresa(Codigo(nn),Nome,Endereco,Cidade)
Palestrante(Codigo(nn),Nome,email,Empresa(nn))
n(r),p(m)
Palestrante[Empresa]
Empresa[Codigo]
Palestra(Codigo(nn),Palestrante(nn),Data,Hora)
p(rm)
Palestra[Codigo] Atividade[Codigo]
Palestra[Palestrante]
b(r),p(m)
Palestrante[Codigo]
Visita(Codigo(nn),Empresa(nn),Data,HoraInicio,HoraTermino,Responsavel(nn))
p(rm)
Visita[Codigo] Atividade[Codigo]
Visita[Empresa]
b(r),p(m)
Visita[Responsavel]
Empresa[Codigo]
b(r),p(m)
Professor[Matricula]
(h) Qual o nome e e-mail dos alunos que fizeram inscricao em pelo menos uma atividade mas nao foram
selecionados para nenhuma?
(i) Qual e o nome, laboratorio, nome do instrutor e data dos minicuros que ocorreram em um u
nico dia?
(j) Quais os nomes dos professores que foram instutores de minicursos e tambem respons
aveis por visitas
tecnicas?
(k) Quantas atividades foram realizadas durante a Semana de Sistemas de Informacao?
(l) No total, quantas horas foram oferecidas em mini-cursos realizados durante a Semana de Sistemas de
Informacao?
(m) Quantos alunos foram selecionados para o mini-curso Introducao ao SGBD Oracle?
(n) Para cada atividade oferecida, qual o seu nome e n
umero de alunos inscritos?
(o) Qual o nome das palestras que possuem mais de 150 alunos inscritos?
(p) Para cada mini-curso, qual e o seu nome e n
umero de alunos selecionados?
(q) Quais os nomes dos alunos que se inscreveram em mais de tres atividades?
(r) Qual o nome e e-mail dos alunos que fizeram inscricao em pelo menos duas atividades mas nao foram
selecionados para nenhuma?
(s) Quais os nomes dos instrutores dos minicursos que comecaram no dia 24/09/2014?
(t) Por quantas visitas o Prof. Temstoclis Petrofdio foi respons
avel?
(u) Mostrar em ordem alfabetica decrescente o nome dos palestrantes vinculados `a empresa InfoSystems
respons
aveis por pelo menos 3 palestras.
(v) Mostrar o nome dos professores que nao foram respons
aveis por nenhuma visita tecnica no dia 13/10/2014.
(w) Mostrar o nome dos alunos em ordem crescente de idade (nao utilize nesta consulta o atributo Idade da
tabela Aluno).
2. Considere o esquema relacional definido abaixo, sobre o banco de dados de um clube esportivo:
Socio(Matricula(nn),Nome,Sexo,Categoria,Mensalidade)
Professor(Matricula(nn),Nome,Sexo,Especialidade,Salario)
Turma(Codigo(nn),Esporte,Horario,Local,Ano,Professor(nn))
Turma[Professor] Professor[Matricula]
Matriculado(Socio(nn),Turma(nn))
Matriculado[Socio] Socio[Matricula]
Matriculado[Turma] Turma[Codigo]
Formule as consultas abaixo na linguagem SQL:
(a) Em que esportes estava matriculado o s
ocio Ant
onio Carlos da Silva em 2014?
(b) Em que anos foram oferecidas aos s
ocios do clube aulas de ginastica olmpica?
(c) Quais os nomes dos professores que ministraram aulas de algum esporte que nao e a sua especialidade?
(d) Para cada s
ocio mostrar seu nome, sua categoria e a quantidade de turmas em que ja esteve matriculado.
(e) Quais os nomes e especialidades dos professores que nunca foram respons
aveis por nenhuma turma?
3. Considere o esquema relacional definido abaixo, sobre o banco de dados de uma empresa de transportes:
Onibus(Placa(nn),Chassi,Capacidade,Ano)
Empregado(CPF(nn),CTPS,Nome,Salario)
Motorista(CPF(nn),CNH,Categoria,DataObtencao,DataValidade)
Motorista[CPF] Empregado[CPF]
Mecanico(CPF(nn),Armario)
Mecanico[CPF] Empregado[CPF]
Viagem(Codigo(nn),Data,Horario,Partida,Destino,Onibus(nn),Motorista(nn),Mecanico(nn))
Viagem[Onibus] Onibus[Placa]
Viagem[Motorista] Motorista[CPF]
Viagem[Mecanico] Mecanico[CPF]
(a) Formule as consultas abaixo na linguagem SQL:
i. Quantos motoristas conduziram viagens saindo de Betim no dia 20/02/2015?
ii. Quantos
onibus da empresa foram utilizados para viagens no dia 10/10/2014?
iii. Quais os nomes dos motoristas que ja realizaram mais de 5 viagens de Brumadinho para Sarzedo,
listados em ordem alfabetica decrescente?
iv. Qual o salario medio dos empregados?
v. Qual o salario medio dos mec
anicos?
vi. Para cada
onibus, qual e a sua placa e a quantidade de viagens que ja realizou com destino a Belo
Horizonte?
vii. Quais os nomes dos motoristas cuja CNH (Carteira Nacional de Habilitacao) possui categoria E e
que conduziram as viagens de Esmeraldas para Porto Seguro em 06/11/2014?
viii. Mostrar o nome e o salario dos motoristas que est
ao com a Carteira Nacional de Habilitacao categoria
D vencida, considerando-se que a data de hoje e 21/04/2015.
(b) A consulta Qual e o nome dos motoristas da empresa? pode ser realizada de pelo menos duas formas
diferentes, com e sem a expressao IN. Como s
ao essas formas de se realizar essa consulta?
4. Considere o esquema relacional definido abaixo, sobre o banco de dados de um hotel:
Hospede(Codigo(nn),CPF(nn),Nome,Endereco,Cidade,Estado,Celular)
Quarto(Numero(nn),Descricao,ValorDiaria)
Funcionario(Codigo(nn),Nome,Endereco,Salario)
Reserva(Hospede(nn),Funcionario(nn),DataReserva,DataDesejada)
Reserva[Hospede]
p(r),b(m)
Reserva[Funcionario]
Hospede[Codigo]
b(r),p(m)
Funcionario[Codigo]
Hospedagem(Codigo(nn),Hospede(nn),Quarto(nn),DataEntrada,HoraEntrada,DataSaida,HoraSaida,ValorTotal)
Hospedagem[Hospede]
Hospedagem[Quarto]
p(r),p(m)
p(r),p(m)
Hospede[Codigo]
Quarto[Numero]
Produto(Codigo(nn),Nome,Valor)
Consumo(Produto(nn),Hospedagem(nn),Data,Quantidade)
Consumo[Produto]
p(r),b(m)
Consumo[Hospedagem]
Produto[Codigo]
p(r),b(m)
Hospedagem[Codigo]
p(r),b(m)
Pais[Numero]
Campeonato(Ano(nn),Campeao)
p(r),b(m)
Campeonato[Campeao]
Piloto[Numero]
Equipe(Numero(nn),Nome,DataFundacao,Pais)
Equipe[Pais]
p(r),b(m)
Pais[Numero]
Pertence(Piloto(nn),Equipe(nn),AnoEntrada,AnoSaida)
Pertence[Piloto]
p(r),b(m)
Pertence[Equipe]
Piloto[Numero]
p(r),b(m)
Equipe[Numero]
Disputa(Piloto(nn),Campeonato(nn),Pontuacao(nn))
Disputa[Piloto]
p(r),b(m)
Disputa[Campeonato]
Piloto[Numero]
p(r),b(m)
Campeonato[Ano]
Autodromo(Numero(nn),Nome,Extensao,Pais)
Autodromo[Pais]
p(r),b(m)
Pais[Numero]
Corrida(Numero(nn),Data,Autodromo(nn),Vencedor)
Corrida[Autodromo]
Corrida[Vencedor]
p(r),p(m)
b(r),b(m)
Autodromo[Numero]
Piloto[Numero]