Normalização: Garantindo a Estabilidade com formas normais

modelagem de dados e a normalização 1FN 2FN 3FN

A normalização é um processo crucial na gestão de dados, visando eliminar redundâncias e garantir a estabilidade no modelo de dados. Ao longo deste artigo, vamos explorar esse conceito fundamental e entender como as regras de normalização podem ser aplicadas para alcançar esses objetivos.

O Que É Normalização?

A normalização é um conjunto de regras sistemáticas aplicadas para eliminar redundâncias e alcançar estabilidade no modelo de dados. Cada uma dessas regras é denominada de “Forma Normal”. Existem diversas Formas Normais, sendo que as três primeiras são as mais essenciais e aplicáveis. Essas regras são aplicadas durante a construção do modelo de dados, podendo ser repetidas várias vezes para obter um modelo estável.

Aplicando as Formas Normais

Após aplicar a 1FN, o objeto de ordem de compra é dividido em objetos separados, cada um contendo os atributos essenciais. Isso elimina redundâncias e facilita a recuperação de informações.

Na 2FN, os objetos são novamente analisados, garantindo que os atributos não chave dependam completamente da chave. Isso garante que a estrutura seja mais organizada e otimizada.

Finalmente, na 3FN, as dependências transitivas são tratadas, evitando que atributos não chave sejam identificados por outros atributos não chave. Isso simplifica a estrutura e reduz a complexidade.

São aplicadas durante o transcorrer de toda a construção do modelo de dados.

Aplicadas o número de vezes que for necessário para que se obtenha um modelo estável.

São aplicadas em sequência, 1FN > 2FN >3FN. A cada revisão que se faça, inicia-se novamente pela 1FN, depois a 2FN e assim sucessivamente.

Formas Normais modelo relacional

Vamos usar o modelo acima como exemplo para aplicar as 3 regras ou formas normais

As Três Primeiras Formas Normais

Primeira Forma Normal (1FN)

A primeira Forma Normal (1FN) é alcançada quando cada ocorrência do objeto possui apenas um valor para cada atributo. Isso elimina múltiplas ocorrências das tuplas. Além disso, para cada ocorrência da chave, nenhum atributo pode ter mais de um valor. A 1FN é essencial para garantir a integridade dos dados.

Exemplo:

Uma tupla está na 1FN, se para cada ocorrência do objeto, existir apenas um valor de cada atributo.

A 1FN elimina as múltiplas ocorrências das tuplas (ou instâncias). Para cada ocorrência de chave não pode existir nenhum atributo com mais de um valor.

1 FN primeira forma normal na Modelagem

Problema, os quatro atributos que aparecem entre chaves estão repetidos, com múltiplas ocorrências, o que tem que ser evitado.

A correção é feita aplicando-se a 1FN. Obteremos então dois objetos, ORDEM COMPRA com os atributos originais e um outro objeto a ele se relacionando de maneira 1:N.

normalização 1 FN formas normais

Os dois objetos estão atendendo a 1FN, não apresentam múltiplas ocorrências no conjunto de atributos.

Passemos adiante e verifiquemos o atendimento da 2FN.

Segunda Forma Normal (2FN)

A segunda Forma Normal (2FN) requer que uma tupla atenda à 1FN e que os atributos não chave não apresentem dependência parcial da chave. Isso significa que, se a instância é identificada por mais de um atributo, os atributos não chave devem depender completamente da chave. Caso contrário, eles devem ser separados para formar objetos independentes.

Uma tupla está na 2FN, se atender a 1FN e os atributos não chave não apresentarem dependência parcial da chave. (devem ser identificados pelo atributo que é a chave)

FUNCIONÁRlO, tem como chave o atributo # cd_matrícula_funcionário, entre os atributos não chave encontramos nm_funcionário que é identificado pelo atributo chave, assim como todos os demais.

Quando a instância é identificada por mais de um atributo, isto é, apresenta chave concatenada, todo atributo não chave deve ser identificado pela chave completa.

Os atributos que não obedecem esta regra e são identificados por parte da chave, são atributos dependentes parcialmente da chave, e precisam ser separados para formar outro objeto onde possam ser identificados por toda a chave.

Ou seja: os atributos não chave que se identificam parcialmente formarão outro objeto cuja chave é a parte da chave que os identifica no objeto original.

No exemplo os atributos nm_material e vl_unitário_materíal não necessitam de cd_ordem_compra para identifica-Ias.

 Criamos então o objeto MATERIAL com estes atributos e o mesmo irá se relacionar com cardinalidade 1:N com o objeto íTEM ORDEM COMPRA. O atributo cd_material  passa a ser chave estrangeira em ITEM ORDEM COMPRA. Desta maneira o objeto ITEM ORDEM COMPRA passa a atender a 2FN.

A nova situação será:

2 FN formas normais - normalização

2FN só se aplica às instâncias que são identificadas por chave concatenada. E por não apresentar chave concatenada, o objeto ORDEM COMPRA não precisa ser verificado quanto ao atendimento da 2FN.

O próximo passo é a verificação da 3FN para todos os objetos.

Terceira Forma Normal (3FN)

A terceira Forma Normal (3FN) exige que uma tupla atenda à 2FN e que seus atributos não apresentem dependência transitiva da chave. Isso ocorre quando um atributo é identificado por outro atributo não chave, que por sua vez é identificado pela chave. Nesse caso, os atributos que têm dependência transitiva devem ser separados em objetos distintos.

Uma tupla está na 3FN, se atender a 2FN, e seus atributos não apresentarem dependência transitiva da chave.

