Você está na página 1de 5

Curso de Tecnologia em Sistemas de Computação Banco de Dados

APX2 – 2020/01
Aluno: Ricardo Jackson Lopes Bezerra Oliveira

1. Prova COM consulta.


2. A APx2 deverá ser postada na plataforma antes do prazo final de entrega estabelecido no calendário do
CEDERJ.
3. Cuidado para não deixar a APx2 como "Rascunho" na plataforma!
4. A APx2 deve ser enviadas exclusivamente no formato de arquivo PDF.
5. Não haverá adiamento. Recomendamos aos alunos enviar a solução da prova antes do prazo, para evitar problemas
de acesso ao servidor ou com a própria internet.
6. Quando a questão for feita a mão e fotografada/digitalizada, o aluno deve verificar que o arquivo gerado final está
legível.
7. Lembramos que existe um limite de 2MB para os arquivos a serem submetidos.
8. A prova está feita para ser executada em 2 horas, a mão, com certa pressão de tempo para favorecer os alunos que
realmente estudaram a matéria. Não busquem soluções supercomplicadas, esta é a mesma prova da AP2.
9. É essencial ter comportamento ÉTICO.
10. Não compartilhem suas respostas. Haverá verificação se há cópia entre as provas. Vocês podem ser os
maiores prejudicados!
Questão 01 – 08 pontos
Considere um banco de dados que armazene informações sobre o carnaval brasileiro representado pelo DIAGRAMA ER -
CARNAVAL. Na sequência, considere o mapeamento do modelo apresentado para o ESQUEMA RELACIONAL –
CARNAVAL para responder em SQL às Perguntas 01-(a) até 01-(i) abaixo.
DIAGRAMA ENTIDADE RELACIONAMENTO - CARNAVAL

Enredo

Idade

tc

ESQUEMA RELACIONAL – CARNAVAL

Sambodromo(id_sambodromo, nome, endereço, data_inauguração)


Setor(id_sambodromo, número, preço, tipo)
Campeonato(estado_camp, ano_camp, data_inicio, data_fim, regulamento)
Escola(cnpj_escola, nome, cores, end_sede, nome_fantasia)
Desfile(cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile, hora_fim, enredo)
Pessoa(cpf, nome, endereço) Fundador(cpf,
nacionalidade) Espectador(cpf, idade)
Jurado(cpf,ocupação)
Participante(cpf,escolaridade)
Julga(cpf_jurado, cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile, nota, quesito)
Integra(cpf_participante, cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile)
SEP(cpf_espectador, id_sambodromo, número, cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile,
data_compra, valor_ingresso)
Restrições de Integridade Referencial:

• id_sambodromo (Setor) REFERENCIA id_sambodromo (Sambodromo)


• cnpj_escola (Desfile) REFERENCIA cnpj_escola (Escola)
• {ano_camp, estado_camp} (Desfile) REFERENCIA {ano_camp, estado_camp} (Campeonato)
• cpf (Fundador) REFERENCIA cpf (Pessoa)
• cpf (Espectador) REFERENCIA cpf (Pessoa)
• cpf (Jurado) REFERENCIA cpf (Pessoa)
• cpf (Participante) REFERENCIA cpf (Pessoa)
• cpf_jurado (Julga) REFERENCIA cpf (Jurado)
• {cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile} (Julga) REFERENCIA
{cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile} (Desfile)
• cpf_participante (Integra) REFERENCIA cpf (Participante)
• {cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile} (Integra) REFERENCIA
{cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile} (Desfile)
• cpf_espectador (SEP) REFERENCIA cpf (Espectador)
• {id_sambodromo, número} (SEP) REFERENCIA {id_sambodromo, número} (Setor)
• {cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile} (SEP) REFERENCIA
{cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile} (Desfile)

Pergunta 01(a) – 01 ponto


Escreva o comando SQL para criar a tabela Desfile de forma que as restrições de integridade referencial sejam
respeitadas. Assuma que as tabelas Campeonato e Escola já tenham sido criadas anteriormente.
CREATE TABLE Desfile
(Campeonato a, Campeonato e, Desfile d, Desfile h, NOT NULL AUTO_INCREMENT,
PRIMARY KEY (Escola n));
UNIQUE (Desfile d)
FOREIGN KEY (Escola n, Campeonato a, Campeonato e, Desfile d, Desfile h) REFERENCES DESFILE
ON DELETE SET DEFAULT
ON UPDATE CASCADE,);

Pergunta 01(b) – 01 ponto


Liste o nome de todas as escolas que participaram do campeonato de 2020 realizado no estado do Rio de
Janeiro.
SELECT n.Escola
FROM Escola, Campeonato
WHERE n.Escola AND a.Campeonato =
2020

Ou

SELECT e.NomeEscola
FROM Campeonato c, ESCOLA e
WHERE e.Escola=n.Escola
AND a.Campeonato = 2020

Pergunta 01(c) – 01 ponto


Qual foi a ordem que desfilaram as escolas de samba no campeonato de 2020 realizado no estado do Rio de
Janeiro?
SELECT NOMEESCOLA
FROM DESFILE
WHERE a.Campeonato = 2020 AND e.Campeonato
ORDER BY NOMEESCOLA;

Pergunta 01(d) – 0,5 ponto


