Unidade 4 - Normalização
Aula 10 – Normalização de Dados
Refinamento do modelo lógico através de técnicas sistemáticas para garantir integridade e eficiência
Capítulo 1
Introdução à Normalização
O que é Normalização de Dados?
Organização Sistemática
Processo estruturado para organizar dados em um banco de dados relacional, seguindo regras e princípios específicos
Redução de Redundância
Elimina duplicidade de informações e previne inconsistências que podem comprometer a integridade dos dados
Eficiência Operacional
Facilita a manutenção do banco de dados e otimiza consultas, tornando operações mais rápidas e confiáveis
Por que Normalizar?
Elimina Duplicidade
Evita dados repetidos e os erros de atualização que surgem quando informações duplicadas ficam dessincronizadas
Garante Integridade
Assegura que as informações permaneçam consistentes e confiáveis em todas as operações do banco
Melhora Performance
Otimiza o desempenho do sistema e facilita a escalabilidade para crescimento futuro
Antes da Normalização

Tabelas desorganizadas apresentam dados repetidos, inconsistências e anomalias que comprometem a qualidade das informações
Quem Criou a Normalização?
Edgar F. Codd
Matemático britânico e cientista da computação, Codd é considerado o pai do modelo relacional de bancos de dados. Durante seu trabalho na IBM nos anos 1970, ele revolucionou a forma como pensamos sobre organização de dados.
  • Definiu as primeiras três formas normais (1FN, 2FN, 3FN)
  • Estabeleceu os fundamentos teóricos dos bancos relacionais
  • Sua pesquisa é base para todos os projetos modernos de bancos de dados
Capítulo 2
Dependências Funcionais
O que são Dependências Funcionais?
Dependências funcionais representam relações lógicas entre atributos em uma tabela, fundamentais para identificar redundâncias e anomalias nos dados.
Notação A → B
Significa que o atributo A determina univocamente o atributo B. Conhecendo A, você sempre conhece B.
Exemplo Prático
ID_Aluno → Nome_Aluno, Curso_Aluno
O identificador do aluno determina seu nome e curso
Fundamento da Normalização
A análise de dependências funcionais é o primeiro passo para identificar problemas estruturais no modelo
Tipos de Dependências
Dependência Total
Um atributo depende completamente de toda a chave primária composta, não apenas de parte dela
Dependência Parcial
Um atributo depende apenas de parte da chave primária composta, indicando possível problema de normalização
Dependência Transitiva
Um atributo não-chave depende de outro atributo não-chave, criando redundância indireta
Visualizando Dependências Funcionais
O diagrama ilustra como atributos se relacionam através de dependências funcionais, mostrando claramente as relações de determinação entre diferentes campos
Importância das Dependências Funcionais
Base das Formas Normais
A compreensão de dependências funcionais é absolutamente essencial para aplicar corretamente cada forma normal e estruturar o banco de dados
Decomposição de Tabelas
Permite identificar como dividir tabelas complexas em estruturas menores e mais eficientes, eliminando redundâncias sistemáticas
Prevenção de Anomalias
Evita problemas graves de inserção, exclusão e atualização que podem comprometer a integridade e confiabilidade dos dados armazenados
Capítulo 3
Primeira Forma Normal
O que é a Primeira Forma Normal (1FN)?
Princípio da Atomicidade
A 1FN exige que todos os atributos contenham apenas valores atômicos, ou seja, indivisíveis. Cada campo deve armazenar um único valor, não uma lista ou conjunto de valores.
Regras Fundamentais:
  • Eliminar grupos repetitivos de dados
  • Não permitir atributos multivalorados
  • Cada célula contém apenas um valor
  • Criar linha separada para cada valor múltiplo

