Um analista de banco de dados está projetando o esquema de ...

Próximas questões
Com base no mesmo assunto
Q3035480 Banco de Dados
Um analista de banco de dados está projetando o esquema de um novo sistema de gerenciamento de biblioteca. Para representar a relação entre 'Livros' e 'Autores', na qual um livro pode ter vários autores e um autor pode escrever vários livros, qual estrutura de dados o analista deve utilizar?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Para resolver a questão apresentada, é essencial compreender o modelo relacional e a forma como as relações entre entidades são representadas em um banco de dados.

A questão aborda o relacionamento muitos-para-muitos entre as entidades 'Livros' e 'Autores', onde um livro pode ter vários autores e um autor pode escrever vários livros.

A alternativa correta é: B - Uma tabela de junção entre 'Livros' e 'Autores'.

Justificativa da alternativa correta:

Para representar um relacionamento muitos-para-muitos no modelo relacional, utilizamos uma tabela de junção (ou tabela associativa). Esta tabela contém chaves estrangeiras que referenciam as tabelas primárias ('Livros' e 'Autores'), criando uma relação de ligação entre elas. Por exemplo, a tabela de junção pode ter colunas como idLivro e idAutor, cada uma referenciando as respectivas tabelas de 'Livros' e 'Autores'.

Análise das alternativas incorretas:

A - Uma tabela com uma chave estrangeira apontando para si mesma: Essa estrutura é utilizada para relações hierárquicas dentro da mesma entidade, como uma relação de supervisão em uma tabela de funcionários, mas não para relacionar duas entidades distintas como 'Livros' e 'Autores'.

C - Um atributo multivalorado na tabela 'Livros': Atributos multivalorados não são uma prática recomendada em modelos relacionais, principalmente porque não oferecem a flexibilidade e a integridade referencial necessárias para relacionamentos complexos como muitos-para-muitos.

D - Um índice único na tabela 'Autores': Índices são usados para otimizar consultas e garantir a unicidade de valores em uma coluna, mas não são adequados para representar relações entre duas entidades distintas.

Compreendendo essas estruturas, você poderá identificar corretamente a necessidade de uma tabela de junção para resolver problemas de relacionamentos muitos-para-muitos em um banco de dados relacional.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GABARITO: LETRA B

Falou em relacionamento N:N tem que ter outra tabela associativa.

Questão: O relacionamento entre duas entidades com cardinalidade muitos-para-muitos não pode ser implementado diretamente em um banco de dados relacional convencional, sendo necessário, para tanto, o uso de uma tabela adicional, que armazena chaves estrangeiras das duas entidades que se relacionam.

## A resposta correta é:

**B) Uma tabela de junção entre 'Livros' e 'Autores'.**

### Por que a tabela de junção é a melhor opção?

Uma **tabela de junção** (também conhecida como tabela de relacionamento) é a estrutura de dados mais adequada para representar uma relação muitos-para-muitos em um banco de dados relacional, como a relação entre livros e autores.

**Por que as outras opções não são adequadas:**

* **A) Uma tabela com uma chave estrangeira apontando para si mesma:** Isso criaria uma hierarquia circular, o que não é possível em um modelo relacional.

* **C) Um atributo multivalorado na tabela 'Livros':** Atributos multivalorados violam a primeira forma normal (1FN) da normalização de dados, o que pode levar a inconsistências e redundâncias.

* **D) Um índice único na tabela 'Autores':** Um índice único garante que não haja duplicações em um campo específico, mas não resolve o problema de representar a relação muitos-para-muitos.

### Como funciona a tabela de junção?

A tabela de junção terá duas chaves estrangeiras: uma referenciando a tabela 'Livros' e outra referenciando a tabela 'Autores'. Cada linha dessa tabela representará uma associação entre um livro específico e um autor específico.

**Exemplo:**

| ID | Livro_ID | Autor_ID |

|---|---|---|

| 1 | 101 | 201 |

| 2 | 101 | 202 |

| 3 | 102 | 201 |

Neste exemplo:

* O livro com ID 101 foi escrito pelos autores com IDs 201 e 202.

* O livro com ID 102 foi escrito pelo autor com ID 201.

**Vantagens da tabela de junção:**

* **Normalização:** Adota a primeira forma normal, evitando redundância e inconsistências.

* **Flexibilidade:** Permite adicionar ou remover autores de um livro de forma fácil.

* **Integridade referencial:** As chaves estrangeiras garantem a integridade dos dados, evitando a existência de livros ou autores não relacionados.

**Em resumo:**

A tabela de junção é a estrutura mais eficiente e adequada para representar a relação muitos-para-muitos entre livros e autores em um banco de dados relacional, garantindo a normalização, flexibilidade e integridade dos dados.

Fonte: Gemini

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo