Lista de Exercícios de Projeto e Otimização de Banco de Dados – Lista 4
Questão 1
Considere o esquema de uma empresa conforme segue:
Func (cod_func, nome, dta_nasc, salário, nro_depto, cod_superv)
Depto (nro_depto, nome)
Projeto (cod_proj, nome, duração, nro_depto)
Participa (cod_proj, cod_func, horas_trab)
O comando em SQL para inserir valores nas tabelas Depto e Projeto são:
a) INSERT INTO DEPTO VALUES (1, ‘Recursos Humanos’) e INSERT INTO PROJETO VALUES (‘WEB’, ‘Nova Intranet’, 100, 1).
b) INSERT INTO DEPTO (1, ‘Recursos Humanos’) e INSERT INTO PROJETO (‘WEB’, ‘Nova Intranet’, 100, 1).
c) INSERT INTO DEPTO, PROJETO VALUES (1, ‘Recursos Humanos’), VALUES (‘WEB’, ‘Nova Intranet’, 100, 1).
d) INSERT DEPTO (1, 3) e INSERT PROJETO (‘WEB’, ‘Nova Intranet’).
e) INSERT PROJETO (1, 3) e INSERT DEPTO (‘WEB’, ‘Nova Intranet’).
Questão 2
Considere as tabelas da questão 1. O comando SQL para zerar a duração de todos os projetos do depto 5:
a) DELETE FROM PROJETO SET DURACAO = 0
b) DELETE FROM PROJETO SET DURACAO = 0 WHERE NRO_DEPTO = 5
c) UPDATE PROJETO SET DURACAO = 0
d) UPDATE PROJETO SET DURACAO = 0 WHERE NRO_DEPTO = 5
e) TRUNCATE PROJETO
Questão 3
Considere as tabelas da questão 1. O comando SQL para remover todas as participações em projetos do funcionário 20:
a) DROP TABLE PARTICIPA WHERE COD_FUNC=20
b) TRUNCATE TABLE PARTICIPA
c) DELETE FROM PARTICIPA WHERE COD_FUNC=20
d) DELETE FROM PARTICIPA
e) ALTER TABLE PARTICIPA SET COD_FUNC=20
Questão 4
Marque verdadeiro (V) ou Falso (F) nas afirmativas abaixo.
( ) Uma transação deve acessar uma base de dados consistente.
( ) A afirmação “Ou todas ou nenhuma das operações da transação serão devidamente refletidas na base de dados” tem relação com a atomicidade.
( ) Após a execução de uma transação, a base de dados pode estar inconsistente.
( ) Para confirmar uma transação utiliza-se o comando COMMIT.
( ) Depois que uma transação termina com sucesso, as alterações que ela realizou sobre o banco de dados não precisam persistir.
a) V-V-F-V-F
b) V-V-V-V-F
c) F-V-F-V-F
d) V-V-V-F-F
e) F-F-V-V-V
Questão 5
Considere o esquema de uma empresa conforme segue:
Func (cod_func, nome, dta_nasc, salário, nro_depto, cod_superv)
Depto (nro_depto, nome)
Projeto (cod_proj, nome, duração, nro_depto)
Participa (cod_proj, cod_func, horas_trab)
Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do departamento 5, com salário na faixa entre 1000 e 2000.
a) SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000
b) SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000
c) SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5
d) SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000
e) SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5
Questão 6
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL para obter o nome e o salário líquido (85% do salário bruto) dos funcionários supervisionados pelo funcionário 23.
a) SELECT NOME, SALARIO FROM FUNC WHERE COD_FUNC=23.
b) SELECT NOME, (SALARIO * 0.85) AS SLIQ FROM FUNC WHERE COD_SUPERV=23.
c) SELECT NOME, SALARIO FROM FUNC WHERE COD_SUPERV=23 AND SALARIO=85.
d) SELECT NOME, SAL_LIQ FROM FUNC WHERE COD_SUPERV=23.
e) SELECT NOME, (SALARIO * 1.85) AS SLIQ FROM FUNC WHERE COD_SUPERV=23.
Questão 7
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL para recuperar o nome completo, em ordem alfabética, dos funcionários cujo nome inicia por “MAR”.
a) SELECT NOME FROM FUNC WHERE NOME LIKE ‘MAR%’.
b) SELECT NOME FROM FUNC WHERE NOME LIKE ‘%MAR’ ORDER BY NOME.
c) SELECT NOME FROM FUNC WHERE NOME LIKE ‘MAR%’ ORDER BY NOME ASC.
d) SELECT NOME FROM FUNC WHERE NOME LIKE ‘_MAR%’ ORDER BY NOME DESC.
e) SELECT NOME FROM FUNC WHERE NOME LIKE ‘MAR%’ ORDER BY 2 DESC.
Questão 8
Considere as tabelas da questão 1. Marque a alternativa que contém o comando em SQL para recuperar o código do projeto, duração e número dos departamentos dos projetos “FATURAMENTO”, “INTRANET” e “NOVOS PRODUTOS”.
a) SELECT COD_PROJ, DURACAO, NRO_DEPTO FROM PROJETO WHERE NOME IN (‘FATURAMENTO’, ‘INTRANET’, ‘NOVOS PRODUTOS’).
b) SELECT COD_PROJ, DURACAO, NRO_DEPTO FROM PROJETO WHERE NOME = (‘FATURAMENTO’, ‘INTRANET’, ‘NOVOS PRODUTOS’).
c) SELECT COD_PROJ, DURACAO FROM PROJETO WHERE NOME IS (‘FATURAMENTO’, ‘INTRANET’, ‘NOVOS PRODUTOS’).
d) SELECT COD_PROJ FROM PARTICIPA WHERE NOME IN (‘FATURAMENTO’, ‘INTRANET’, ‘NOVOS PRODUTOS’).
e) SELECT COD_PROJ, DURACAO, NRO_DEPTO FROM PROJETO WHERE NOME = ‘FATURAMENTO’ AND NOME = ‘INTRANET’ AND NOME = ‘NOVOS PRODUTOS’.
AULA 04 – Respostas
Questão 1 – A
Justificativa: O comando SQL correto é: INSERT INTO DEPTO VALUES (1, ‘Recursos Humanos’) e INSERT INTO PROJETO VALUES (‘WEB’, ‘Nova Intranet’, 100, 1).
Questão 2 – D
Justificativa: A sentença para atualizar a tabela PROJETO e zerar o conteúdo da coluna projeto das linhas do departamento 5 é UPDATE PROJETO SET DURACAO = 0 WHERE NRO_DEPTO = 5.
Questão 3 – C
Justificativa: O comando para remover todas as participações em projetos do funcionário 20 é DELETE FROM PARTICIPA WHERE COD_FUNC=20.
Questão 4 – A
Questão 5 – B
Justificativa: A sentença correta é SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000.
Questão 6 – B
Justificativa: A sentença correta é SELECT NOME, (SALARIO * 0.85) AS SLIQ FROM FUNC WHERE COD_SUPERV=23.
Questão 7 – C
Justificativa: A sentença correta é SELECT NOME FROM FUNC WHERE NOME LIKE ‘MAR%’ ORDER BY NOME ASC.
Questão 8 – A
Justificativa: A sentença correta é SELECT COD_PROJ, DURACAO, NRO_DEPTO FROM PROJETO WHERE NOME IN (‘FATURAMENTO’, ‘INTRANET’, ‘NOVOS PRODUTOS’);
Material retirado da Web. (Material não revisado ou testado! Revisão e confirmação das respostas em Breve!)
Se você tiver alguma dúvida ou correção a fazer, por favor, comente! Obrigado!
Repare que na resposta da questão 6 você dá como resposta a letra B (Fórmula com 0.85), porém na justificativa você colocou a letra E (Fórmula com 1.85) .
A letra B é realmente a correta, ou seja, 0.85 na fórmula.
Material em PDF está com erro!
Fiz a correção!
Obrigado!