As formas normais são técnicas de modelagem de dados que
visam garantir a facilidade na busca de informações, a integridade dos dados, e
a manutenibilidade em um modelo ER (Entidade-Relacionamento).
Primeira Forma Normal (1FN)
Uma relação (tabela) está na primeira forma normal, se nos
seus campos contiverem apenas valores atômicos. Cada campo da tabela deve
guardar valores únicos. A tabela deve possuir chave primária e não devem haver
registros iguais. Observe o exemplo abaixo:
Cliente
–
id_cliente =
1
–
nome = Maria
–
telefone = 1223-1112
–
endereço =
Rua Silva Martins, 76, Centro,
41923-845
A relação acima não está na Primeira forma normal.
Podemos ver que existem informações demais no campo
endereço.
"Uma tabela está na 1FN, se e somente se, não possuir
atributos multivalor."
Normalizando para a primeira forma teriamos:
Cliente
–
id_cliente =
1
–
nome = Maria
–
telefone = 1223-1112
–
endereço =
Rua Silva Martins
–
número =
76
–
bairro = Centro
–
cep = 41923-845
Pronto, agora podemos dizer que todos os campos possuem
valores atômicos e que deste modo, está na Primeira Forma Normal.
Segunda Forma Normal (2FN)
Uma tabela está na segunda forma normal, se ela estiver na
primeira e todos os seus atributos forem totalmente relevantes para a chave
primária e dependentes da mesma. Em outras palavras, todos os atributos da
tabela, devem ser dependentes da chave primária e semânticamente possam ser
representados por ela. Caso a chave-primária seja composta e hajam atributos
dependentes de parte dela, estes atributos devem ser movidos para uma outra
tabela.
Motorista
–
id_motorista =
1
–
nome =
João
–
marca_do_carro =
Corsa
–
cor_do_carro = Branco
–
tipo_do_carro = Sedã
Observe que temos várias colunas contendo informações sobre o
carro na tabela Motorista.
Para estar na Segunda Forma Normal, devemos remover tudo o
que não for relavante para a chave primária (id_motorista), para uma outra
tabela. E na tabela atual inserir apenas uma identificação para o registro
correspondente ao carro escolhido.
Motorista
–
id_motorista =
1
–
nome =
João
–
id_carro = 1
Carro
–
id_carro = 1
–
marca =
Corsa
–
cor = Branco
–
tipo = Sedã
Desta forma colocamos as informações sobre o carro em uma
nova tabela.
Terceira Forma Normal (3FN)
Definimos a Terceira Forma Normal quando a tabela está na
segunda e nenhum dos seus atributos não-chave dependem de outros atributos
não-chave. Para estar na terceira forma, nenhum atributo pode depender de outro
atributo para compor o seu valor.
Para reduzir anormalizades, este valor não deve ser
armazenado, e sim, processado.
Vamos ao exemplo:
Pedido
–
id_pedido = 1
–
id_produto = 2134
–
quantidade = 5
–
valor_unitario = 10,00
–
total =
50,00
O exemplo acima não está na terceira forma normal porque o
atributo 'total' precisa que os atributos não-chave 'quantidade' e
'valor_unitario' sejam multiplicados para que o seu valor seja definido. Neste
caso, ele deve ser removido e este resultado processado quando necessário for.
Pedido
–
id_pedido = 1
–
id_produto = 2134
–
quantidade = 5
–
valor_unitario = 10,00
Quarta Forma Normal (4FN)
A Quarta forma normal visa resolver um problema chamado
“dependência multivalorada”.
A dependência multivalorada ocorre quando atritubos se
repetem em vários registros apenas para satisfazer algum ou alguns outros
atributos que se modificam.
Considere o exemplo a seguir:
Todas as linhas da tabela acima são para o mesmo usuário de
número 1234.
Observe na segunda linha, que ele possui a habilidade
definida como 'Oracle' e o idioma 'Francês'. Na terceira linha a habilidade é
repetida 'Oracle' porque ele possui um outro idioma, 'Inglês'.
Temos então duas linhas com o mesmo valor para o campo
Habilidade do funcionário 1234.
A Quarta Forma Normal resolve este problema criando mais duas
entidades: Funcionário_Habilidade e Funcionário_Idioma.
Quinta Forma Normal (5FN)
A Quinta Forma Normal é semelhante a quarta. Ela consiste em
quebrar a tabela em partes menores a fim de detalhar os seus relacionamentos e
não consumir muito espaço em armazenamento com repetições desnecessárias.



Nenhum comentário:
Postar um comentário