Você está na página 1de 5
Curso: Sistemas de Informa¸c˜ao Bancos de Dados - 2015/1 ´ Prof. Alisson Rabelo Arantes 3

Curso: Sistemas de Informa¸c˜ao Bancos de Dados - 2015/1

´

Prof. Alisson Rabelo Arantes 3 a Lista de Exerc´ıcios (preparat´oria para a 3 a prova em 08/05/2015)

1. Considere o esquema relacional apresentado abaixo, do banco de dados da organiza¸c˜ao da Semana de Sistemas de Informa¸c˜ao:

Atividade(Codigo(nn) ,Nome)

Aluno(Matricula(nn) ,Nome,Endereco,email,DataNasc,Idade,Selecionado)

Aluno[Selecionado] n(r),p(m)

Atividade[Codigo]

Inscreve(Aluno(nn),Atividade(nn) ,Prioridade,Data)

Inscreve[Aluno] p(rm)

Aluno[Matricula]

Inscreve[Atividade] p(rm)

Atividade[Codigo]

Professor(Matricula(nn) ,Nome,Endereco,email)

Minicurso(Codigo(nn) ,Instrutor(nn),Laboratorio,DataInicio,DataTermino,CargaHoraria)

Minicurso[Codigo] p(rm)

Atividade[Codigo]

Minicurso[Instrutor] b(r),p(m)

Professor[Matricula]

Empresa(Codigo(nn) ,Nome,Endereco,Cidade)

Palestrante(Codigo(nn) ,Nome,email,Empresa(nn))

Palestrante[Empresa] n(r),p(m)

Empresa[Codigo]

Palestra(Codigo(nn) ,Palestrante(nn),Data,Hora)

Palestra[Codigo] p(rm)

Atividade[Codigo]

Palestra[Palestrante] b(r),p(m)

Palestrante[Codigo]

Visita(Codigo(nn) ,Empresa(nn),Data,HoraInicio,HoraTermino,Responsavel(n n))

Visita[Codigo] p(rm)

Atividade[Codigo]

Visita[Empresa] b(r),p(m)

Empresa[Codigo]

Visita[Responsavel] b(r),p(m)

Professor[Matricula]

Formule as consultas abaixo na linguagem SQL:

(a)

Qual o nome e e-mail dos alunos que n˜ao foram selecionados para nenhuma atividade?

(b)

Qual o nome e o e-mail dos alunos que n˜ao se inscreveram em nenhuma atividade?

(c)

Para cada aluno mostrar o seu nome e nome da atividade para a qual foi selecionado.

(d)

Qual o nome do professor respons´avel pela visita t´ecni ca `a Data Systems, realizada no dia 26/09/2014?

(e)

Qual o nome do instrutor, data de in´ıcio e data de t´ermin o do mini-curso “Introdu¸c˜ao `a Linguagem PHP”?

(f)

Qual o nome da empresa em que trabalha o palestrante que ap resentou a palestra “Inclus˜ao Digital”?

(g)

Quais os nomes dos alunos que se inscreveram no mini-curs o “Introdu¸c˜ao `a Programa¸c˜ao Orientada a Objetos com a Linguagem Java” com prioridade 1, em ordem cres cente de data?

1

(h)

Qual o nome e e-mail dos alunos que fizeram inscri¸c˜ao em p elo menos uma atividade mas n˜ao foram selecionados para nenhuma?

(i)

Qual ´e o nome, laborat´orio, nome do instrutor e data dos minicuros que ocorreram em um unico´ dia?

(j)

Quais os nomes dos professores que foram instutores de mi nicursos e tamb´em respons´aveis por visitas t´ecnicas?

(k)

Quantas atividades foram realizadas durante a Semana de Sistemas de Informa¸c˜ao?

(l)

No total, quantas horas foram oferecidas em mini-cursos realizados durante a Semana de Sistemas de Informa¸c˜ao?

(m) Quantos alunos foram selecionados para o mini-curso “Introdu¸c˜ao ao SGBD Oracle”?

(n)

Para cada atividade oferecida, qual o seu nome e n´umero d e alunos inscritos?

(o)

Qual o nome das palestras que possuem mais de 150 alunos in scritos?

(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 trˆes atividades?

(r)

Qual o nome e e-mail dos alunos que fizeram inscri¸c˜ao em p elo menos duas atividades mas n˜ao foram selecionados para nenhuma?

(s)

Quais os nomes dos instrutores dos minicursos que come¸c aram no dia 24/09/2014?

(t)

Por quantas visitas o Prof. Tem´ıstoclis Petrof´ıdio foi respons´avel?

(u)

Mostrar em ordem alfab´etica decrescente o nome dos pale strantes vinculados `a empresa InfoSystems respons´aveis por pelo menos 3 palestras.

