4.1 Primeira Forma Normal (1FN)

Para um banco de dados estar de acordo com a 1FN, é necessário que não existam grupos de valores repetidos, ou seja, se todos os valores forem únicos (atômicos = indivisíveis) então estaremos a obedecer essa forma normal.

Veja um exemplo de tabela que quebra as definições da 1FN:

Exemplo para análise

Figura 25 - Exemplo para análise

Analisando a tabela acima:

  • Na coluna telefone temos uma lista de valores, ou seja, mais de um valor por registro.
  • Na coluna endereco temos conjuntos de valores, tais como: logradouro, bairro, cidade, estado e CEP. Este conjunto de valores precisa ser separado em colunas.

Para nos adequar à Primeira Forma Normal devemos seguir estes passos:

a) Mover os valores que representam uma lista ou grupo para outra entidade. Em nosso exemplo, essa regra se aplica principalmente à coluna telefone b) Separar conjuntos de valores em colunas de tal modo que os dados possuam “significado" atômico; em nosso exemplo essa regra se aplica principalmente a coluna endereco

Veja o exemplo anterior adequado à 1FN:

Tabelas de acordo com a 1FN

Figura 26 - Tabelas de acordo com a 1FN

Para nos adequar a 1FN tivemos que realizar a separação do conjunto de dados endereco em atributos distintos; além disso criamos uma entidade adicional para comportar os números de telefone tendo em vista que alguns usuários podem ter mais de um telefone para contato.

Poderíamos ter estruturado nossa ideia utilizando 3 tabelas – uma para os usuários, outra para os endereços e por fim uma para os telefones –, porém minha regra de negócio sugeria que cada usuário poderia ter somente um endereço para correspondência e N números de telefone, e logo não vi necessidade em criar uma entidade para separar o endereço e promover um relacionamento desnecessário. Lembre-se de que relacionamentos desnecessários podem prejudicar a performance do banco.

Para o meu problema, a estrutura proposta acima atende a todas as minhas necessidades, porém, se por algum motivo fosse necessário permitir o cadastro de mais de um endereço por usuário, aí sim seria necessário criar uma terceira entidade chamada "endereco" e mover para ela as colunas pertinentes ao seu escopo.

results matching ""

    No results matching ""