NORMALIZAÇÃO: formas normais
NORMALIZAÇÃO: CONCEITOS PRELIMINARES
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:
1 FN: PRIMEIRA FORMA NORMAL
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