0

Normalizando um Banco de Dados

#Banco de dados relacional
Mateus Silva
Mateus Silva

Normalização em um Banco de Dados Relacional é essencial para evitar problemas, facilitar a gestão das tabelas no banco de dados e a manutenção do mesmo.


O que é


Normalização nada mais é do quê o processo que lida com regras de como modelar o seu banco de dados com o propósito de minimizar (ou eliminar) falhas no seu projeto.


Durante o processo de normalização o seu banco de dados vai sendo classificado de acordo com a forma normal que se encontra. Esse artigo mostrar as 3 formas normais mais conhecidas



Formas normais


Exemplo de Modelo



1ª Forma Normal


Para um modelo de Banco de Dados ser considerado na Primeira Forma Normal é preciso que ele se adeque a duas regras:

  • Não pode existir campo multivalorado, como na coluna Telefone.
  • Solucionasse-se esse problema criando uma nova tabela exclusiva para armazenar os telefones em que a chave primária da nova tabela abaixo é composta por chave e telefone.

  • Não pode existir campo composto, como na coluna Endereço.
  • Solucionasse-se esse problema criando novas colunas tabelas de forma a coluna deixe de ser composta.



Exemplo de Modelo



2ª Forma Normal


Para ser considerado na Segunda Forma Normal é preciso que ele se adeque também a duas regras:

  • Precisa que ele esteja na 1ª Forma Normal.
  • A tabela acima já está na 1º Forma Normal.


  • Qualquer coluna que não faça parte da chave primária deve depender completamente de todas as colunas que fazem parte da chave primária.
  • Se observar a coluna Horas Trab. depende tanto do CPF e de Projeto_id já que é total de horas trabalhadas de uma Funcionário em um projeto específico.
  • Agora a coluna Funcionário, que tem o nome do Funcionário, ela depende apenas do CPF que identifica o Funcionário, não depende do Projeto_id, sendo assim ele não está na 2º Forma Normal.
  • Esse processo se repete por todas as colunas de cada tabela.


Para resolver isso, criam-se novas tabelas para as colunas que não dependem completamente da chave primária de forma que nas novas tabelas elas passem a depender total da chave primária.



Exemplo de modelo



3ª Forma Normal


Está na 3ª Forma Normal a tabela que respeita:

  • Estar na 2ª Forma Normal.
  • Não pode existir um campo não chave dependendo de outro campo não chave.


Observando a tabela acima os campos Funcionário, Sexo, Depart_Id dependem da chave primária CPF, contudo o campo Depart_Nome (não chave) depende somente do campo Depart_Id.


Solucionasse pegando os campos que não dependem da chave primária e coloca-se em uma nova tabela tendo como chave primária dessa nova tabela o campo que ela dependia na tabela original.



Links para artigos anteriores sobre Banco de Dados.


  • Como armazenar datas e horas em um banco de dados: https://web.digitalinnovation.one/articles/problemas-ao-armazenar-datas-no-banco-de-dados?back=%2Farticles&page=1&order=oldest


  • Como escolher o banco de dados para a sua aplicação: https://web.digitalinnovation.one/articles/como-escolher-o-modelo-de-banco-de-dados?back=%2Farticles&page=1&order=oldest


Fontes:

  • http://diatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1577657:26.1-bd-formas_normais.pdf
  • https://medium.com/@diegobmachado/normaliza%C3%A7%C3%A3o-em-banco-de-dados-5647cdf84a12
  • http://www.dsc.ufcg.edu.br/~pet/jornal/maio2011/materias/recapitulando.html


Obs: os exemplos usados são dados nas duas primeiras fontes.

0
0

Comentários (2)

0
Mateus Silva

Mateus Silva

21/07/2021 17:02

Verdade, fora que complica até na hora de recuperar os dados, precisa fazer muito mais tratamentos nos SELECT's para consultas levemente mais elaboradas.

0
Luiz Fischer

Luiz Fischer

21/07/2021 16:48

Muito bom, normalizar é um processo muito importante as vezes esquecido por muitos. kkkkkk

None

Brasil