Mostrando postagens com marcador normalização. Mostrar todas as postagens
Mostrando postagens com marcador normalização. Mostrar todas as postagens

6 de out. de 2020

Normalização

    Um bom banco de dados, passa antes de tudo por um bom desenvolvimento, para isso deve ser basear nas regras de normalização. A normalização assim como o modelo de banco de dados relacionais, teve seu conceito introduzido por E.F. Codd durante os anos 70. A normalização também é conhecida como Normal Forms (Formas Normais), visa manter um banco de dados otimizado para reduzir redundâncias e dependências.

    Quando se normaliza um banco de dados, tem como objetivo flexibilizar a estrutura do banco de dados, assegura que os atributos estão nas tabelas corretas, reduzir a redundância dos dados, aumentar a efetividade dos programadores, diminuir custos de manutenção das aplicações e maximizar a efetividade da estrutura dos dados.

Primeira forma normal (First Normal Form 1NF)

Basicamente, uma tabela na 1NF não consta dados repetidos, então, para atender a primeira forma normal devemos considerar que em uma tabela cada coluna seja única.

Exemplo:

Na imagem acima vemos que a tabela 'Registro' possui 3 colunas para o mesmo tipo de dados, o que gera repetição.

Para aplicar a 1NF, é criada uma nova tabela 'Telefone', com as informações referente aos números de telefone e tipo do número, cada registro possui um ID único, que é disponibilizado na tabela 'Registro' por meio de chave estrangeira Foreigner Key.

Segunda forma normal (Second Normal Form 2NF)

Como premissa para a 2NF, a tabela já deve estar normalizada na 1NF, sabendo disso, o conceito da 2NF é que nenhuma outra coluna da tabela deve ser dependente de parte do valor da chave primária. Para exemplificar, uma tabela que possui uma chave primária composta, ou seja, 2 colunas ou mais formam a chave primária, uma nova coluna não pode depender do valor que consta apenas em uma coluna que forma a chave primária, isso busca reduzir a redundância de dados.

Exemplo.

Um país pode ter vários estados, e um estado várias cidades, na tabela acima ao mudar o nome de um estado, vai ser alterado apenas ao registro que está sendo manipulado, e caso nos dados da tabela tenhamos mais de uma cidade do mesmo estado, estamos replicando o nome do estado.



Após aplicar o 2NF, temos uma tabela para o país, uma para o estado onde o id do país vem como chave estrangeira da tabela país, e uma para cidade ontem temos as chaves estrangeiras do estado e do país, dessa forma ao alterar o nome do estado ou sigla do país, por exemplo, a informação esta integra, pois todos os registros da tabela cidade apontam para o identificador das outras tabelas.

Terceira forma normal (Third Normal Form 3NF)

Como premissa para a 3NF, a tabela já deve atender as normas anteriores. A 3NF consiste em que uma tabela, não possua uma coluna que dependa de outra coluna que não seja uma coluna chave, para normalizá-la deve-se remover essa coluna para outra tabela.

Exemplo:

Uma pista de corrida, tem uma corrida em uma determinada data, nessa corrida temos um vencedor, e o vencedor tem uma data de nascimento. Nesse caso a data de nascimento do vencedor é dependente da coluna vencedor, sendo aplicada a 3NF, teremos uma nova tabela com as informações do competidor, ligada a tabela de ganhadores.



Existem mais normas formais, contundo, um banco de dados que atende a estas 3 normas, já se torna otimizado de modo que muitos problemas possam ser evitados.


Fontes:

https://docs.oracle.com/en/database/oracle/oracle-database/19/dwhsg/data-warehouse-logical-design.html#GUID-A5E3E278-E611-4AB1-BE17-C3AF0DF87A80

https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.ddi.doc/ids_ddi_066.htm

https://www.w3schools.in/dbms/database-normalization/