Buscar

Projeto e otimização de banco de dados

Prévia do material em texto

Vila Velha, ES 
 
ESTÁCIO DE SÁ 
 
 
 
TRABALHO DA DISCIPLINA PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aluno: Rodolfo de Jesus Nascimento. 
MATÉRIA: PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS 
PÓS – GRADUÇÃO DE ENGENHARIA DE SOFTWARE. 
 
 
 
Vila Velha, ES 
 
 
 
 
Escreva as sentenças em SQL para responder as seguintes proposições: 
 
a) Código e nome das disciplinas com carga horária entre 3 e 5 inclusive e que não sejam da 
área de Saúde. 
b) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas por 
professores doutores. 
c) Salas onde haverá aulas cujos cursos possuam duração superior a 3 anos e cujas disciplinas 
não sejam nem da área de Matemática, nem de Saúde e nem de Humanas e cujo professor 
seja Paulo, Joaquim ou Juliana. 
 d) Nomes dos professores que não ministram nenhuma disciplina. 
 e) Nomes das disciplinas e o nome dos respectivos pré-requisitos. 
 f) Nome das disciplinas que possuam carga horária maior que todas as disciplinas da área de 
Matemática. 
g) Código de cada disciplina, com a quantidade de cursos em que a mesma é oferecida. 
 h) Carga horária média das áreas com carga horária média maior ou igual a 3. 
 i) Nome das disciplinas que não têm pré-requisito e que não são pré-requisito. 
 j) Nome dos cursos que têm a mesma duração do curso de Engenharia Elétrica e que têm 
mensalidade maior que a sua. 
 
 
 
 
 
 
Vila Velha, ES 
Respostas 
 
 
A) Código e nome das disciplinas com carga horária entre 3 e 5 inclusive e que não sejam 
da área de Saúde. 
 
SELECT CodD, NomeD FROM Disciplina WHERE CargaD BETWEEN 3 AND 5 AND 
AreaD != 'Saúde 
b) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas por 
professores doutores. 
 
 SELECT DISTINCT NomeD FROM Disciplina d JOIN Grade g on g.CodD = d.CodD JOIN Professor 
p on p.CodP = g.CodP WHERE CargaD < 5 AND p.Titulo = 
‘Doutor’ 
 
c) Salas onde haverá aulas cujos cursos possuam duração superior a 3 anos e cujas disciplinas 
não sejam nem da área de Matemática, nem de Saúde e nem de Humanas e cujo professor 
seja Paulo, Joaquim ou Juliana. 
 
SELECT DISTINCT Sala from Grade g JOIN Curso c on c.CodC = g.CodC JOIN Disciplina d on 
d.CodD = g.CodD join Professor p on p.CodP = g.CodP WHERE c.DuracaoC > 3 AND (d.AreaD IS 
NULL OR d.AreaD NOT IN (‘Matemática’, ‘Saúde’, ‘Humanas’)) AND p.NomeP in (‘Paulo’, 
‘Joaquim’, ‘Juliana’) 
 
d) Nomes dos professores que não ministram nenhuma disciplina. 
 
SELECT NomeP FROM Professor p WHERE NOT EXISTS (SELECT CodP FROM Grade g WHERE 
g.CodP = p.CodP) 
 
e) Nomes das disciplinas e o nome dos respectivos pré-requisitos. 
 
SELECT d.NomeD, pr.NomeD FROM Disciplina d JOIN Disciplina pr ON pr.CodC = d.PreReqD 
f) Nome das disciplinas que possuam carga horária maior que todas as disciplinas da área de 
Matemática. 
 
SELECT NomeD FROM Disciplina WHERE CargaD > (SELECT MAX (CargaD) FROM Disciplina 
WHERE AreaD = ‘Matemática’) 
g) Código de cada disciplina, com a quantidade de cursos em que a mesma é oferecida. 
SELECT d.CodD, COUNT (distinct g.CodC) AS Ccursos FROM Disciplina d LEFT JOIN Grade g on 
g.CodD = d.CodD GROUP BY d.CodD 
 
 
Vila Velha, ES 
h) Carga horária média das áreas com carga horária média maior ou igual a 3. 
 
SELECT AVG(CargaD) as AvgCarga FROM Disciplina GROUP BY AreaD HAVING AVG(CargaD) >= 3 
 
 i) Nome das disciplinas que não têm pré-requisito e que não são pré-requisito. 
 
SELECT d.NomeD FROM Disciplina d WHERE d.PreReqD IS NULL AND NOT EXISTS (SELECT CodD 
FROM Disciplina disc WHERE disc.PreReqD = d.CodD) 
 
 j) Nome dos cursos que têm a mesma duração do curso de Engenharia Elétrica e que têm 
mensalidade maior que a sua. 
 
SELECT c.NomeC FROM Curso c WHERE c.DuracaoC = (SELECT cc.DuracaoC FROM Curso cc 
WHERE cc.NomeC = ‘Eng Elétrica’) AND c.MensC > (SELECT cc.MensC FROM Curso cc WHERE 
cc.NomeC = ‘Eng Elétrica) AND c.NomeC != ‘Eng Elétrica’

Continue navegando