Liste o nome de todos os espectadores que assistiram alguma escola de samba desfilar no Sambodrómo da
Marquês de Sapucaí em 2020. Espectadores que assistiram mais de um desfile devem aparecer uma única vez
na resposta.
SELECT Espectador, COUNT (*)
FROM Escola
WHERE n.Sambodromo=Marquês de Sapucaí, AND a.Campeonato = 2020
GROUP BY Espectador
HAVING COUNT(*) > 1

Pergunta 01(e) – 0,5 ponto


Liste o nome de todas as pessoas que assistiram o desfile da escola Estação Primeira de Mangueira no setor
de número 01 do Sambodrómo da Marquês de Sapucaí independentemente do ano do desfile. Espectadores
que assistiram mais de um desfile devem aparecer uma única vez na resposta.
SELECT Pessoa DISTINCT, COUNT(*)
FROM Escola e
WHERE n.Escola= Estação Primeira de Mangueira, Setor=1, n.Sambodromo=Marquês de Sapucaí, AND
a.Campeonato = 2020
AND
GROUP BY Pessoa

Pergunta 01(f) – 01 ponto


Por quantas escolas cada participante cadastrado desfilou em 2020? Participantes cadastrados que não
desfilaram devem aparecer na resposta como tendo desfilado zero vezes.
SELECT Escola DISTINCT COUNT(*)
FROM Participante
WHERE
GROUP BY
HAVING
ORDER BY

Pergunta 01(g) – 01 ponto


Liste todos os quesitos e notas que a escola de samba Unidos da Tijuca recebeu em 2020, bem como o nome
dos jurados que deram as notas.
SELECT quesito AS Julga, nota AS Julga, cpf.jurado AS Jurado
FROM Campeonato c, Escola e, Julga jul, quesito q, nota n
WHERE n.Jurado = cpf.jurado
AND n.cnpjEscola = “Unidos da Tijuca”
AND c.anoCampeonato = “2020”

Sambodromo(id_sambodromo, nome, endereço, data_inauguração)


Setor(id_sambodromo, número, preço, tipo)
Campeonato(estado_camp, ano_camp, data_inicio, data_fim, regulamento)
Escola(cnpj_escola, nome, cores, end_sede, nome_fantasia)
Desfile(cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile, hora_fim, enredo)
Pessoa(cpf, nome, endereço)
Fundador(cpf, nacionalidade) Espectador(cpf, idade)
Jurado(cpf,ocupação)
Participante(cpf,escolaridade)
Julga(cpf_jurado, cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile, nota, quesito)
Integra(cpf_participante, cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile)
SEP(cpf_espectador, id_sambodromo, número, cnpj_escola, ano_camp, estado_camp, data_desfile, hora_ini_desfile, data_compra,
valor_ingresso)

Pergunta 01(h) – 01 ponto


Liste o valor médio pago por ingresso para cada espectador durante o campeonato de 2020 realizado no estado
do Rio de Janeiro.
SELECT Espectador, AVG(valor_ingresso)
FROM SEP E
GROUP BY Espectador

Pergunta 01(i) – 01 ponto


Liste o nome da escola, quesito e as notas médias por quesito que cada escola de samba recebeu durante a
edição do campeonato de 2020 no estado do Rio de Janeiro. A média deve considerar todas as notas
recebidas e não descartar nenhuma nota.
SELECT n.Escola, p.quesito, AVG(p.quesito) AS NotasMedias
FROM Escola e, quesito q
WHERE n.Escola=q.Julga
GROUP BY n.Escola, p.quesito
HAVING COUNT (*)

Questão 02 – 02 pontos
Considere a relação DADOS_ALUNOS abaixo:
Aluno Endereç Curso
o
João Rua X Enfermage
m
Maria Rua Y Letras
Gilmar Rua Z Computaçã
o
Pedro Rua X Química
Rodrigo Rua Z Matemátic
a
Camila Rua K Biologia
Bárbara Rua Z NULL
André NULL Computaçã
o
Escreva a expressão em SQL sobre DADOS_ALUNOS para responder as seguintes perguntas e indique quais seriam as
resposta com relação às informações apresentadas na tabela:
Pergunta 02(a) – 01 ponto
Liste o nome de todos os alunos que moram na mesma rua que o Gilmar.
SELECT Nome_aluno
FROM esquema2." DADOS_ALUNOS"
INTERSECT
SELECT Endereço
FROM esquema2."Gilmar"

Ou

SELECT Nome_aluno
FROM esquema2." DADOS_ALUNOS"
WHERE Nome_aluno IN
(SELECT Endereço FROM esquema2."Gilmar“)

Pergunta 02(a) – 01 ponto


Liste o nome de todos os alunos que fazem o mesmo curso que Gilmar ou que morem na mesma rua que
Gilmar.
SELECT Nome_aluno
FROM esquema2." DADOS_ALUNOS"
INTERSECT
SELECT Curso or Endereço
FROM esquema2."Aluno"

Ou

SELECT Nome_aluno
FROM esquema2."DADOS_ALUNOS"
WHERE EXISTS
(SELECT Curso or Enderço
FROM esquema2." DADOS_ALUNOS “
WHERE esquema2."DADOS_ALUNOS “.Curso = esquema2.“ DADOS_ALUNOS “.Endereço)