Professional Documents
Culture Documents
Normalização
Existem inúmeras regras de normalização, 4 delas são ditas suficientes para a construção de uma
base de dados bem estruturada. Estas regras serão apresentadas a seguir:
Diz que uma tabela está na forma normal quando esta não contém tabelas aninhadas.
Cria-se uma tabela na qual os dados das linhas externas à tabela aninhada são repetidos
para cada linha da tabela aninhada.
Cria-se uma tabela referente a própria tabela que está sendo normalizada e uma tabela
para cada tabela aninhada.
Entretanto, para fins práticos, preferimos a segunda alternativa, mesmo sabendo que ela pode
levar a modelos imperfeitos. A motivação é de ordem prática. No caso de uma tabela não
normalizada, como a do exemplo, que possui apenas uma tabela aninhada, fica fácil visualizar a
tabela na 1FN (primeira forma normal).
1. É criada uma tabela na 1FN referente a tabela não normalizada e que contém apenas as
colunas com valores atômicos, isto é, sem as tabelas aninhadas. A chave primária da
tabela na 1FN é idêntica a chave da tabela não normalizada.
2. Para cada tabela aninhada, é criada uma tabela na 1FN composta pelas seguintes coluas:
- a chave primária de cada uma das tabelas na qual a tabela em questão está aninhada.
- as colunas da própria tabela aninhada
3. São definidas as chaves primárias das tabelas na 1FN que correspondem a tabelas
aninhadas.
Para o conjunto de dados utilizados neste texto teríamos então, após a aplicação da primeira forma
normal (1FN) os seguintes esquemas:
Uma tabela encontra-se na segunda forma normal, quando, além de estar na 1FN, não contém
dependências parciais.
Dependência (funcional) parcial ocorre quando uma coluna depende apenas de ma parte de uma
chave primária composta.
- Copiar para a 2FN cada tabela que tenha chave primária simples ou que não tenha colunas além
chave.
- Para cada Tabela com chave primária composta e com pelo menos uma coluna não chave:
Criar, caso ainda não existir, uma tabela na 2FN que tenha como chave primária a
parte da chave que é determinante da coluna em questão.
Para o exemplo utilizado neste texto temos as seguintes dependências funcionais parciais:
Como resultado após a aplicação da segunda forma normal teremos o conjunto de dados de
exemplo organizado segundo os esquemas apresentados abaixo:
3. Passagem à terceira forma normal
Uma tabela encontra-se na terceira forma normal, quando , além de estar na segunda forma
normal, não contém dependências transitivas.
Dependências transitivas (dependências funcionais transitivas) ocorrem quando uma coluna, além
de depender da chave primária da tabela , depende de outra coluna ou conjunto de colunas da
tabela.
- Copiar para o esquema na 3FN cada tabela que tenha menos que duas colunas não chave, pois
neste caso não há como haver dependências transitivas.
a) Criar uma tabela no esquema da 3FN com a chave primária da tabela em questão.
b) Para cada coluna não chave fazer a seguinte pergunta:
“A coluna depende de alguma outra cluna não chave (dependência transitiva ou
indireta)?”
Para a maioria dos documentos e arquivos, a decomposição até a 3FN é suficiente para obter o
esquema de um banco de dados correspondente ao documento. Na literatura aparecem outras
formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN. Destas a única que tem
importância na prática da engenharia reversa é a quarta forma normal (4FN).
Uma tabela encontra-se na quarta forma normal, quando, além de estar na 3FN, não contém
dependências multi-valoradas.
UTILIZAÇÃO
UTILIZAÇÃO
CodProj CodEmp
CodProj CodEquip
ProjEquip:
CodProj CodEquip
1 1
1 2
2 2
2 4
3 1
3 3
3 5
4 5
ProjEmp:
CodProj CodEmp
1 1
1 2
1 3
2 2
3 3
3 4
4 2
Exercícios:
Resposta:
(CodigoTipoProd,NumeroProd) DescricaoProd
CodigoTipoProd DescricaoTipoProd
NumeroNF DataVenda
NumeroNF CodReg
NumeroNF CodEmp
NumeroNF NomeEmp
3FN