SóProvas


ID
287623
Banca
INSTITUTO CIDADES
Órgão
UNIFESP
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de operação de União e Diferença, analise as seguintes afirmativas:

I. A operação de União não é comutativa.

II. A operação de União executa a união de duas relações compatíveis.

III. A operação de Diferença não é comutativa.

Podemos afirmar corretamente que:

Alternativas
Comentários
  • Segundo Date, as operações UNION, INTERSECT, TIMES E JOIN (mas não MINUS, aqui chamada de Diferença) são comutativas, ou seja, as expressões
    a UNION b
    e
    b UNION a
    são logicamente equivalentes.
  • Em matemática, comutatividade é uma propriedade de operações binárias, ou de ordem mais alta, em que a ordem dos operandos não altera o resultado final. Ou popularmente, onde a ordem dos fatores não altera o produto.
    E mesmo na aritmética existem exemplos de operações que não são comutativas, como a subtração e Divisão. "http://pt.wikipedia.org/wiki/Comutatividade"

    União (Union)

    O operador de união cria uma relação partindo de duas outras, levando as tuplas comuns e não comuns a ambas, desta forma aparecerão no resultado somente linhas únicas de uma ou outra relação e as informações duplicadas aparecerão somente uma vez.

    Uma característica é que somente é possível utilizar este operador caso as tabelas de origem possuam compatibilidade de união, ou seja, as tabelas devem ser equivalentes e gerem o mesmo tipo de resultado.

    "http://www.sqlmagazine.com.br/Colunistas/RicardoRezende/04_AlgebraRelacional_P1.asp"

    Sabendo isso é possível resolver a questão.

  • Acerca de operação de União e Diferença, analise as seguintes afirmativas: 
     
    I. A operação de União não é comutativa. (É comutativa, tanto faz A U B ou B U A)
     
    II. A operação de União executa a união de duas relações compatíveis. (Devem possuir as mesma colunas)
     
    III. A operação de Diferença não é comutativa. (Correto, A - B é diferente de B - A)
     
    Podemos afirmar corretamente que: 
     a) Todas as afirmativas estão corretas.
     b) Todas as afirmativas estão incorretas.
     c) Apenas a afirmativas I e II estão corretas.
     d) Apenas as afirmativas II e III estão corretas.
  • A explicacao do colega acima foi perfeita. So adicionando alguns comentarios:
    Definiçao: comutatividade é uma propriedade de operações binárias, em que a ordem dos operandos não altera o resultado final.
    Somente é possível utilizar este operador caso as tabelas de origem possuam compatibilidade de união, ou seja, as tabelas devem ser equivalentes e gerarem o mesmo tipo de resultado. A união permite realizar a operação entre duas tabelas contendo atributos diferentes, quando esta possuir o número e o tipo de atributos semelhantes, possibilitando a compatibilidade da união.
    E segundo Silberchatz, 2006:
    Para q 1 operacao de uniao "r U s" seja valida, sao exigidas 2 condicoes:
    1) as relacoes precisam ser da mesma aridade(msm nro de atributos).
    2) os dominios do io atributo de r e do io atributo de s precisam ser o msm, para todo i.
    Ou seja, precisamos garantir q as unioes sejam tomadas entre relacoes compativeis(ex.: nao faz sentido a uniao de cliente e cidades).
    E a operacao de diferencao nao eh comutativa.

  • Pessoal, ainda não entendi por que a alternativa I está incorreta.
    Imaginemos as tabelas e os registros abaixo:
    Pessoa_fisica(id, cpf, nome)
    Pessoa_juridica(id, cnpj, razao_social)

    pessoa_fisica:
    (1, 111.222.333.44, Maria)
    Pessoa_juridica
    (1, 57.038.832/0001-14, empresa xpto)

    select id, cpf, nome from pessoa_fisica
    UNION
    select id, cnpj, razao_social from pessoa_juridica, resulta em:
    nome das colunas: id, cpf, nome
    valores retornados:
    (1, 111.222.333.44, Maria)
    (1, 57.038.832/0001-14, empresa xpto)

    select id, cnpj, razao_social from
    pessoa_juridica
    UNION
    select id, cpf, nome from pessoa_fisica resulta em:
    nome das colunas: id, cnpj, razao_social
    valores retornados:
    (1, 57.038.832/0001-14, empresa xpto)
    (1, 111.222.333.44, Maria)

    O complicado é que fui procurar no Navathe e, de fato, na página 102 do livro da 6a. edição ele afirma que as operações de união e interseção são comutativas. No entanto, na mesma página ele dá brecha à dúvidas quando diz: "Adotaremos a convenção de que a relação resultante tem os mesmos nomes de atributo da primeira relação R". Ora, se os nomes dos atributos da relação resultante não são sempre os mesmos, como a operação de união pode ser comutativa, independentemente de executarmos A Union B, ou B Union A, tendo A e B, nomes de atributos diferentes?
    Esse é o tipo de questão que eu aceito o gabarito, por estar em algum livro renomado, mas não concordo.