Na criação de esquemas de bancos de dados relacionais a partir de modelos/diagramas de entidades e relacionamentos, a implementação física de relacionamentos M:N é usualmente feita por meio de
- A)chaves primárias.
Errada, porque chaves primarias identificam registros, mas nao substituem a necessidade de uma tabela intermediaria para representar um relacionamento M:N.
- B)índices não únicos.
Errada, porque indice nao unico pode ajudar em desempenho ou busca, mas nao implementa por si so a modelagem de um relacionamento muitos-para-muitos.
- C)restrições de validação.
Errada, porque restricoes de validacao servem para impor regras de consistencia, nao para criar a estrutura relacional que representa o M:N.
- D)tabelas.
Certa, porque relacionamentos M:N sao normalmente implementados por meio de uma tabela de associacao, que separa o problema em dois 1:N.
- E)triggers.
Errada, porque triggers automatizam regras e eventos, mas nao sao a forma padrao de implementar fisicamente um relacionamento M:N.
Gabarito: D
Quando voce sai do modelo entidade-relacionamento e vai para o esquema relacional, alguns relacionamentos precisam ser "traduzidos" para tabelas. O caso mais clássico é o relacionamento muitos-para-muitos (M:N), porque ele nao cabe diretamente em uma unica chave estrangeira de uma das tabelas envolvidas. A solução usual, na modelagem e na implementação fisica, é criar uma tabela intermediaria, tambem chamada de tabela de associacao ou tabela de junção. Essa tabela guarda as chaves primarias das entidades relacionadas e, muitas vezes, outros atributos do proprio relacionamento. Assim, o M:N vira dois relacionamentos 1:N, o que o banco relacional entende bem e sem drama. Por isso o gabarito esta na alternativa D. Em termos praticos, a tabela intermediaria materializa o relacionamento e permite controlar a integridade referencial entre as entidades. E um ponto bem conhecido na teoria de bancos relacionais e na modelagem de dados, amplamente ensinado em livros-texto e cobrado em provas da FGV. As outras opções tentam confundir voce com recursos de banco, mas nenhum deles resolve sozinho a representacao padrao de um M:N. Chave primaria, indice, restricao e trigger podem ate participar do desenho, mas a estrutura central para esse caso e mesmo a tabela associativa.