segunda-feira, 16 de novembro de 2015

Formas normais – Modelagem de dados

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