Pedro foi contratado como desenvolvedor de software de uma empresa. Em seu...

Pedro foi contratado como desenvolvedor de software de uma empresa. Em seu primeiro dia de trabalho ele se deparou com o DER (Diagrama Entidade-Relacionamento), que representa os dados de um sis...


Pedro foi contratado como desenvolvedor de software de uma empresa. Em seu primeiro dia de trabalho ele se deparou com o DER (Diagrama Entidade-Relacionamento), que representa os dados de um sistema de controle de malotes. Foi solicitado a Pedro relatório para o sistema contendo os seguintes dados: o nome de todos os funcionários que enviaram os malotes, o código dos malotes enviados, a descrição de seus conteúdos e a situação dos malotes. Para a geração do relatório, Pedro tem que fazer uma consulta utilizando o comando SELECT da linguagem SQL.

Conhecidos o modelo conceitual de dados e os dados necessários para a tarefa de Pedro, o comando SELECT que ele deve executar para realizar a consulta e produzir o relatório corretamente é

🚀 Desbloqueie a explicação completa

Veja comentários detalhados e resoluções exclusivas para entender o gabarito desta questão.

  • Matheus Fernandes
    Matheus Fernandes
    31/12/1969 • 21:00
    Gabarito: d)

    Para resolver essa questão, Pedro precisa utilizar o comando SELECT da linguagem SQL para fazer a consulta e gerar o relatório solicitado. Vamos analisar cada opção apresentada:

    a) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS ON (CODIGO_CONTEUDO = CODIGO_CONTEUDO) INNER JOIN FUNCIONARIOS ON (MATRICULA = MATRICULA);
    Nesta opção, há um erro na cláusula INNER JOIN, pois não está especificando corretamente a relação entre as tabelas.

    b) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES, CONTEUDOS, FUNCIONARIOS WHERE (CODIGO_CONTEUDO = CODIGO_CONTEUDO) AND (MATRICULA = MATRICULA);
    Nesta opção, também há um erro na cláusula WHERE, pois não está especificando corretamente a relação entre as tabelas.

    c) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS INNER JOIN FUNCIONARIOS ON (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) ON (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
    Nesta opção, há um erro na forma como os INNER JOIN estão sendo utilizados, pois não estão corretamente estruturados.

    d) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS ON (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) INNER JOIN FUNCIONARIOS ON (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
    Esta é a opção correta. Aqui, os INNER JOIN estão corretamente estruturados, especificando a relação entre as tabelas MALOTES, CONTEUDOS e FUNCIONARIOS de acordo com as chaves primárias e estrangeiras.

    e) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES, CONTEUDOS, FUNCIONARIOS INNER JOIN WHERE (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) AND (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
    Nesta opção, há um erro na forma como o INNER JOIN está sendo utilizado, pois não está corretamente estruturado.

    Portanto, a opção correta é a letra d), que apresenta o comando SELECT corretamente estruturado para a consulta solicitada por Pedro.
🔒
Conteúdo restrito

Cadastre-se para visualizar comentários e resoluções.

Criar conta grátis

Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência. Política de Privacidade.