(v)

Mostrar o nome dos professores que n˜ao foram respons´aveis por nenhuma visita t´ecnica no dia 13/10/2014.

(w)

Mostrar o nome dos alunos em ordem crescente de idade (n˜ao 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 Car los da Silva em 2014?

(b)

Em que anos foram oferecidas aos s´ocios do clube aulas de gin´astica ol´ımpica?

(c)

Quais os nomes dos professores que ministraram aulas de algum esporte que n˜ao ´e a sua especialidade?

(d)

Para cada s´ocio mostrar seu nome, sua categoria e a quant idade de turmas em que j´a esteve matriculado.

(e)

Quais os nomes e especialidades dos professores que nunc a 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?

2

ii.

Quantos ˆonibus da empresa foram utilizados para viagen s no dia 10/10/2014?

iii. Quais os nomes dos motoristas que j´a realizaram mais de 5 viagens de Brumadinho para Sarzedo, listados em ordem alfab´etica decrescente?

iv. Qual o sal´ario m´edio dos empregados?

v. Qual o sal´ario m´edio dos mecˆanicos?

vi. Para cada ˆonibus, qual ´e a sua placa e a quantidade de viagens que j´a realizou com destino a Belo

Horizonte? vii. Quais os nomes dos motoristas cuja CNH (Carteira Nacion al de Habilita¸c˜ao) possui categoria ’E’ e

que conduziram as viagens de Esmeraldas para Porto Seguro em 06/11/2014?

viii. Mostrar o nome e o sal´ario dos motoristas que est˜ao com a Carteira Nacional de Habilita¸c˜ao 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?” pod e ser realizada de pelo menos duas formas diferentes, com e sem a express˜ao 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,DataDe sejada)

Reserva[Hospede] p(r),b(m)

Hospede[Codigo]

Reserva[Funcionario] b(r),p(m)

Funcionario[Codigo]

Hospedagem(Codigo(nn) ,Hospede(nn),Quarto(nn),DataEntrada,HoraEntrada,Data Saida,HoraSaida,ValorTotal)

Hospedagem[Hospede] p(r),p(m)

Hospedagem[Quarto] 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)

Produto[Codigo]

Consumo[Hospedagem] p(r),b(m)

Hospedagem[Codigo]

Expresse as consultas abaixo na linguagem SQL:

(a)

Quais os nomes dos h´ospedes que deram entrada no hotel no dia 21/04/2015 e ainda est˜ao hospedados?

(b)

Qual o nome e o sal´ario dos funcion´arios que nunca reali zaram reservas para um h´ospede?

(c)

Para cada quarto, qual ´e o seu n´umero, descri¸c˜ao e a qu antidade de vezes em que j´a foi utilizado para hospedagem?

(d)

Qual o nome e endere¸co dos h´ospedes que j´a se hospedaram no hotel mais de 5 vezes?

5. As cl´ausulas WHERE e HAVING s˜ao utilizadas para se expre ssar condi¸c˜oes em uma consulta SQL. Qual ´e a diferen¸ca entre elas? Explique com um exemplo sobre o banco de dados da Quest˜ao 1.

6. Qual ´e a rela¸c˜ao existente entre as cl´ausulas GROUP BY e HAVING utilizadas em uma consulta SQL? Explique com um exemplo sobre o banco de dados da Quest˜ao 1.

7. A sigla SQL significa Structured Query Language ou Linguagem de Consultas Estruturada, em portuguˆes. Que cr´ıtica pode ser feita a esse nome dado para a linguagem? Por que?

