quarta-feira, 24 de março de 2010

Quando se inicia a utilização de bases de dados, existe tendência para considerar apenas uma tabela. No nosso exemplo poderíamos considerar apenas uma tabela com todas as vendas dos vários livros, incluindo toda a informação restante. Na verdade, isso obriga à repetição de informação (redundância): a informação sobre um livro que apresenta várias repete-se em cada venda. É importante criar tabelas que mantenham o mínimo de informação, ao mesmo tempo que mantemos uma base de dados fácil de usar e flexível. Para conseguir, é necessário utilizar várias tabelas, o que torna a base de dados mais eficiente.
Para obtenção das várias tabelas do modelo relacional podemos começar por identificar tudo aquilo sobre o que queremos guardar informação na nossa base de dados - as entidades. No exemplo da editora identificamos: Vendas, Livros, Colecção, Revendedores, Autores e Nacionalidades. seguidamente, identificamos as várias características de cada uma das entidades: Nome, Telefone, Data, Edição, etc. (consulte a imagem seguinte). Em alternativa, pode-se partir de uma tabela inicial, dividindo-a em várias tabelas através de um processo que se chama Normalização. Para uma informação mais pormenorizada sobre estes assuntos consulte o livro Desenho e Implementação de Bases de Dados com Ms Access XP (Centro Atlântico), nos capítulos 4 e 5 da parte I.
Não é suficiente termos identificadas as tabelas necessária. As tabelas do modelo relacional relaciona-se através da existência de todos os relacionamentos existentes. Na imagem acima (e no Access), estes relacionamentos indicam-se através das linhas que ligam os campos das tabelas que se relacionam. Por exemplo, CodRevendedor tabela Vendas relaciona-se com CodRevendedor da tabela Revendedores.
Existem três tipos de relacionamentos, considerando o número de registos de uma tabela que se relacionam com registos de outras tabelas:
  • 1 para 1 (designam-se por 1:1)
  • 1 para muitos (designam-se por 1:M ou 1:infinito)
  • muitos para muitos (designam-se por N:M ou infinito:infinito)

Os relacionamentos de 1:1 são raros e não existe nenhum exemplo no nosso caso da base de dados Editora. Este tipo de relacionamentos acontece quando cada registo de uma tabela está relacionado com um registo da outra tabela e vice-versa.

Sem comentários:

Enviar um comentário