Buscar

Projeto e Otimização de Banco de Dados - Fabio Soares Venturelli

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 5 páginas

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

Prévia do material em texto

PÓS-GRADUAÇÃO ENGENHARIA DE SOFTWARE 
TRABALHO DE PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fabio Soares Venturelli 
2020 
 
2 
Escopo 
Sejam as seguintes tabelas: 
 
 
 
 
 
 
 
 
3 
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. 
SELECT CODD, NOMED FROM DISCIPLINA 
WHERE CARGAD BETWEEN 3 AND 5 AND AREAD <> 'SAUDE' 
 
b) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas por 
professores doutores. 
SELECT DISTINCT NOMED AS NOME_DISCIPLINA FROM DISCIPLINA D 
JOIN GRADE G ON G.CODD = D.CODD 
JOIN PROFESSOR P ON P.CODP = G.CODP 
WHERE CARGD < 5 AND P.TITULOP = 'DOUTOR' 
 
c) Salas onde haverá aulas cujos cursos possuem 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 NOT IN 
('MATEMATICA','SAUDE','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) 
 
 
4 
e) Nomes das disciplinas e o nome dos respectivos pré-requisitos. 
SELECT D.NOMED AS DISCIPLINA, D.PRENOMED AS PRE_REQUISITO 
FROM DISCIPLINA D 
 
f) Nome das disciplinas que possuam carga horária maior que todas as disciplinas da 
área de Matemática. 
SELECT D.NOMED AS DISCIPLINA FROM DISCIPLINA D 
WHERE D.CARGAD > (SELECT MAX(D.CARGAD) FROM DISCIPLINA D WHERE 
D.AREAD = 'MATEMATICA') 
 
g) Código de cada disciplina, com a quantidade de cursos em que a mesma é 
oferecida. 
SELECT D.CODD, COUNT (DISTINCT G.CODC) AS QT_CURSOS FROM 
DISCIPLINA D 
LEFT JOIN GRADE G ON G.CODD = D.CODD GROUP BY D.CODD 
 
h) Carga horária média das áreas com carga horária média maior ou igual a 3. 
SELECT AVG(D.CARGAD) AS CARGA_HORARIA 
FROM DISCIPLINA D 
GROUP BY D.AREAD 
HAVING AVG(D.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 D2.CODD FROM DISCIPLINA D2 WHERE D2.PREREQ = D.CODD) 
 
5 
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 C2.DURACAOC FROM CURSO C2 WHERE 
C2.NOMEC = 'Eng Elétrica') 
AND C.MENSC > (SELECT C2.MENSC FROM CURSO C2 WHERE C2.NOMEC = 
'Eng Elétrica') AND C.NOMEC <> 'Eng Elétrica'

Continue navegando