SóProvas


ID
2909506
Banca
FGV
Órgão
Prefeitura de Niterói - RJ
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Considere duas tabelas: T1, com atributos A e B, e T2, com atributos C e D. Nas duas tabelas as chaves primárias foram definida pelos atributos A e C, respectivamente. Não há outras chaves nessas tabelas além das chaves primárias.

Na tabela T2, o atributo D é uma chave estrangeira que referencia a tabela T1. Não há outras chaves estrangeiras nessas tabelas. As tabelas T1 e T2 estão perfeitamente normalizadas.

Sabe-se que agora deve haver um relacionamento 1:1 entre essas duas tabelas.

Assinale a opção que apresenta a providência necessária para que esse requisito seja atendido, de forma que o grau de normalização da tabela seja mantido.

Alternativas
Comentários
  • A descrição da questão, à primeira vista, parece um pouco complicada, mas a resolução é bem simples. Há uma chave estrangeira em T2 que referencia a chave primária de T1, só que o relacionamento deve ser 1:1. Do jeito que o cenário é inicialmente descrito, esse seria um relacionamento 1:n, pois não há nada que impleça que os valores da chave estrangeira se repitam. 

    Para que esse relacionamento seja corretamente implementado na cardinalidade 1:1, falta somente determinar que as ocorrências da chave estrangeira devem ser únicas, o que pode ser feito com a restrição unique. Não é necessário fazer o mesmo para o atributo referenciado A, pois ele já é a chave primária de T1, então seus valores não poderiam se repetir de qualquer forma.

  • GABARITO: D

    Chave Primária: referem-se aos conjuntos de um ou mais campos, cujos valores, considerando a combinação de valores em caso de mais de uma chave primária, nunca se repetem na mesma tabela.

    Para garantir que o atributo D se mantenha único (chave estrangeira que referenciando o atributo A), o SQL nos dá UNIQUE, que garante que todos atributos da mesma coluna (no caso coluna D), sejam únicos

  • Se D não for Unique, um insert de 2 tuplas em T2 com o mesmo atributo D transformará a relação em 1:N.

  • Já havia um relacionamento 1:N de A com D. A questão não especifica se o relacionamento 1:1 é o de A com D, de C com B, A com C ou outra combinação.

  • Gabarito: D

    "Pode-se adicionar a restrição UNIQUE a qualquer coluna que desejar, incluindo colunas de foreign keys.

    Essa é uma das estratégias possíveis para forçar relacionamentos do tipo 1 para 1 em tabelas separadas.

    Fazer isso não é tão comum, pois dados relacionados 1 para 1 são normalmente armazenados em uma mesma tabela do banco de dados." No link abaixo, está uma explicação mais detalhada, com tabela, explicando sobre a economia de espaço que isso também causa.

    Referência: https://pt.stackoverflow.com/questions/402678/chave-estrangeira-com-unique

  • https://docs.microsoft.com/pt-br/sql/relational-databases/tables/unique-constraints-and-check-constraints?view=sql-server-ver15