SóProvas


ID
770344
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Em um banco de dados relacional, com as relações expressas no código a seguir e utilizando-se apenas as operações de álgebra relacional união, interseção, diferença, junção natural, projeção e seleção, a consulta “Qual a profissão dos clientes que trabalham em alguma empresa de nome ALPHA”, para ser processada, exige, ao menos, a operação de interseção das relações cliente, trabalha e empresa.

cliente (cpf, profissao)
trabalha (cpf, cnpj, datacontratacao)
empresa (cnpj, nome, endereco)

Alternativas
Comentários
  • A questão está ERRADA. A operação de interseção não é exigida, pois o resultado pode ser obtido apenas com junção natural, seleção e projeção. Por exemplo:
    PROJEÇÃOprofissao (SELEÇÃOnome='ALPHA'(cliente JUNÇÃO NATURAL trabalha JUNÇÃO NATURAL empresa))
    Nesse caso, a junção natural irá fazer a relação pelos campos comuns quando idênticos e a seleção irá escolher . Vale notar que está se assumindo que cpf, (cpf,cnpj) e cnpj são as chaves primárias. Caso não sejam, não há como resolver a questão, pois falta informação na questão (dependendo de quais forem as chaves primárias, a questão pode estar certa ou errada).
  • Alguém comenta plz.
  • Oi Pessoal!
    Ao meu ver essa questão pegou no Português,  quando o enunciado diz: "exige, ao menos, a operação de interseção das relações cliente, trabalha e empresa."
    Note que a EXPRESSÃO "ao menos" significa “no mínimo” , ou seja, também conseguiremos realizar o que a questão pede.
    Por isso acho que a questão está correta.
    Por favor, se alguém discordar da minha interpretação, me corrija.

    Bons estudos
  • questão #@$@###!
    o cara que fez é bem imaginativo mesmo hehehehe
    em oracle ficaria assim:
     
    select c.cpf from cliente c 
    intersect
    select t.cpf from trabalha t inner join empresa e on t.cnpj = e.cnpj where
    e.nome = 'ALPHA';

    infelizmente, não dá pra dizer que está errada...
  • Do jeito que está colocado, parece que ele quer fazer uma interseção entre as três relações - para ser processada, exige, ao menos, a operação de interseção das relações cliente, trabalha e empresa - ... ¬¬ ... ERRADO NA HORA !!! Sem nem pensar.

    Tinha tudo para ser uma boa questão ... Mas o português tá uma merda.
  • Essa questão é realmente complicada pelo português. É possível fazê-la usando a interseção das três tabelas e abaixo eu mostro como, mas eu tenho outra consideração a fazer.

    Projeção de Cliente em CPF. Ficamos somente com CPF. Vou chamar de PC
    Projeção de Tabalha em CPF. Ficamos somente com CPF. Vou chamar de PT
    PC interseção PT = CPF comum das duas. Vou chamar de iCPF (primeira interseção)
     
    Join entre Trabalha e iCPF pelo CPF. Vou chamar de iCPFCNPJ
     
    Projeção de iCPFCNPJ em CNPJ. Vou chamar de PCNPJ
    Projeção de Empresa em CNPJ; Vou chamar de PECNPJ
     
    PECNPJ intersceção PCNPJ = iCNPJ (indiretamente, interseção do resultado das duas primeiras com a terceira)
     
    Temos todos os CNPJs comuns.
     
    Join entre iCNPJ e empresa onde nome = ALPHA.
     
    É possível fazer com as interseções. Uma coisa que precisamos pensar a respeito é: se um join possui uma interseção dentro dele.
    Explicando melhor: se academicamente, um join é uma operação que faz uma interseção. Eu não sei se procede, se proceder, a questão nem precisaria de análise.

    Espero ter ajudado.
  • Na minha opinião, a questão está incorreta.  

    De acordo com o Navathe, 6ª Edição:

    "It has been shown that the set of relational algebra operations {σ, π, ∪, ρ, –, ×} is a
    complete set; that is, any of the other original relational algebra operations can be
    expressed as a sequence of operations from this set. For example, the INTERSECTION
    operation can be expressed by using UNION and MINUS as follows:
    R ∩ S ≡ (R ∪ S) – ((R – S) ∪ (S – R))"

    Logo, não é necessário processar a operação de interseção.

    Att.