NORMALIZAÇÃO: formas normais 

Aplicação das três primeiras Formas Normais em uma tabela não
normalizada.


Francisco Escobar

NORMALIZAÇÃO: CONCEITOS PRELIMINARES


1 FN: PRIMEIRA FORMA NORMAL
2 FN: SEGUNDA FORMA NORMAL
3 FN: TERCEIRA FORMA NORMAL
EXERCÍCIOS 

NORMALIZAÇÃO: Formas Normais

É muito comum que os funcionários dos diversos departamentos de uma empresa utilizem tabelas frequentemente geradas em planilhas eletrônicas (exemplo: Excel) para armazenamento de dados. Embora esta solução seja útil para várias situações, à medida que a quantidade de dados cresce, podem ocorrer problemas relacionados à manutenção dos dados. O problema torna-se ainda mais grave ao tentar-se passar os dados de uma planilha eletrônica para uma ou mais tabelas em um sistema de banco de dados sem observar-se algumas regras ou normas básicas.

NORMALIZAÇÃO: Formas Normais

Neste processo é muito importante a aplicação de um conjunto de normas ou regras conhecidas como Formas Normais.

Uma empresa de engenharia pode, por exemplo, utilizar os seguintes formulários para controle de seus projetos:


NORMALIZAÇÃO: formas normais

Observe a seguir a planilha elaborada para controle dos vários projetos da empresa:

 

Porém, à medida que a quantidade de projetos e funcionários alocados neles cresce, observou-se que seria necessário utilizar um sistema de banco de dados.
Para garantir a integridade e controlar a redundância dos dados aplicou-se à tabela acima as seguintes Formas Normais:

1 FN: PRIMEIRA FORMA NORMAL

Uma tabela está na 1FN (Primeira Forma Normal) quando não possui tabelas aninhadas.
A tabela para controle de projetos apresenta a seguinte tabela aninhada:

Não se deve simplesmente separar a tabela acima do restante da tabela de controle de projetos, porque, neste caso, não seria mais possível determinar em quais projetos cada funcionário trabalhou. Para que isso não ocorra, é preciso incluir a coluna NR_PROJ na tabela que será denominada PROJETO_FUNCIONARIO:

1 FN: PRIMEIRA FORMA NORMAL


Consequentemente, a segunda tabela apresentará a seguinte estrutura:

2 FN: segunda FORMA NORMAL

Uma tabela está na 2FN (Segunda Forma Normal) quando, além de estar na Primeira Forma Normal, não contém dependências parciais.
Uma dependência funcional parcial ocorre quando uma coluna depende apenas de uma parte da Chave Primária COMPOSTA. (Veja o tópico da aula anterior: Dependência Funcional Irredutível à Esquerda.)

Portanto, toda tabela que está na Primeira Forma Normal e que possui Chave Primária SIMPLES (formada por uma coluna) já está na Segunda Forma Normal.

2 FN: segunda FORMA NORMAL

Analisando a tabela PROJETO_FUNCIONARIO nota-se que as colunas (ou atributos) NOME_FUNC, CARGO e VL_HORA dependem apenas de uma parte da Chave Primária, ou seja, do ID_FUNC. Portanto ao aplicarmos a 2FN (Segunda Forma Normal) teremos:


2 FN: segunda FORMA NORMAL

A tabela PROJETO_FUNCIONARIO apresentará, portanto a seguinte estrutura após a aplicação da Segunda Forma Normal :

 

3 FN: TERCEIRA FORMA NORMAL

Uma tabela está na 3FN (Terceira Forma Normal) quando, além de estar na 2FN (Segunda Forma Normal), não contém dependências transitivas.

Uma dependência funcional transitiva ocorre quando uma coluna, além de depender da Chave Primária da tabela, depende também de outra(s) coluna(s) da tabela. (Veja o tópico da aula anterior: Dependência Funcional Transitiva.)

3 FN: TERCEIRA FORMA NORMAL

A tabela FUNCIONARIO apresenta uma dependência funcional transitiva. Observe que o VL_HORA não depende diretamente do ID_FUNC. VL_HORA depende diretamente do CARGO. Portanto ao aplicar-se a 3FN (Terceira Forma Normal) teremos uma tabela que pode ser denominada CARGO_SALARIO com a seguinte estrutura:


3 FN: TERCEIRA FORMA NORMAL

A tabela FUNCIONARIO após a aplicação da Terceira Forma Normal apresentará a estrutura a seguir:

 

Observe a seguir quais foram as tabelas geradas após a aplicação das três primeiras Formas Normais (FN1, FN2 e FN3) e compare com a tabela controle de projeto anteriormente apresentada.

3 FN: TERCEIRA FORMA NORMAL



3 FN: TERCEIRA FORMA NORMAL

IMPORTANTE: O exemplo apresentado tem objetivo exclusivamente didático para esclarecimento dos conceitos envolvidos na aplicação de cada uma das três primeiras Formas Normais. Outros detalhes deveriam ser levados em consideração para o desenvolvimento de um sistema completo. Exemplo: armazenar os valores históricos dos salários, quantidade de horas de cada funcionário nos respectivos projetos, etc.

EXERCÍCIOS

Responda às seguintes perguntas:
1. Explique quando uma tabela esta em conformidade com cada uma das seguintes Formas Normais:

  • 1FN (Primeira Forma Normal)
  • 2FN (Segunda Forma Normal)
  • 3 FN (Terceira Forma Normal)

EXERCÍCIOS

2. Aplique as três primeiras Formas Normais à tabela de pedidos:


EXERCÍCIOS

3. Aplique as três primeiras Formas Normais à tabela de departamentos:

 

EXERCÍCIOS

4. Aplique à tabela abaixo as três primeiras Formas Normais (1FN, 2FN e 3FN):

 

Modelagem de Dados 10

By hermanochico

Modelagem de Dados 10

  • 2,182