Buscar

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

Continue navegando


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 	OD_FORN
	 		HAVING 	COUNT(*) = 
					(SELECT 	COUNT(*) 
					FROM 	MATERIAL));
C)
SELECT 	DITINCT LOCAL
FROM 	FORNECEDORES
WHERE 	COD_FORN IN
		(SELECT 	DISTINCT COD_FORN
 		FROM 	FORNECIDO	
		WHERE 	COD_MAT IN
				(SELECT 	DISTINCT 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: 
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)