Dividir as informações em tabelas
Para dividir as informações em tabelas, escolha as maiores entidades ou tópicos. Por exemplo, após localizar e organizar informações relativas a um banco de dados de venda de produto, a lista preliminar deve ter a seguinte aparência:
As maiores entidades mostradas aqui são os produtos, os fornecedores, os clientes e os pedidos. Assim, há sentido em começar pelas seguintes tabelas: uma de fatos sobre produtos, uma de fatos sobre fornecedores, uma de fatos sobre clientes, e uma de fatos sobre pedidos. Embora essas tabelas não completem a lista, são um ponto de partida. Continue e refinar essa lista até ter um design que funcione bem.
Ao examinar pela primeira vez a lista de itens, você talvez se sinta tentado a colocá-los todos em uma única tabela, em vez de ter quatro, como mostrado na ilustração anterior. Você saberá aqui por que isso não é recomendado. Pense um momento na tabela mostrada a seguir:
Nesse caso, cada linha contém informações sobre o produto e seu fornecedor. Como pode haver vários produtos de um mesmo fornecedor, o nome e o endereço do fornecedor deverão ser repetidos inúmeras vezes. Isso consome espaço em disco. Gravar as informações do fornecedor uma única vez em uma tabela Fornecedores separada e, em seguida, vincular essa tabela à tabela Produtos, é uma solução muito melhor.
Um segundo problema com esse design advém da necessidade de se modificarem as informações sobre o fornecedor. Por exemplo, supondo seja necessário alterar o endereço de um fornecedor. Como o endereço aparece em vários lugares, você talvez altere acidentalmente o endereço em um local, porém se esqueça de alterá-lo nos outros. Gravar o endereço do fornecedor em apenas um local resolve esse problema.
Ao criar seu banco de dados, tente sempre registrar cada fato apenas uma vez. Quando se pegar repetindo a mesma informação em mais de um local, como o endereço de determinado fornecedor, coloque a informação em uma tabela separada.
Finalmente, suponhamos que haja apenas um produto fornecido pela Coho Winery, e que você deseje excluir o produto, retendo, porém, o nome do fornecedor e as informações de endereço. Como excluir o registro do produto sem também perder as informações do fornecedor? Isso não é possível. Como cada registro contém fatos sobre um produto, assim como fatos sobre o fornecedor, não é possível excluir um sem eliminar o outro. Para manter esses fatos de maneira distinta, separe essa tabela em duas: uma tabela de informações sobre o produto, e uma outra tabela de informações sobre o fornecedor. A exclusão do registro do produto deve eliminar apenas os fatos sobre o produto, não os fatos sobre o fornecedor.
Após a seleção do tópico a ser representado na tabela, as colunas da tabela só devem armazenar fatos sobre esse tópico. Por exemplo, a tabela de produto só deve armazenar fatos sobre produtos. Como o endereço do fornecedor é um fato sobre o fornecedor, e não um fato sobre o produto, pertence à tabela do fornecedor.


No comments:
Post a Comment