Exemplo: Campos como "Telefones" ou "Idiomas" que contêm múltiplos valores devem ser separados em linhas distintas
Exemplo Prático de 1FN
Tabela Original (Não normalizada)
Após Aplicar 1FN
Cada valor multivalorado foi separado em uma linha distinta, garantindo atomicidade
Dica Prática sobre 1FN
Atenção: 1FN não resolve tudo!
Dividir valores compostos em múltiplas linhas é apenas o primeiro passo. A tabela resultante ainda pode apresentar redundância significativa de dados (como a repetição do nome do aluno), que será tratada nas formas normais seguintes.
Visualizando a Transformação 1FN
A imagem demonstra claramente a diferença entre uma tabela com valores múltiplos em campos únicos e a estrutura correta após aplicação da 1FN, destacando a atomicidade dos dados
Capítulo 4
Segunda Forma Normal
O que é a Segunda Forma Normal (2FN)?
A 2FN constrói sobre a 1FN, eliminando dependências parciais. Uma tabela está em 2FN quando está em 1FN e todos os atributos não-chave dependem da chave primária completa.
01
Garantir 1FN
A tabela já deve estar na Primeira Forma Normal como pré-requisito
02
Identificar Dependências Parciais
Encontrar atributos que dependem apenas de parte da chave primária composta
03
Decompor Tabelas
Separar dados que dependem só de parte da chave em tabelas distintas e específicas
Exemplo Prático de 2FN
Problema: Dependência Parcial
Na tabela em 1FN, temos chave primária composta: (ID_Aluno, Telefone, Idioma). Porém, o atributo "Nome" depende apenas do ID_Aluno, não da chave completa.
Tabela Original (1FN)
Telefone e Idioma não dependem do Curso, apenas do ID_Aluno
Decomposição
Criar tabelas separadas: Alunos, Telefones_Aluno, Idiomas_Aluno
Resultado (2FN)
Cada tabela tem atributos que dependem completamente de sua chave primária
Dica Prática para Aplicar 2FN
Como Identificar Dependências Parciais
  1. Examine cada atributo não-chave da tabela
  1. Pergunte: este atributo depende de TODA a chave primária ou apenas de parte dela?
  1. Se depende apenas de parte, há dependência parcial
  1. Crie tabelas específicas para agrupar atributos com mesma dependência

A 2FN só se aplica a tabelas com chave primária composta. Tabelas com chave simples já estão automaticamente em 2FN se estiverem em 1FN
Decomposição em 2FN
O diagrama ilustra como uma tabela com dependências parciais é decomposta em múltiplas tabelas menores, cada uma com atributos que dependem completamente de sua chave primária
Capítulo 5
Terceira Forma Normal
O que é a Terceira Forma Normal (3FN)?
A 3FN é alcançada quando uma tabela está em 2FN e não contém dependências transitivas entre atributos não-chave.
1
Pré-requisito: 2FN
A tabela deve estar na Segunda Forma Normal antes de aplicar 3FN
2
Eliminar Transitividade
Atributos não-chave não podem depender de outros atributos não-chave
3
Dependência Direta
Todos os atributos não-chave devem depender exclusivamente da chave primária
Exemplo Prático de 3FN
Problema: Dependência Transitiva
Tabela Alunos (em 2FN)
Problema: Idade depende da Data de Nascimento, não diretamente da chave primária
Após Aplicar 3FN
Solução: Remover o campo Idade. Ele pode ser calculado quando necessário
Dica Prática para 3FN
Evite Dados Calculados
Não armazene valores que podem ser calculados ou derivados de outros campos. Isso previne inconsistências quando dados de origem são atualizados.
Foco na Chave Primária
Garanta que absolutamente todos os atributos não-chave dependam exclusivamente da chave primária, sem intermediários.
Regra de ouro: "A chave, toda a chave, e nada além da chave" - mantra da 3FN que resume perfeitamente o conceito de dependência direta.
Dependência Transitiva Visualizada
A visualização demonstra como uma dependência transitiva cria um caminho indireto entre a chave primária e um atributo, passando por outro atributo não-chave. A remoção dessa transitividade é essencial para alcançar a 3FN.
Capítulo 6
Processo Completo de Normalização
Passos para Normalizar um Modelo Lógico
1
Identificar Chave Primária e Atributos
Defina claramente quais atributos compõem a chave primária e liste todos os demais atributos da tabela
2
Analisar Dependências Funcionais
Mapeie todas as relações de dependência entre atributos, identificando dependências totais, parciais e transitivas
3
Aplicar 1FN: Garantir Atomicidade
Elimine grupos repetitivos e atributos multivalorados, garantindo que cada campo contenha apenas um valor
4
Aplicar 2FN: Eliminar Dependências Parciais
Remova atributos que dependem apenas de parte da chave primária composta, criando tabelas separadas
5
Aplicar 3FN: Eliminar Dependências Transitivas
Remova atributos não-chave que dependem de outros atributos não-chave, estabelecendo dependência direta com a chave
Benefícios do Processo de Normalização
Redução de Redundância
Eliminação significativa de dados duplicados, otimizando o uso de espaço de armazenamento e reduzindo custos de infraestrutura
Integridade dos Dados
Melhoria dramática na integridade e consistência das informações, prevenindo contradições e erros sistemáticos
Facilidade de Manutenção
Simplificação significativa das tarefas de manutenção e evolução do banco de dados ao longo do tempo
Quando Normalizar?
Projetos Novos
Sempre aplique normalização desde o início do design de bancos de dados relacionais
Alta Complexidade
Especialmente importante em modelos com grande volume e complexidade de dados inter-relacionados
Prevenção de Anomalias
Quando há necessidade crítica de evitar inconsistências e anomalias de dados
Limitações e Considerações
1
Performance vs. Normalização
Normalização excessiva pode impactar negativamente a performance devido ao aumento de operações JOIN necessárias para recuperar dados
2
Desnormalização Estratégica
Em sistemas de alta performance e leitura intensiva, a desnormalização controlada pode ser usada para otimizar consultas críticas
3
Análise de Trade-offs
É essencial analisar o equilíbrio entre integridade dos dados e requisitos de performance específicos do sistema

