7/5/2009
1
Modelagem de
Dados
Normalização
Normalização
Aula
10
1
Lembrando …
• Em um Sistemas de Banco de Dados:
•Banco de Dados = Coleção de Arquivos;
•Arquivo = Coleção de Registros;
•Registro = Coleção de Campos (Atributos);
•Campo = Coleção de Caracteres; e
•Caracter = Alfa‐numéricos ou símbolos.
• MODIFICAÇÕES/ALTERAÇÕES/ATUALIZAÇÕES
•Conceitos que têm sido utilizados por diferentes autores e fabricantes de Softwares Básicos e de Aplicação de maneiras diversas; Esses termos têm sido utilizados basicamente para associar operações de Exclusão e Inclusão em Arquivos ou Registros;
2
Defeito,
Erro e
Falha
3
Normalização
• O conceito de normalização foi introduzido por E. F.
Codd em 1970, como Primeira Forma Normal;
• A normalização é uma técnica, que consiste de um
processo matemático formal fundamentado na Teoria
d
dos Conjuntos;
• Através do processo matemático da normalização,
pode‐se substituir, gradativamente, um conjunto de
entidades e relacionamentos por um outro, mais
“adequado”, em relação a anomalias de atualização
(inclusão, alteração e exclusão);
4
Normalização
• Anomalias de Atualização em um BD podem causar pro‐
blemas tais como a ocorrência de: grupos repetitivos de
dados; dependências parciais de chave; redundâncias
desnecessárias de dados; perdas acidentais de informa‐
ções; dificuldades de representações de fatos da realida‐
d ( d l ) d dê i t t ib t des (modelos); e dependências entre atributos;
• Todas essas dificuldades podem ser reduzidas ou mini‐
mizadas através do uso da Técnica de Normalização;
• A utilização da Técnica de Normalização torna o Modelo
de Dados, que se estiver utilizando, bastante estável,
isto é sujeito a poucas Manutenções.
5
Normalização
• Exemplos:
–Anomalia de Inclusão ‐Ao ser incluído um novo cliente, ele tem que estar relacionado com uma venda;
–Anomalia de Exclusão ‐Ao ser excluído um cliente, os dados referentes as suas compras poderão se perdidos;
–Anomalia de Alteração ‐Caso algum fabricante de produto altere a faixa de preço de uma determinada classe de produtos, será preciso percorrer toda a entidade para se realizar múltiplas alterações;
7/5/2009
2
Normalização
• A Teoria da Normalização é tradicionalmente expressa
através de um Conjunto de Formas Normais, que
progressivamente otimizam as estruturas e os
conteúdos das relações;
• As Formas Normais são:
•Primeira forma Normal – 1FN
•Segunda forma Normal – 2FN
•Terceira forma Normal – 3FN
7
Normalização
• Observe o formulário de PEDIDOS de um determinado
vendedor :
FORMULÁRIO DE PEDIDO
Código do Vendedor: 1791 Nome do Vendedor: Aníbal da Silva Prazo de Entrega: 20 dias Data do Pedido: 10/01/2008
8
Normalização
• Podemos considerar que uma entidade formada com os dados presentes neste documento, terá a seguinte apresentação:
• PEDIDO
• Número do Pedido
• Prazo de Entrega
• Data do Pedido Cli
• Cliente • CGC
• INSCRICAO ESTUDUAL (IE)
• Código do Produto (*)
• Unidade (*)
• Quantidade do Produto (*)
• Descrição do Produto (*)
• Valor unitário do produto (*)
• Valor total do produto (*)
• Código do Vendedor
• Nome do Vendedor
(*) Atributos que se repetem no documento
9
Normalização
• Caso esta entidade fosse implementada como uma tabela em um banco de dados, as seguintes anomalias iriam aparecer:
• Anomalia de inclusão: ao ser incluído um novo cliente, o mesmo tem que estar relacionado a uma venda obrigatoriamente; ao ser cadastrado uma venda, o mesmo cliente deverá ser cadastrado novamente;
• Anomalia de exclusão: ao ser excluído um cliente,, os dados referentes as suas compras serão perdidas
• Anomalia de alteração: ao ser alterado por exemplo, o preço unitário de um determinado produto, será preciso percorrer todos os registros já cadastrados, e alterar o valor do mesmo produto N vezes;
• Estes são apenas alguns exemplos das anomalias que poderão acontecer.
10
Normalização
11
Primeira Forma
Normal
(1FN)
“cada ocorrência da chave primária deve corres‐
ponder a uma e somente uma informação de cada
atributo, ou seja, a entidade não deve conter grupos
repetitivos.”
ou
“uma tabela só estará na 1FN se nenhum dos
seus atributos tem domínio multivalorado.”
7/5/2009
3
Primeira Forma
Normal
(1FN)
• Para se obter entidades da 1FN, é necessário decom‐
por cada entidade não normalizada em tantas enti‐
dades quanto for o número de conjuntos de atribu‐
tos repetitivos.
• Nas novas entidades criadas, a chave primária é a
concatenação da chave primária original mais os atri‐
butos do grupo repetitivo visualizados como chave
primária deste grupo.
13
Primeira Forma
Normal
(1FN)
• Ao aplicarmos a 1FN sobre a entidade PEDIDO, obte‐mos mais uma entidade chamada ITEM‐DE‐PEDIDO, que
herdará os atributos repetitivos e destacados da
entidade PEDIDO.
14
Dependências
• Dependência Funcional :
–Dada uma entidade qualquer, dizemos que um atributo ou conjunto de atributos A é dependente funcional de um outro atributo B contido na mesma entidade, se a cada valor de B existir nas linhas da entidade em que aparece valor de B existir nas linhas da entidade em que aparece, um único valor de A. Em outras palavras, A depende funcionalmente de B.
–Exemplo: Na entidade PEDIDO, o atributo PRAZO‐DE‐ ENTREGA depende funcionalmente do NÚMERO‐DO‐ PEDIDO.
15
Dependências
• Dependência Total ou Parcial:
–Se apresenta com dependência total quando só depende de parte da chave primária concatenada e não dela como um todo.
l d dê l d d
–Exemplo: dependência total – Na entidade ITEM‐DO‐ PEDIDO, o atributo QUANTIDADE‐DO‐PRODUTO depende de forma total da chave primária NÚMERO‐DO‐PEDIDO + CODIGO‐DO‐PRODUTO.
16
Segunda Forma
Normal
(2FN)
• Com a finalidade de tornar ainda mais estável o modelo
de dados, a aplicação da 2FN sobre as entidades em
observação geram novas entidades, que herdarão a
chave parcial e todos os atributos que dependem desta
chave pparcial,, ou seja,j , uma entidade parap estar na 2FN
não pode ter atributos com dependência parcial em
relação à chave primária.
“Para uma tabela estar na 2FN ela deve estar na 1FN
e seus atributos dependerem funcionalmente da totali‐
dade da chave ou atributo determinante.”
17
Segunda Forma
Normal
(2FN)
• Exemplo:
–A entidade ITEM‐DO‐PEDIDO apresenta uma chave primária concatenada e por observação, notamos que os atributos UNIDADE, DESCRICAO‐DO‐PRODUTO e VALOR‐ UNITÁRIO dependem de forma parcial do atributo UNITÁRIO dependem de forma parcial do atributo CODIGO‐DOPRODUTO, que faz parte da chave primária.
–Logo, devemos aplicar a 2FN sobre esta entidade.
7/5/2009
4
Segunda Forma
Normal
(2FN)
• Quando aplicamos a 2FN sobre ITEM‐DO‐PEDIDO, será
criada a entidade PRODUTO que herdará os atributos
UNIDADE, DESCRICAO‐DO‐PRODUTO e VALOR‐UNITARIO
e terá como chave primária CODIGO‐DO‐PRODUTO.
19
Terceira
Forma
Normal
(3FN)
• Uma entidade está na 3FN se nenhum de seus atri‐
butos possui dependência transitiva em relação a
outro atributo da entidade que não participe da
chave primária, ou seja, não exista nenhum atributo
intermediário entre a chave primária e o próprio intermediário entre a chave primária e o próprio
atributo observado.
“Uma tabela estará na 3FN quando estiver na 2FN
e não houver dependência funcional transitiva entre
seus atributos.”
20
Terceira
Forma
Normal
(3FN)
• Ao retirarmos a dependência transitiva, devemos
criar uma nova entidade que contenha os atributos
que dependem transitivamente de outro e a sua
chave primária é o atributo que causou esta
dependência dependência.
• Além de não conter atributos com dependência
transitiva, entidades na 3FN não devem conter
atributos que sejam o resultado de algum cálculo
sobre outro atributo, que de certa forma pode ser
encarada como uma dependência funcional.
21
Terceira
Forma
Normal
(3FN)
• Exemplo:
–Na entidade PEDIDO, podemos observar que o atributo NOME‐DO‐VENDEDOR depende transitivamente do atributo CODIGO‐DO‐VENDEDOR que não pertence a chave primária.p
• Para eliminarmos esta anomalia devemos criar a
entidade VENDEDOR com seus atributos. Da mesma
forma e pelo mesmo motivo, também criaremos a
entidade CLIENTE.
22