Beruflich Dokumente
Kultur Dokumente
Amigos, uma grande falha dos desenvolvedores web é achar que basta aprender a
programar. A realidade do nosso mercado é que apenas um desenvolvedor produz
todo o projeto sozinho, do início ao fim. Conseqüentemente, são poucos os que
fazem análise, modelagem do banco de dados, layout, programação, testes, etc.
Logo, se o profissional sabe apenas programar, fatalmente ele fará um projeto que
não seguirá normas, padrões, etc.
Porque vejo que muitos projetos são feitos com erros graves de modelagem de
banco de dados. Não estou dizendo que não funcionam. Até funcionam! Mas
precariamente, sem consistência e com muito mais lógica do que deveriam.
Esse artigo é direcionado àqueles que desenvolvem sistemas web e que ainda não
têm esses conceitos. Não tenho a pretensão de fazer desse artigo uma verdadeira
apostila ou livro. O objetivo é mostrar algumas técnicas e os principais erros
cometidos e tão questionados em fóruns.
Iniciarei hoje mostrando algumas dicas para a transição do modelo conceitual para
o modelo lógico.
Relacionamento "um-para-um".
Contexto:
Modelo conceitual:
Modelo lógico:
Explicação:
Como não nos interessa manter dados do estoque senão sua quantidade, estoque
não é uma entidade e por isso seus atributos (quantidade) são incorporadas pela
entidade produto.
Observações:
Relacionamento "um-para-muitos"
Contexto:
Modelo conceitual:
Modelo lógico:
Explicação:
Observação:
Relacionamento "muitos-para-muitos"
Contexto:
Modelo conceitual:
Modelo lógico:
Explicação:
Observação:
Nessa tabela intermediária, você pode colocar atributos que identifiquem a relação
entre as entidades. Exemplo: ano e semestre que o aluno está cursando a
disciplina.
Auto-relacionamento "um-para-muitos"
Contexto:
Modelo conceitual:
Modelo lógico:
Explicação:
Auto-relacionamento "muitos-para-muitos"
Contexto:
Modelo conceitual:
Modelo lógico:
Explicação:
Relacionamento Generalização/Especialização
Contexto:
Modelo conceitual:
Modelo Lógico:
Explicação:
Se fizéssemos somente três tabelas (uma para cada tipo), teríamos que repetir os
campos em comum. Em princípio, isso é errado! O correto é colocarmos os atributos
comuns numa tabela abstrata e nas tabelas mais concretas somente os atributos
inerentes a ela.
Existem outros tipos de relacionamento, como agregação e ternário, mas não são
muito comuns e por isso não tratarei.