Buscar

Gabarito LISTA3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Gabarito da Terceira Lista de Exercícios de BD 
 
 
1ª QUESTÃO: 
 
A) 
SELECT COD_PROD 
FROM PRODUTO 
WHERE PREÇO < 10000 
 AND COD_PROD NOT IN 
 (SELECT COD_PROD 
 FROM UTILIZA 
 WHERE COD_MAT = ‘M1’); 
 
B) 
SELECT COD_FORN 
FROM FORNECEDOR 
WHERE (LOCAL=’AREA A’ OR LOCAL=’AREA B’) 
 AND COD_FORN IN 
 (SELECT COD_FORN 
 FROM FORNECIDO 
 GROUP BY COD_FORN 
 HAVING COUNT(*) = 
 (SELECT COUNT(*) 
 FROM MATERIAL)); 
 
C) 
SELECT DITINCT LOCAL 
FROM FORNECEDORES 
WHERE COD_FORN IN 
 (SELECT COD_FORN 
 FROM FORNECIDO 
 WHERE COD_MAT IN 
 (SELECT COD_MAT 
 FROM UTILIZA 
 WHERE COD_PROD IN 
 (SELECT COD_PROD 
 FROM PRODUTO 
 WHERE NOME=’PRODUTO X’))); 
 
D) 
SELECT COD_FORN, AVG(PREÇO) 
FROM FORNECIDO 
GROUP BY COD_FORN 
HAVING COUNT(*)>5; 
 
E) 
DELETE 
FROM MATERIAL 
WHERE COD_MAT NOT IN 
 (SELECT COD_MAT 
 FROM UTILIZA); 
 
 OU 
 
DELETE 
FROM MATERIAL 
WHERE NOT EXISTS 
 (SELECT * 
 FROM UTILIZA 
 WHERE COD_MAT=MATERIAL.COD_MAT); 
 
2ª QUESTÃO: Gabarito já fornecido. 
 
3ª QUESTÃO: 
 
CREATE TRIGGER PROP_ATUALIZ 
AFTER UPDATE OF S# ON S 
FOR EACH ROW 
 UPDATE SP 
 SET SP.S# = NEW.S# 
 WHERE SP.S# = OLD.S#; 
 
4ª QUESTÃO): 
 
A) Correto, pois se R possui somente dois atributos, então um dos dois casos acontece: (a) os dois 
atributos fazem parte da chave primária e não existe um atributo não-chave dependente de parte da chave 
e (b) um dos atributos é a chave primária e não há como o outro atributos ser parcialmente dependente 
dessa chave pois é composta por apenas um atributo. 
 
B) Chave Primária: (Mat_Func) Cod_Depto 
 
 Mat_Func Nome_Depto 
 
 Nome_Func 
 
C) (i) Não podemos inserir informações sobre um departamento sem que ele possua um funcionário, (ii) 
As informações de um departamento D seriam repetidas para cada funcionário alocado a D, (iii) Eliminar 
o único funcionário de um departamento eliminaria todas as informações desse departamento. 
 
D) Chave Primária(Mat_Func) Chave Primária(Cod_Depto) 
 
 Mat_Func Cod_Depto 
 E Cod_Depto Nome_Depto 
 Nome_Func 
 
E) Sim, Pois todos os determinantes são chaves. 
5ª QUESTÃO: 
 
A) Porque possui atributos (CURSO e ÁREA, p.e.) que não são totalmente dependentes das chaves 
candidatas. 
 
 
 B) ALUNO2FN(Matr, Discipl, Nota, Nome.Aluno) 
 Chaves candidatas: (Matr,Discipl) e (Nome.aluno,Discipl) 
 
Dependências funcionais 
 
 Matr Nota 
 
 
 Discipl Nome.aluno 
 
 
 
DISCIPLINA(Discipl, Curso, Área) 
 Chaves candidatas: (Discipl) 
 
Dependências Funcionais: 
 
 Discipl 
 
 Curso Área 
 
 
 
C) 
 
 R1 Nota Matr 
 
 Nota 
 Discipl Nome.aluno OU Discipl 
 
 + 
 R2 
Matr Nome.Aluno 
 
 
R3 Discipl R4 
 + 
 Curso Curso Área 
 
Chaves Candidatas: R1: (Discipl, Nome.Aluno) OU R1: (Matr, Discipl) 
 R2 (Matr, Nome.Aluno) + R3 (Discilp) + R4 (Curso)

Outros materiais