Introducing G2.ai, the future of software buying.Try now

O que é Normalização de Banco de Dados? Tipos e Exemplos

29 de Julho de 2024
por Sagar Joshi

Sem uma coleta e análise de dados adequadas, a tomada de decisões em qualquer organização muitas vezes sai dos trilhos.

Decisões tomadas sem dados dependem mais da intuição do que da lógica. Embora às vezes seja melhor seguir seu instinto, os dados oferecem um controle da realidade, tornando sua decisão melhor e mais lucrativa.

Sua empresa precisa de processos eficazes de gerenciamento de dados para extrair valor de seus dados. A normalização de banco de dados é uma parte desse processo, permitindo que você use informações para impulsionar a inteligência de negócios.

Bancos de dados relacionais fornecem a estrutura e as ferramentas necessárias para implementar esse processo de forma eficaz. Muitas empresas também usam software de preparação de dados para alcançar a normalização. Isso também lhes dá uma plataforma para integrar fontes de dados díspares.

Por que precisamos de normalização em banco de dados?

A normalização é um processo em seu pipeline de dados que melhora a visibilidade, acessibilidade e observabilidade dos dados. Ela otimiza os dados para ajudá-lo a obter seu valor máximo. Juntamente com vários outros casos de uso comuns, a normalização de banco de dados é essencial no processamento de transações online (OLTP), onde a qualidade dos dados e a descobribilidade são as maiores prioridades.

Se olharmos para as páginas da história, Edgar F. Codd, o pai do modelo de banco de dados relacional (RDB), propôs o RDB em 1970, quando o termo "normalização de dados" apareceu pela primeira vez.

Em 1971, Codd descreveu os principais objetivos da normalização de banco de dados além da primeira forma normal (1NF) como:

  • Libertar as coleções de dados de dependências indesejáveis de inserção, atualização e exclusão.
  • Reduzir a necessidade de reestruturar o banco de dados ao adicionar mais informações.
  • Melhorar modelos informacionais e relacionais.
  • Neutralizar o modelo relacional para valor de consulta, tornando o valor mutável.

O principal objetivo aqui é diminuir erros de funcionalidade e precisão, tornando os bancos de dados mais eficientes para navegação.

Quer aprender mais sobre Bancos de Dados Relacionais? Explore os produtos de Bancos de Dados Relacionais.

Como funciona a normalização de banco de dados?

Cada banco de dados e caso de uso pode diferir, exigindo diferentes padrões de normalização de dados.

Fundamentalmente, a normalização é sobre criar um formato padrão para todos os dados coletados por seus processos de negócios.

Estes são alguns exemplos de normalização de banco de dados:

  • Miss KATY torna-se Sra. Katy
  • +91 7897654678 torna-se +91-789-765-4678
  • VP vendas torna-se Vice-Presidente de Vendas
  • 24 Canillas RD será escrito 24 Canillas Road
  • GoogleBiz será escrito como Google Biz, Inc.
  • 25 de dezembro de 2024 será escrito como 25/12/2024

A normalização de banco de dados não se limita a mudanças de formatação. Várias regras se aplicam para garantir que as entradas não sejam repetitivas e sigam diretrizes padrão.

Formas normais em DBMS

Existem diferentes formas de normalização de bancos de dados que você encontrará, incluindo:

Primeira Forma Normal (1NF)

Esta é a forma mais básica de normalização de banco de dados. Em 1NF, cada célula da tabela deve conter apenas um valor, e cada coluna deve ter um nome único. Esta forma ajuda a eliminar dados duplicados e simplifica consultas.

Exemplo: Suponha que você precise armazenar dados de pessoas comprando biscoitos de uma padaria. Faça uma tabela para registrar o nome da pessoa, número de contato, ID de e-mail e se compraram biscoitos.

Antes de 1NF:

Nome do cliente Produto comprado Número de contato
Alice Biscoitos, bolo 555-1234
Bob Biscoitos 555-5678

Depois de 1NF:

Nome do cliente Produto comprado Número de contato
Alice Biscoitos 555-1234
Alice Bolo 555-1234
Bob Biscoitos 555-5678

Segunda Forma Normal (2NF)

A segunda forma de normalização ajuda a reduzir a redundância de dados, garantindo que cada atributo não-chave dependa da chave primária. Simplificando, cada coluna deve estar diretamente relacionada à chave primária.

Exemplo: Você registra o nome de uma pessoa, número de contato e ID de e-mail, bem como se compraram biscoitos e o tipo de biscoito. Os tipos de biscoito são registrados em outra tabela com uma chave estrangeira correspondente ao nome de cada pessoa.

Antes de 2NF:

Nome do cliente Produto comprado Endereço do cliente
Alice Biscoitos 123 Main St
Alice Bolo 123 Main St
Bob Biscoitos 456 Oak St

Depois de 2NF (separando detalhes do cliente dos detalhes do produto):

Tabela de clientes
Nome do cliente Endereço do cliente
Alice 123 Main St
Bob 456 Oak St
Tabela de produtos
Nome do cliente Compras de produtos
Alice Biscoitos
Alice Bolo
Bob Biscoitos

Terceira Forma Normal (3NF)

Baseada no conceito de 2NF, a 3NF exige que todos os atributos não-chave sejam independentes. Ela garante que cada coluna esteja diretamente relacionada à chave primária e a nenhuma outra coluna da tabela.

Exemplo: Você registra o nome de uma pessoa, número de contato e ID de e-mail, mas volta e altera o nome da pessoa. Infelizmente, quando você faz isso, o gênero muda de acordo. Para evitar isso, na 3NF, o gênero recebe uma chave estrangeira e é armazenado em uma tabela separada.

Antes de 3NF:

Nome do cliente Telefone do cliente Gênero do cliente
Alice 555-1234 Feminino
Bob 555-5678 Masculino

Depois de 3NF:

Tabela de contato do cliente
Nome do cliente Telefone do cliente
Alice 555-1234
Bob 555-5678
Tabela de gênero do cliente
Nome do cliente Gênero do cliente
Alice Feminino
Bob Masculino

Forma Normal de Boyce e Codd (BCNF)

É uma versão mais avançada da Terceira Forma Normal, ou 3.5NF. É simplesmente uma tabela 3NF sem chaves candidatas sobrepostas.

Uma chave candidata é uma coluna ou uma combinação de colunas que identifica exclusivamente cada linha da tabela, reduzindo duplicatas ou registros ambíguos em uma tabela.

Em um sistema de gerenciamento de banco de dados, para que uma coluna relacional esteja em BCNF, ela já deve estar em 3NF. Além disso, para cada dependência funcional, por exemplo (X -> Y), X é uma chave candidata ou uma super chave.

Antes de BCNF:

Nome do curso Instrutor Duração do curso
Matemática 101 Dr. Smith 12 semanas
História 201 Dr. Doe 15 semanas

Depois de BCNF (dividindo em duas tabelas):

Tabela de cursos
Nome do curso Duração do curso
Matemática 101 12 semanas
História 201 15 semanas
Tabela de instrutores
Instrutor Nome do curso
Dr. Smith Matemática 101
Dr. Doe História 201

Normalização de dados avançada

Além do BCNF, a Quarta Forma Normal (4NF) e a Quinta Forma Normal (5NF) são formas avançadas de normalização de dados.

A primeira elimina as dependências multivaloradas de uma tabela, enquanto a última divide uma tabela em tabelas menores para diminuir a redundância de dados.

Normalização de banco de dados vs. desnormalização

Normalização de dados reduz anomalias e redundâncias em um conjunto de dados. Ela garante que os dados estejam alinhados com o formato padrão da tabela, facilitando para engenheiros ou usuários de negócios realizarem operações de dados para obter insights e tomar decisões informadas.

Por outro lado, a coleta de dados que não está em um formato específico é desnormalizada por padrão.

Desnormalização de dados é a introdução intencional de dados redundantes em tabelas de banco de dados para otimizar o desempenho de consultas. No entanto, trabalhar com consultas mais analíticas muitas vezes envolve um trade-off entre operações de leitura e escrita.

A desnormalização de dados combina dados de várias tabelas em uma única tabela que pode ser consultada mais rapidamente. É relevante quando há várias consultas de junção em um banco de dados.

Por exemplo, um site de comércio eletrônico pode desnormalizar dados de produtos para acesso mais rápido, combinando detalhes do produto e avaliações em uma única tabela, reduzindo a necessidade de várias junções ao exibir produtos no site.

Benefícios da normalização de banco de dados

A normalização de banco de dados facilita o gerenciamento de dados e seu processamento para obter insights. Há melhorias significativas em velocidade e eficiência. Os benefícios vão além disso para incluir:

Reduzir anomalias nos dados

A normalização de banco de dados reduz anomalias, prevenindo erros que surgem ao adicionar, modificar ou excluir dados. Ela também garante que os dados recém-inseridos sejam consistentes com o formato padrão, evitando entradas duplicadas.

Além disso, você pode realizar a operação de exclusão sem se preocupar em perturbar outros registros em um banco de dados.

Libera espaço

Coletar dados brutos sem um método simplificado pode levar ao armazenamento redundante e indesejado de dados. Normalizar seus dados ajuda a eliminar dados duplicados em todo o seu banco de dados.

Identificar e remover dados repetidos e redundantes libera espaço de armazenamento e melhora o desempenho e a velocidade do seu sistema.

Melhora o tempo de resposta das consultas

O suporte a dados normalizados aumenta a velocidade do seu sistema de informações e reduz atrasos na resposta a consultas. Isso é útil quando várias equipes da mesma empresa estão trabalhando com o mesmo banco de dados comumente usado.

Melhora as capacidades de exame cruzado

A normalização de banco de dados beneficia empresas que coletam dados de várias fontes, especialmente quando registram, transmitem ou analisam dados de plataformas software como serviço (SaaS) ou recursos digitais como plataformas de mídia social ou fóruns online.

Simplifica o processo de vendas

Com a normalização de banco de dados, você pode segmentar efetivamente seus leads com base em uma variedade de critérios e de acordo com as necessidades do seu negócio. Isso torna a consulta de dados rápida e fácil, garantindo que as plataformas de dados de clientes sejam confiáveis para os usuários.

Desafios da normalização de banco de dados

Embora a normalização de bancos de dados seja benéfica em alguns casos de uso, as formas de normalização de banco de dados criam grandes desvantagens em situações específicas.

Impacto no desempenho

Formas complexas de normalização de banco de dados impactam o desempenho do banco de dados, tornando-o mais lento. Isso é comum quando você precisa navegar por grandes volumes de dados.

Dados normalizados utilizam várias tabelas, exigindo mais tempo para escanear e afetando o desempenho.

Aumento da complexidade

Fazer com que sua equipe se adapte ao uso do banco de dados normalizado torna-se complicado.

A maioria dos dados que segue um formato NF é salva como um valor numérico. A tabela contém códigos em vez de informações, tornando complicado para a equipe interpretar sem consultar frequentemente as tabelas de consulta.

Exige conhecimento e expertise

Você precisa de alguém experiente para lidar com as formas de normalização de banco de dados. Como essas formas são empilhadas em níveis, se a primeira forma de normalização falhar, os níveis subsequentes produzirão mais anomalias em vez de produzir dados limpos e otimizados.

Desnormalização preferida

Arquitetos de dados e desenvolvedores projetam bancos de dados NoSQL orientados a documentos e sistemas não relacionais que podem ser usados sem armazenamento em disco. Para lidar com essa situação, uma combinação de dados normalizados e desnormalizados está se tornando a melhor abordagem de armazenamento e consulta de dados.

Melhores práticas de normalização de banco de dados

Aqui estão algumas melhores práticas a serem consideradas ao otimizar seu banco de dados com formas de normalização de dados.

Identificar tipos de dados

Existem vários tipos de dados, como numéricos, categóricos, ordinais ou textuais. Esses tipos podem afetar como você escala, codifica ou analisa seus dados. É importante identificar seu tipo de dado antes de iniciar o processo de normalização para que você possa escolher o melhor método de normalização para cada variável.

Escolher métodos de escalonamento apropriados

Escalonamento é ajustar a faixa de dados numéricos para garantir que tenham escalas ou unidades semelhantes. Escolher o método de escalonamento apropriado ajuda a evitar informações parciais e viés, melhorando o desempenho e a previsibilidade analítica dos seus dados.

Lidar com valores ausentes

Alguns valores são frequentemente perdidos durante o registro ou indisponíveis para algumas variáveis. Tais cenários podem afetar a qualidade, precisão e completude do seu conjunto de dados, causando erros no processo de análise de dados.

Dependendo da natureza e quantidade de valores perdidos, remova, substitua ou ignore-os ao realizar qualquer consulta.

Aplicar padrões comuns

Antes de iniciar o processo de normalização de dados, padrões comuns devem estar em vigor para evitar confusão, inconsistência e ambiguidade nos dados. Esses padrões indicarão como representar, formatar ou codificar dados para manter a consistência em toda a tabela.

Prepare seus dados para negócios

Consistência e uniformidade são as chaves para evitar discrepâncias de dados, o que é verdade em todos os setores. A normalização de banco de dados prepara seus dados enquanto os torna consistentes e alimenta sua inteligência de negócios.

Você pode experimentar a normalização de dados usando software de preparação de dados gratuito e deixar seus dados decidirem quais decisões de negócios são lógicas.

Interessado em explorar outros processos de gerenciamento de dados?

Saiba mais sobre manipulação de dados e entenda como ela ajuda os usuários a organizar dados.

Editado por Monishka Agrawal

Sagar Joshi
SJ

Sagar Joshi

Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.