Unidade C - Modelo Lógico

6.4 Normalização de dados

Uma categoria importante de restrições são as dependências de dados, que incluem as dependências funcionais e as multivaloradas. Estas restrições são usadas para certificar o projeto de banco de dados relacional e são utilizadas em um processo chamado Normalização.

Este processo faz com que uma relação passe por diversos testes para que satisfaça uma forma normal.

A normalização de dados é uma seqüência de processos executados nas tabelas em função das suas dependências funcionais e chaves primárias para alcançar algumas propriedades como:

> • Minimização de redundâncias;
> • Minimização de anomalias de inserção, exclusão e atualização.

Há cinco regras que se aplicam a Banco de Dados:

> • Primeira Forma Normal (1FN)
> • Segunda Forma Normal (2FN)
> • Terceira Forma Normal (3FN)
> • Quarta Forma Normal (4FN)
> • Quinta Forma Normal (5FN)

OBS:

Pode-se ter um modelo estável atingindo a terceira forma normal sendo a quarta e a quinta utilizada em casos específicos apenas quando for necessário.

Exemplo de uma tabela Não Normalizada:
cd_Aluno | nome_aluno | dt_nascimento | nome_disciplina
1 | Vera | 2/6/1982 | Português, matemática
2 | Tânia | 9/12/1981 | História, matemática
3 | Matias | 12/11/1980 | Português, história
4 | Carlos | 7/4/1979 | História, matemática
5 | Sérgio | 25/2/1982 | Português, matemática

6.4.1 Primeira Forma Normal (1FN)

Para uma tabela estar na 1FN não poderá conter atributos multivalorados, compostos e combinação entre eles, com isso os atributos devem possuir valores atômicos (indivisíveis).

Vamos utilizar o exemplo da tabela não normalizada acima.

Problema: A coluna disciplina possui atributos multivalorados, que não pode haver na 1FN.
Solução: Para cada disciplina fazer um cadastro novo de Aluno

cd_aluno | cd_disciplina | nome_aluno | dt_nascimento | nome_disciplina
1 | 1 | Vera | 2/6/1982 | Português
2 | 2 | Vera | 2/6/1982 | Matemática
3 | 3 | Tânia | 9/12/1981 | História
4 | 2 | Tânia | 9/12/1981 | Matemática
5 | 1 | Matias | 12/11/1980 | Português
6 | 3 | Matias | 12/11/1980 | História
7 | 3 | Carlos | 7/4/1979 | História
8 | 2 | Carlos | 7/4/1979 | Matemática
9 | 1 | Sérgio | 25/2/1982 | Português
10 | 2 | Sérgio | 25/2/1982 | Matemática

Problema: Com isso, estamos ocasionando o problema de redundância de dados, pois os atributos de alunos estão sendo repetidos para a inclusão de novas disciplinas.

| A primeira forma normal não permite também atributos multivalorados que sejam compostos. São chamados de relações aninhadas, pois contém uma relação em cada tupla. |

6.4.2 Segunda Forma Normal (2FN)

Para resolver o problema da redundância de dados, passamos esta tabela para segunda forma normal. Para isso é preciso: A tabela estar na primeira forma normal e todos os atributos da tabela deve ser dependentes funcionais da chave completa e não de parte da chave. Uma tabela com uma chave primária formada por apenas um atributo esta automaticamente na 2FN.

Exemplo transformando a tabela que esta na 1FN acima

cd_aluno | nome_aluno | dt_nascimento
1 | Vera | 2/6/1982
2 | Tânia | 9/12/1981
3 | Matias | 12/11/1980
4 | Carlos | 7/4/1979
5 | Sérgio | 25/2/1982

cd_disciplina | nome_disciplina
1 | Português
2 | Matemática
3 | História

6.4.3 Terceira Forma Normal (3FN)

Para a transformação na 3FN, eliminamos um outro tipo de redundância de dados. Para transformação precisamos analisar se os atributos não-chave dependem diretamente da chave primária ou se dependem de outros atributos não chave.

Chamamos de dependência transitiva quando uma coluna, além de depender da chave primária da tabela, depende também de outra coluna ou conjunto de colunas da tabela.

ELMASRI, R. NAVATHE, Sistemas de Banco de Dados. 4ª Edição: Addison-Wesley, 2008.
HEUSER, Carlos Alberto. Projeto de Banco de Dados. Porto Alegre: Sagra Luzzatto, 1998