TRABALHO_POS_BANCO_DADOS.pdf

Embed Size (px)

Citation preview

  • 8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf

    1/5

     

    TRABALHO 

    ESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE DISCIPLINA: PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS DOCENTE: PROF RENATO CORTES DISCENTE: ALEX FERNANDES DA SILVA

  • 8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf

    2/5

     A) Código e nome das disciplinas com carga horária entre 3 e 5 inclusive e que não sejam daárea da saúde.

    SELECT CodD, NomeD

    FROM Disciplina

    WHERE (CargaD BETWEEN 3 AND 5) AND (AreaD NOT IN ('Saúde'))

    B) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas porprofessores doutores.

    SELECT DISTINCT D.NomeD

    FROM Grade G

    INNER JOIN Disciplina D ON D.CodD = G.CodD

    INNER JOIN Professor P ON P.CodP = G.CodP

    WHERE (D.CargaD < 5) AND (P.TituloP = 'Doutor')

    C) Salas onde haverá aulas cujos cursos possuam duração superior a 3 anos e cujas disciplinasnão sejam nem da área Matemática, nem de Saúde e nem de Humanas e cujo professor sejaPaulo, Joaquim e Juliana.

    SELECT G.Sala

    FROM Grade GINNER JOIN Disciplina D ON D.CodD = G.CodD

    INNER JOIN Professor P ON P.CodP = G.CodP

    WHERE (D.CargaD > 3) AND (D.AreaD NOT IN ('Matemática','Saúde','Humanas'))

  • 8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf

    3/5

    D) Nomes dos Professores que não ministram nenhuma matéria.

    SELECT P.NomeP

    FROM Professor PLEFT JOIN Grade G ON G.CodP = P.CodP

    WHERE G.CodD is NULL

    E) Nomes das disciplinas e o nome dos respectivos pré-requisitos.

    SELECT D2.NomeD DISCIPLINA,D1.NomeD PRE_REQUISITO

    FROM Disciplina D1

    INNER JOIN Disciplina D2 ON D2.PreReqD = D1.CodD

    F) Nome das disciplinas que possuam carga horária maior que todas as disciplinas da área dematemática.

    SELECT D.NomeD FROM Disciplina DWHERE D.CargaD > (

    SELECT MAX(D.CargaD)

    FROM Disciplina D

    WHERE D.AreaD = 'Matemática'

    )

    G) Código de cada disciplina, com a quantidade de cursos em que a mesma é oferecida.

    SELECT D.CodD DOC_DISCIPLINA, COUNT(G.CodC) QUANTIDADE_CURSOS

    FROM Grade G

    INNER JOIN Disciplina D ON D.CodD = G.CodD

    GROUP BY D.CodD

  • 8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf

    4/5

     

    H) Carga horária média das área com carga horária média maior ou igual a 3.

    SELECT AVG(D.CargaD) CARGA_HORARIA_MEDIA

    FROM Disciplina D

    WHERE (D.AreaD != 'NULL') AND (D.CargaD >= 3)

    I) Nome das disciplinas que não têm pré-requisitos e que não são pré-requisitos.

    SELECT D2.NomeD DISCIPLINA

    FROM Disciplina D1

    RIGHT JOIN Disciplina D2 ON D2.PreReqD = D1.CodD

    WHERE (D1.NomeD IS NULL)

    AND (D2.NomeD NOT IN (

    SELECT DISTINCT D1.NomeD DISCIPLINA

    FROM Disciplina D1

    INNER JOIN Disciplina D2 ON D2.PreReqD = D1.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 C.DuracaoC

  • 8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf

    5/5

      FROM Curso C

    WHERE C.NomeC = 'Eng Elétrica'

    )

    )

    AND (C.MensC > (

    SELECT C.MensC

    FROM Curso C

    WHERE C.NomeC = 'Eng Elétrica'

    )

    )