Modelagem de dados

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1245 palavras )
  • Download(s) : 0
  • Publicado : 7 de abril de 2012
Ler documento completo
Amostra do texto
Modelagem de Dados - Final (Normalização)


Normalização é um processo baseado nas chamadas formais normais. Uma forma normal é uma regra de deve ser aplicada na construção das tabelas do banco de dados para que estas fiquem bem projetadas. Existem quatro formas normais. Falarei sobre as três primeiras, sendo as principais.


Com o banco de dados já pronto, aplica-se as três formas normaisem cada tabela, ou grupo de tabelas relacionadas. Para usar a segunda forma, deve-se obrigatoriamente ter aplicado a primeira e assim por diante, pois uma depende da outra para funcionar. As quais são:


1 1ª Forma Normal: Verificação de Tabelas Aninhadas.


Para uma tabela estar na primeira forma normal ela não deve conter tabelas aninhadas. Um jeito fácil de verificar esta norma é fazeruma leitura dos campos das tabelas fazendo a pergunta: Este campo depende de qual?


Vamos exemplificar, com a tabela Venda.


Venda (Codvenda, Cliente, Endereço, CEP, Cidade, Estado, Telefone, Produto, Quantidade, Valor unitário, Valor final).


A tabela Venda, deve armazenar informações da venda. Pois bem, verificando o campo Cliente, sabemos que ele depende de Codvenda, afinal paracada Venda há um cliente. Vendo o campo Endereço, podemos concluir que ele não depende de Codvenda, e sim de Cliente, pois é uma informação referente particularmente ao cliente. Não existe um endereço de venda, existe sim um endereço do cliente para qual se fez a venda. Nisso podemos ver uma tabela aninhada. Os campos entre colchetes são referentes ao cliente e não á venda.


Venda (Codvenda,[Cliente, Endereço, CEP, Cidade, Estado, Telefone, Produto, Quantidade, Valor unitário, Valor final].).


A solução é extrair estes campos para uma nova tabela, adicionar uma chave-primária à nova tabela e relacioná-la com a tabela Venda criando uma chave-estrangeira.

Ficaria desta forma:

Cliente (Codcliente, Nome, Endereço, CEP, Cidade, Estado, Telefone).


Venda (Codvenda, Codcliente,Produto, Quantidade, Valor unitário, Valor final).


Agora aplicamos novamente á primeira forma normal as duas tabelas geradas. Uma situação comum em tabelas de cadastro é o caso Cidade-Estado. Analisando friamente pela forma normal, o Estado na tabela Cliente, depende de Cidade. No entanto Cidade, também depende de Estado, pois no caso de a cidade ser Curitiba o estado sempre deverá ser Paraná,porém se o Estado for Paraná, a cidade também poderá ser Londrina. Isso é o que chamamos de Dependência funcional: é onde aparentemente, uma informação depende da outra. No caso Cidade-Estado a solução é simples:


Extraímos Cidade e Estado, de Cliente e geramos uma nova tabela. Em seguida, o mesmo processo feito anteriormente: adicionar uma chave-primária à nova tabela e relacioná-la criandouma chave-estrangeira na antiga tabela.


Cidade (Codcidade, Nome, Estado).


Cliente (Codcliente, Codcidade, Nome, Endereço, CEP, Telefone).


Venda (Codvenda, Codcliente, Codcidade, Produto, Quantidade, Valor unitário, Valor final).


Seguindo com o exemplo, a tabela Cliente encontra-se na uma forma normal, pois não há mais tabelas aninhadas. Verificando Venda, podemos enxergar maisuma tabela aninhada. Os campos entre colchetes são referente á mesma coisa: Produto de Venda


Venda (Codvenda, Codcliente, Codcidade, [Produto Quantidade, [Valor unitário, Valor final]].).


Na maioria das situações, produtos têm um valor previamente especificado. O Valor unitário depende de Produto. Já a Quantidade (campo entre Produto e Valor unitário) não depende do produto e sim davenda.


Cidade (Codcidade, Nome, Estado).


Cliente (Codcliente, Codcidade, Nome, Endereço, CEP, Telefone).


Produto (Codproduto, Nome, Valor unitário).


Venda (Codvenda, Codcliente, Codcidade, Codproduto, Quantidade, Valor final).


Passando a tabela Venda pela primeira forma normal, obtivemos três tabelas. Vamos á próxima forma


2 2ª Forma Normal: Verificação de Dependências...
tracking img