Um atributo apresenta dependência transitiva da chave quando ele é identificado por outro atributo não chave, e este por sua vez é identificado pela chave.

No exemplo que está sendo discutido. O objeto ORDEM COMPRA está fora da 3FN, uma vez que nm_fornecedor e cd_insc_estadual_fornecedor são atributos identificados por cd_fornecedor e não pelo atributo # cd_ordem_compra que é a chave da instância.

Os atributos que são identificados transitivamente formarão outro objeto que terá como chave o atributo que os identifica. O novo relacionamento formado é do tipo N:1 e cd_fornecedor passa a ser atributo estrangeiro no objeto ORDEM COMPRA. A nova situação será:

modelagem 3 Forma Normal normalização de dados

Nesta altura todos os objetos estão normalizados, atendem as três Formas Normais, e o modelo de dados está estabilizado.

Implicações Físicas da Normalização

A normalização tem implicações significativas no armazenamento de dados. Ao não normalizar, podemos enfrentar problemas como redundância excessiva e aumento da complexidade. Vamos considerar um exemplo prático:

Imagine um objeto representando ordens de compra. Sem normalização, podemos ter instâncias com espaço desperdiçado e informações duplicadas. Isso dificulta a obtenção de respostas precisas do sistema. No entanto, aplicando a normalização, a estrutura do modelo de dados é otimizada, evitando repetições desnecessárias.

Normalização

Sem normalizar, teremos um objeto que apresenta as seguintes instâncias (todos os nomes dos atributos estão abreviados por falta de espaço, devem ser considerados os nomes que foram descritos na resolução anterior):

modelagem

Não é difícil observar os diversos problemas que este objeto apresenta. As instâncias correspondentes às ordens de compra de número 002 e 004 tem espaço sobrando, a instância referente à ordem de compra de número 003 requer mais um conjunto de colunas. Além disso temos quatro fornecedores e o objeto só apresenta três. Também temos um quinto material que não aparece nesta solução.

Qual a solução para que o sistema possa responder: quais os fornecedores da empresa? Quais são todos os materiais fornecidos? Como se faz para mudar a razão social de um fornecedor? Quantos martelos foram comprados no mês passado? O número de acessos necessários e a complexidade de alguns processos podem inviabilizar o sistema. Veremos que a solução é ter uma base de dados normalizada.

APÓS APLICAR A 1FN, TEREMOS:

base de dados normalizada

Nesta situação o objeto ÍTEM ORDEM COMPRA, apresenta os atributos nm_material e vl_unitário_material com os conteúdos repetidos desnecessariamente, é o caso de serrote e alicate. Estão ocupando espaço físico

quando não é preciso.

Aplicando a 2FN teremos uma nova situação:

Aplicando a 2FN

Observamos que agora os dois objetos estão estáveis, as instâncias apenas com os conteúdos necessários, sem repetições indevidas, e o quinto material (bucha) teve sua instância incluída. A instância pode ser incluída porque o relacionamento apresenta as seguintes cardinalidades:

MATERIAL 1 : (N) ÍTEM_ ORDEM_COMPRA

ou seja, é possível haver um MATERIAL cadastrado sem estar relacionado a nenhuma instância de ITEM ORDEM COMPRA.

Voltando ao objeto ORDEM COMPRA, o nm_fornecedor e cd_inscrição_estaduaI_fornecedor também se repetem desnecessariamente e ocupando espaço quando não é necessário, é o caso de  Timbó e 222-2. Nesta situação, ainda não apareceu o Distribuidor Tabajara. É preciso melhorar a solução.

bancos de dados relacionais - Normalização e as formas normais

Como no caso anterior, a cardinalidade do relacionamento possibilita a existência de um FORNECEDOR sem estar relacionado a nenhuma ORDEM COMPRA.

A situação final apresenta o modelo normalizado, estável e adequado para não prejudicar a performance do sistema.

modelos relacionais forma normal

Conclusão

A normalização desempenha um papel vital na criação de modelos de dados estáveis e eficientes. Ao eliminar redundâncias e organizar as informações de maneira lógica, podemos obter um sistema mais eficaz e responsivo. Ao seguir as regras das três primeiras Formas Normais, podemos garantir que nossos modelos de dados sejam otimizados para a melhor performance e acessibilidade.

Perguntas Frequentes

O que é a normalização de dados?

A normalização de dados é um processo que visa eliminar redundâncias e garantir estabilidade em modelos de dados.

Quantas Formas Normais existem no processo de normalização?

Existem diversas Formas Normais, sendo as três primeiras as mais importantes: 1FN, 2FN e 3FN.

Como a normalização impacta o desempenho de um sistema?

A normalização melhora o desempenho ao otimizar a estrutura dos dados, agilizando consultas e reduzindo redundâncias

Quais são os benefícios da terceira Forma Normal?

A terceira Forma Normal elimina dependências transitivas, simplificando o modelo e evitando redundâncias.

Por que a normalização é importante?

A normalização é importante para eliminar redundâncias e garantir a estabilidade dos modelos de dados, resultando em um sistema mais eficiente e organizado.

Smartwatch Feminino Os 4 Melhores Modelos para Estilo e Funcionalidade para 2024-banner
Prof. Eduardo H Gomes
Prof. Eduardo H Gomes

Mestre em Engenharia da Informação, Especialista em Engenharia da Computação, Cientista da Computação, Professor de Inteligência Artificial no IFSP, 18 anos de docência no Ensino Superior. Apaixonado por Surf, Paraglider, Mergulho livre, Tecnologia, SEO, Banco de Dados e Desenvolvimento Web.