A importância das chaves primárias e o uso correto de chaves estrangeiras
Hoje vamos esclarecer uma dúvida muito comum entre nossos alunos sobre banco de dados: a utilização de chaves primárias e a organização de tabelas em relações muitos-para-muitos. Nosso aluno questionou se é possível ter valores duplicados em uma chave primária, especificamente em uma tabela de autoria de livros, onde o ISBN é usado como chave primária, mas apresenta duplicidade. Vamos desvendar esse mistério!
O que é uma chave primária?
Antes de tudo, é essencial entender que uma **chave primária** é um campo (ou conjunto de campos) que identifica de maneira única cada registro em uma tabela de banco de dados. Uma chave primária deve cumprir duas regras fundamentais: ser única e não nula.
O problema com a duplicidade no ISBN
Na situação apresentada pelo aluno, o ISBN, que é um número único atribuído a cada livro publicado, está sendo considerado como chave primária na tabela de autoria. No entanto, um livro pode ter vários autores. Isso significa que o mesmo ISBN pode aparecer várias vezes na tabela de autoria, o que viola a regra de unicidade da chave primária.
Uso de chave estrangeira e tabelas de junção
A solução ideal para este problema é utilizar o ISBN como uma **chave estrangeira** em uma tabela de junção. A chave estrangeira é um campo em uma tabela que aponta para a chave primária de outra tabela, estabelecendo um relacionamento entre elas.
Vejamos como isso pode ser organizado considerando uma relação muitos-para-muitos entre livros e autores:
Estrutura das Tabelas:
1. **Tabela Livros**
– **ISBN**: Chave Primária
– **Título**
– **Ano de Publicação**
2. **Tabela Autores**
– **ID Autor**: Chave Primária
– **Nome do Autor**
3. **Tabela LivroAutor**
– **ISBN**: Chave Estrangeira (referencia Livros)
– **ID Autor**: Chave Estrangeira (referencia Autores)
– **Chave Primária Composta**: (ISBN, ID Autor)
Exemplo de Dados:
**Tabela Livros**
| ISBN | Título | Ano de Publicação |
|———–|————————–|——————-|
| 978-3-16-148410-0 | A Arte da Guerra | 2000 |
| 978-0-13-235088-4 | Clean Code | 2008 |
**Tabela Autores**
| ID Autor | Nome do Autor |
|———-|——————-|
| 1 | Sun Tzu |
| 2 | Robert C. Martin |
**Tabela LivroAutor**
| ISBN | ID Autor |
|——————-|———-|
| 978-3-16-148410-0 | 1 |
| 978-0-13-235088-4 | 2 |
Conclusão
Utilizar o ISBN como chave primária na tabela de autoria resultaria em duplicidade devido à natureza muitos-para-muitos da relação entre livros e autores. A chave primária deve ser única e, neste caso, a tabela de junção “LivroAutor” com uma chave primária composta de ISBN e ID Autor resolve perfeitamente o problema, garantindo a integridade e a normalização do banco de dados.
Esperamos que esta explicação tenha ajudado a esclarecer como gerenciar relações muitos-para-muitos em bancos de dados e a importância de usar corretamente chaves primárias e estrangeiras. Até a próxima dúvida!
Prof. Washington Almeida
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
clique no link abaixo e inscreva-se gratuitamente:
Participe da conversa