3

8. Abaixo ´e apresentado o esquema relacional do banco de dad os do Campeonato Brasileiro de 2014:

Cidade(Codigo(nn) ,Nome,Estado(nn))

Estadio(Codigo(nn) ,Nome,Cidade(nn))

Estadio[Cidade] Cidade[Codigo]

Equipe(Codigo(nn) ,Nome,Estadio(nn))

Equipe[Estadio] Estadio[Codigo]

Arbitro(Codigo(nn) ,Nome)

Jogo(Equipe1(nn),Equipe2(nn) ,Placar1,Placar2,Data,Hora,Local,Arbitro)

Jogo[Equipe1] Equipe[Codigo] Jogo[Equipe2] Equipe[Codigo] Jogo[Local] Estadio[Codigo] Jogo[Arbitro] Arbitro[Codigo]

Classificacao(Equipe(nn) ,Jogos,Vitorias,Empates,Derrotas,SaldoGols,GolsPro,GolsCon tra,PontosGanhos)

Classificacao[Equipe] Equipe[Codigo]

Formule as consultas abaixo na linguagem SQL:

(a)

Mostrar a tabela de classifica¸c˜ao do campeonato com o nome de cada equipe, n´umero de pontos ganhos

e

saldo de gols, em ordem decrescente do n´umero de pontos gan hos.

(b)

Quais os nomes das equipes paulistas que at´e o momento possuem mais derrotas que vit´orias e est˜ao com saldo de gols negativo? Considere que uma equipe ´e paulista quando seu est´adio se localiza no estado de S˜ao Paulo.

(c)

Para todos os jogos realizados no dia 16/11/2014, mostrar os nomes das duas equipes envolvidas, o placar

e o local em que foi realizado.

9. Considere o esquema relacional definido abaixo, sobre o banco de dados da Federa¸c˜ao Internacional de Auto- mobilismo, que armazena os dados de todos os campeonatos mun diais de F´ormula 1:

Pais(Numero(nn) ,Nome)

Piloto(Numero(nn) ,Nome,Pais)

Piloto[Pais] p(r),b(m)

Pais[Numero]

Campeonato(Ano(nn) ,Campeao)

Campeonato[Campeao] p(r),b(m)

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)

Piloto[Numero]

Pertence[Equipe] p(r),b(m)

Equipe[Numero]

Disputa(Piloto(nn),Campeonato(nn),Pontuacao(nn))

Disputa[Piloto] p(r),b(m)

Piloto[Numero]

Disputa[Campeonato] 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] p(r),p(m)

Corrida[Vencedor] b(r),b(m)

Autodromo[Numero]

Piloto[Numero]

4

Formule as consultas abaixo na linguagem SQL:

(a)

Qual o nome e pa´ıs de nascimento dos pilotos que disputar am o campeonato mundial de F´ormula 1 de 2005, em ordem decrescente de pontua¸c˜ao?

(b)

Para cada aut´odromo mostrar seu nome, extens˜ao, nome d o pa´ıs onde fica e o n´umero de corridas que j´a foram realizadas.

(c)

Qual o nome e pa´ıs de nascimento dos pilotos que s˜ao tric ampe˜oes mundiais de F´ormula 1?

(d)

Para cada corrida realizada no ano de 2014 (considere o at ributo data da corrida como o ano de realiza¸c˜ao), mostrar o nome do aut´odromo onde foi realizada e o n´umero de pilotos que nela competiram.

(e)

Para cada piloto, mostrar seu nome, nome do seu pa´ıs e o n´umero de corridas que j´a venceu.

(f)

Mostrar, em ordem alfab´etica decrescente, o nome dos pi lotos que j´a venceram corridas realizadas no aut´odromo de Spa-Francorchamps, sabendo-se que o n´umero deste aut´odromo ´e 65.

10. Qual ´e a diferen¸ca entre os resultados das consultas ab aixo, ambas sobre o banco de dados da Quest˜ao 9?

SELECT SUM(Pontuacao) FROM Disputa WHERE Campeonato = 2014 GROUP BY Piloto

5

SELECT SUM(Pontuacao) FROM Disputa WHERE Campeonato = 2014