Primeira Forma normal
A normalização de dados é
um processo importante no processo de modelagem de dados. A primeira
parte da normalização é chamada de 1FN ou primeira forma normal,
em uma escala que vai até cinco.
Uma relação estará na
primeira forma normal 1FN, se não houver grupo de dados repetidos,
isto é, se todos os valores forem únicos. Em outras palavras
podemos definir que a primeira forma normal não admite repetições
ou campos que tenha mais que um valor.
Os procedimentos mais
recomendados para aplicar a 1FN são os seguintes:
a) Identificar a chave
primária da entidade;
b) Identificar o grupo
repetitivo e removê-lo da entidade;
c) Criar
uma entidade com a chave primária da entidade anterior e o grupo
repetitivo.
A chave primária da nova
entidade será obtida pela concatenação da chave primária da
entidade inicial e a do grupo repetitivo.
Exemplo de normalização de
dados.
Considere a tabela cliente
abaixo:
Cliente
Código_cliente
Nome
Telefone
Endereço
Agora a tabela com os dados:
Código_cliente
|
Nome
|
Telefone
|
Endereço
|
C001
|
José
|
9563-6352
9847-2501
|
Rua
Seis, 85 Morumbi 12536-965
|
C002
|
Maria
|
3265-8596
|
Rua
Onze, 64 Moema 65985-963
|
C003
|
Jânio
|
8545-8956
9698-6301
|
Praça
Ramos Liberdade 68858-633
|
Tabela desnormalizada, ou
seja, não está na 1ª forma normal
Analisando teremos:
Todos os
clientes possuem Rua, CEP e Bairro, e essas informações estão na
mesma
célula da tabela, logo ela não está na primeira
forma normal.
Para normalizar, deveremos
colocar cada informação em uma coluna
diferente, como no exemplo a seguir:
Código_cliente
|
Nome
|
Telefone
|
Rua
|
Bairro
|
CEP
|
C001
|
José
|
9563-6352
9847-2501
|
Rua
Seis,85
|
Morumbi
|
12536-965
|
C002
|
Maria
|
3265-8596
|
Rua
Onze, 64
|
Moema
|
65985-963
|
C003
|
Jânio
|
8545-8956
9698-6301
|
Praça
Ramos
|
Liberdade
|
68858-633
|
Tabela ainda não está na
primeira forma normal
Mesmo
com o ajuste acima, a tabela ainda não está na primeira
forma normal,
pois há
clientes com mais de um telefone e os valores estão em uma
mesma célula. Para normalizar
será necessário criar uma nova
tabela para armazenar os números dos telefones e o
campo-chave da
tabela cliente. Veja o resultado a seguir:
Código_cliente
|
Nome
|
Rua
|
Bairro
|
CEP
|
C001
|
José
|
Rua
Seis,85
|
Morumbi
|
12536-965
|
C002
|
Maria
|
Rua
Onze, 64
|
Moema
|
65985-963
|
C003
|
Jânio
|
Praça
Ramos
|
Liberdade
|
68858-633
|
Tabela na primeira forma
normal
Código_cliente
|
Telefone
|
C001
|
9563-6352
|
C001
|
9847-2501
|
C002
|
3265-8596
|
C003
|
8545-8956
|
C003
|
9698-6301
|
Tabela
na 1ª
forma normal
Na
segunda tabela a chave primária
está implícita, isto voe poderá encontrar algumas
literaturas especializadas, onde nem sempre ela é especificada, mas
ela deverá existir.
No
exemplo acima foi gerado uma segunda entidade para que a primeira
forma normal
fosse satisfeita, contudo é importante ressaltar que nem sempre
encontramos banco de
dados com tabelas normalizadas. Existem casos
onde as repetições são poucas ou o
cenário permite administrar as
repetições sem trazer grandes consequências.
Nenhum comentário:
Postar um comentário