| <<< Voltar | Avançar >>> |
1. Conceitos básicos sobre banco de dados relacional
Tabelas
Um banco de dados relacional é formado por tabelas.
| NrDoCliente | Nome | Endereço | CEP |
| 1 | José Manuel | Rua 15 de Novembro, Nr 125, Centro | 89022000 |
| 2 | Maria José | Rua Gen Sampaio, Nr 1185, Várzea | 56870320 |
| 3 | Severina Raimunda | Rua 23, Nr 15, Cidade Nova | 87032000 |
| 4 | Desidério Aureliano | Rua do Cemitério, S/N, Buraco Fundo | 15687320 |
Cada coluna da tabela armazena um tipo de dado e representa um campo do banco de dados. Cada linha armazena os dados de um cliente e representa um registro.
Chave primária
A tabela deve ter um campo que identifica o registro. Este campo é chamado de chave ou chave primária. Os dados da chave primária devem ser únicos e não devem haver dois ou mais registros que possuam os mesmos dados armazenados no campo que for a chave primária. Na nossa tabela de exemplo acima, a chave primária é o campo NrDoCliente. Uma chave pode ser formada juntando-se mais de um campo da tabela.
Chave estrangeira
Uma tabela também pode fazer referência a chave de uma outra tabela, quando isto acontece a chave da outra tabela é chamada chave estrangeira. Exemplo:
| NrDoPedido | NrDoCliente | Valor | Data |
| 1 | 5 | 200,00 | 050603 |
| 2 | 3 | 50,00 | 050603 |
| 3 | 1 | 175,00 | 060603 |
| 4 | 2 | 300,00 | 060603 |
Nesta tabela, o campo NrDoPedido é a chave primária e o campo NrDoCliente é uma chave estrangeira. Neste caso, a chave estrangeira serve para referenciar qual o cliente que fez o pedido, por isso ela contém a chave primária da tabela dos clientes. Como cada cliente tem um número de identificação único, fica fácil descobrir quem fez o pedido. É por esta razão que os dados da chave primária devem ser únicos para cada registro.
Esquemas
O conjunto dos desenhos de todas as tabelas do banco de dados chama-se esquema. Como mostrado nos exemplos acima, o esquema deve exibir campos, tipos de dados, chave primária e, se for o caso, chave estrangeira das tabelas. Não é obrigatório, mas também é interessante incluir alguns dados de exemplo. O esquema pode ser exibido em forma de desenho de tabelas, como mostrado nos exemplos acima, ou em forma de texto:
Cliente(NrDoCliente, Nome, Endereço, CEP)
observe que a chave primária está sublinhada. De modo semelhante, se a tabela tiver alguma chave estrangeira, esta deve estar sublinhada com uma linha pontilhada.
Relacionamentos
As chaves estrangeiras representam um relacionamento entre as tabelas. Existem três tipos de relacionamentos:
- de um para um;
- de um para muitos; e
- de muitos para muitos
O relacionamento de um para um significa que um registro em uma tabela só se relaciona com um registro na outra tabela. Como exemplo poderíamos citar uma tabela contendo clientes e uma tabela contendo endereços. Cada cliente só tem um endereço de residência e cada endereço refere-se a um cliente, assim o relacionamento entre estas tabelas será de um para um.
O relacionamento de um para muitos significa que um registro em uma tabela relaciona-se a muitos registros na outra tabela. Por exemplo, uma tabela clientes e uma tabela pedidos. Cada cliente pode fazer muitos pedidos, porém um pedido só pode ser feito por um cliente. Temos, assim, um relacionamento de um para muitos.
O relacionamento de muitos para muitos significa que muitos registros de uma tabela relacionam-se a muitos pedidos da outra tabela. Por exemplo, uma tabela livros e uma tabela autores. Um livro pode ser escrito por mais de um autor juntos e um autor pode escrever muitos livros. Este tipo de relacionamento, normalmente merece uma tabela própria. Assim, seria o caso criar as tabelas: Livros, Autores e LivrosAutores. A tabela LivroAutores teria chaves estrangeiras para as outras tabelas.
Normalmente as tabelas que descrevem objetos ou seres do mundo real possuem relacionamento de um para um ou de um para muitos (Clientes, Produtos, etc.) e as tabelas que descrevem transações possuem relacionamento de muitos para muitos (Pedidos).
Dicas para projetar um banco de dados relacional
Pense nas coisas do mundo real. Normalmente cada tipo de objeto ou ser com as mesmas características precisa de uma tabela própria. Por exemplo, todo cliente tem um nome, um endereço, uma identidade, um CPF. Logo, vemos a necessidade da tabela Clientes em nosso banco de dados.
Não se deve armazenar dados redundantes. Por exemplo, não seria funcional armazenar o endereço do cliente na tabela de pedidos. O cliente pode vir a fazer vários pedidos e toda vez que isto acontecer o endereço dele será digitado. Este procedimento pode gerar erro de digitação e inconsistência no banco de dados. Além do que, para atualizar o endereço do cliente teremos que fazê-lo em cada registro de pedido. Melhor seria colocar o endereço do cliente na tabela Clientes e colocar uma chave estrangeira na tabela Pedidos referindo-se ao cliente.
Cada campo deve ser preenchido somente com uma informação. Por exemplo, se tivermos uma tabela de pedidos não é o caso termos um campo que armazena todos os itens do pedido. Isto dificultará o processamento de pesquisas do tipo "quantas unidades de determinado item foram pedidas". Quando um campo exigir a digitação de vários itens de um mesmo tipo provavelmente seja o caso criar uma nova tabela. No caso, seria melhor criar uma tabela ItensDoPedido com uma chave estrangeira que referencie o número do pedido e que receba os itens do pedido um a um.
Escolha bem as chaves primárias. Como já explicado acima, os dados da chave primária devem ser únicos para cada registro.
Visualize os relatórios que serão exigidos. Para isto é uma boa idéia conversar com quem vai realmente usar o banco de dados. Veja se o banco tem todos os dados e ligações necessárias entre as tabelas para responder os relatórios necessários.
Evite campos nulos. Se isto ocorrer, crie uma nova tabela de modo que, quando for necessário, os dados serão inseridos. Por exemplo, você pode criar uma tabela Comentários para armazenar um possível comentário sobre um determinado produto. Isto evitará a criação de um campo comentários na tabela produtos, o qual só terá dados nos produtos comentados.
| <<< Voltar | Avançar >>> |