A normalização não é um objetivo absoluto - é uma ferramenta que deve ser aplicada com bom senso, considerando as necessidades específicas de cada projeto
Fluxograma do Processo de Normalização
O fluxograma completo ilustra o caminho desde a tabela não normalizada até a estrutura final em 3FN, mostrando cada decisão e transformação aplicada aos dados
Capítulo 7
Exercícios Práticos
Exercício 1: Identifique a 1FN
Tabela para Análise
Desafio:
  • Aplique a Primeira Forma Normal nesta tabela
  • Identifique todos os atributos multivalorados
  • Crie a estrutura normalizada
  • Justifique cada alteração realizada
Exercício 2: Aplicando 2FN e 3FN
Cenário: Sistema de Matrículas
Considere uma tabela com a seguinte estrutura:
Matrícula (ID_Aluno, ID_Curso, Nome_Aluno, Nome_Curso, Carga_Horaria, Data_Matrícula, Departamento_Curso, Prédio_Departamento)
Parte A: Identifique
Encontre todas as dependências parciais e transitivas presentes nesta estrutura
Parte B: Decomponha
Decomponha a tabela aplicando 2FN e depois 3FN, criando as tabelas resultantes
Parte C: Justifique
Explique o raciocínio usado em cada passo da normalização
Aplicação Prática: Loja de E-commerce
Caso Real de Normalização
Antes da Normalização
Tabela Pedidos: Contém dados de clientes, produtos, estoque, fornecedores, com múltiplas redundâncias
  • Dados de clientes repetidos em cada pedido
  • Informações de produtos duplicadas
  • Anomalias de inserção e exclusão
Depois da Normalização
Estrutura em 3FN:
  • Tabela Clientes
  • Tabela Produtos
  • Tabela Pedidos
  • Tabela Itens_Pedido
  • Tabela Fornecedores
Conclusão
Dominando a Normalização
Normalização: Fundamento para Bancos de Dados Eficientes
Processo Essencial
A normalização é absolutamente fundamental para garantir qualidade, integridade e confiabilidade dos dados em sistemas de informação modernos
Conhecimento Fundamental
Dominar as três formas normais (1FN, 2FN e 3FN) é competência essencial para profissionais de TI, especialmente analistas e desenvolvedores de banco de dados
Prática Constante
A excelência vem da prática contínua e da análise crítica de modelos de dados, desenvolvendo intuição para identificar problemas estruturais
Aplicação Adaptativa
Prepare-se para aplicar e adaptar os conceitos de normalização conforme as necessidades específicas e requisitos de performance de cada projeto real

Próximos passos: Continue praticando com exercícios reais e explore formas normais avançadas (BCNF, 4FN, 5FN) para casos mais complexos