You are on page 1of 9

Projeto Lógico de

Bancos de Dados
Normalização
PROJETO LÓGICO
NORMALIZAÇÃO

Técnica de decomposição de esquemas

(decomposição de tabelas)

A teoria da normalização objetiva a simplificação das estruturas de dados visando evitar as chamadas
anomalias de atualização.

Também pode ser utilizada como técnica de validação do esquema conceitual.

Ø Visa evitar anomalias de atualização

Inserção
Deleção
Alteração

Ø Formas normais

PRIMEIRA FORMA NORMAL


SEGUNDA FORMA NORMAL
TERCEIRA FORMA NORMAL
outras formas normais

Ø Baseado na análise de dependências funcionais

Dependência Funcional:
Dados dois atributos X e Y de um mesmo conjunto de entidades, diz-se que
Y é dependente funcional de X, ou que X determina Y,
se para cada valor de X corresponde exatamente um valor de Y.

XY

EMPREGADO
Cod_Emp Nome Cargo Salario
001 João da Silva Analista Júnior 1.000,00
003 Maria João Programador Pleno 1.200,00
006 Joice Casa Analista Júnior 1.000,00
009 Caio Carvalho Programador Pleno 1.200,00
002 Carlos Villa Analista Sênior 2.200,00

(identificar as dependências funcionais)

NOTA_FISCAL (Num_NF,Cod_Produto,Descricao,Preco, Data,Quantidade)

Modelagem de Sistemas de Bancos de Dados 2


NOTA_FISCAL
Num_NF Cod_Produto Descricao Preco Data Quantidade
001 PC Computador 1.500,00 15/04/1998 02
001 IMP Impressora 500,00 15/04/1998 01
002 PC Computador 1.500,00 16/04/1998 01
003 PC Computador 1.500,00 14/04/1998 03

Dependências funcionais:
Num_NF  Data
Cod_Produto  Descricao,Preco
Num_NF,Cod_Produto  Quantidade

• Diagrama de dependência funcional: (desenhar)

FUNCIONÁRIO(Cod_Func, Nome, Cod_Depto, Gerente_Depto, Cod_Divisao, Local_Divisao)

Cod_Func  Nome, Cod_Depto, Cod_DivisaoT, Local_DivisaoT


Cod_Depto  Gerente_Depto, Cod_Divisao, Local_DivisaoT
Cod_Divisao  Local_Divisao

PRIMEIRA FORMA NORMAL (1NF)

Uma relação está em primeira forma normal se cada atributo é um atributo simples, ou seja, se não
existem atributos compostos nem atributos multivalorados.

LIVRO
título autor editora
Introd. Sistemas de BD Date Campus
Sistemas de Bancos de Dados {Korth, Silberschatz} McGraw-Hill
Conceptual DB Design {Batini, Ceri, Navathe} Benjamin/Cummings

LIVRO
título autor editora
Introd. Sistemas de BD Date Campus
Sistemas de Bancos de Dados Korth McGraw-Hill
Sistemas de Bancos de Dados Silberschatz McGraw-Hill
Conceptual DB Design Batini Benjamin/Cummings
Conceptual DB Design Ceri Benjamin/Cummings
Conceptual DB Design Navathe Benjamin/Cummings
A Linguagem Delphi Tshu Krutz Campus

Modelagem de Sistemas de Bancos de Dados 3


exercício: colocar na primeira forma normal:

ALUNO(Cod_Aluno, Nome, Telefone(1...3), Endereco (Rua, Complemento))

ALUNO(Cod_Aluno, Telefone, Nome, Rua, Complemento)

SEGUNDA FORMA NORMAL (2NF)

• Dependência funcional TOTAL: quando o atributo (Y) é dependente de TODO o atributo


determinante (X) e não apenas de parte dele
Uma relação está em segunda forma normal se está em primeira forma normal e seus atributos
dependem de TODA chave. Isto é, os atributos não podem depender de apenas uma parte da chave.
obs.: tabelas em 1NF que possuem chaves simples sempre estão em 2NF

Exemplo: transformar a tabela nota_fiscal para obter a 2NF.

Regra de transformação para 2NF e 3NF:


Para cada dependência Funcional que viole a forma normal desejada,
fazer:
• criar, se ainda não existir, uma tabela cuja chave primária é o atributo determinante;
• colocar o atributo dependente nesta tabela e removê-lo da tabela original

Exercício:
EMPREGADO (Cod_Emp, Cod_Proj, Nome, Cargo, Salario, Horas_Alocadas,
Data_Conclusao)
Cod_Emp, Cod_Proj  Horas_Alocadas
Cod_Emp  Nome, Cod_Cargo, Cargo
Cod_Proj  Data_Conclusão
Cargo  Salario

EMPREGADO (Cod_Emp, Nome, Cargo, Salario)
LOTACAO(Cod_Emp, Cod_Proj, Horas_Alocadas)
PROJETO(Cod_Proj, Data_Conclusao)

TERCEIRA FORMA NORMAL (3NF)

Uma relação está em terceira forma normal se está em segunda forma normal e não existe
dependência funcional entre os atributos não-chave. Isto é, os atributos não-chave são independentes
entre si.

Exemplo: transformar a tabela funcionário para obter a 3NF.

• Dependência Funcional Transitiva: Se A  B e B  C então A  C

Modelagem de Sistemas de Bancos de Dados 4


Exercício: transformar a tabela empregado até obter a 3NF.

• Observar que a 3NF não se preocupa com dependências de atributos que faze parte de chaves
(atributos primos). Assim, admite-se a DF X  A, onde A é membro de alguma chave, podendo
X ser ou não chave. (vide BCNF). Neste caso nem todas as redundâncias são eliminadas. - vide
exemplo a seguir

FORMA NORMAL BOYCE-CODD (BCNF) 3½

• A 3NF não trata adequadamente relações onde ocorrem chaves candidatas que ao mesmo tempo
são múltiplas (mais de uma), compostas (formadas por mais de um atributo) e sobrepostas (com
pelo menos um atributo em comum).

A BCNF trata estes casos, englobando também a 3NF.

Uma relação está na forma normal de Boyce-Codd se todo determinante (lado esquerdo de suas
dependências funcionais) for uma chave super-chave (identificador, não necessariamente minimal).

A definição da BCNF é mais simples, e não menciona as demais formas.

exemplos: verificar se a relações LIVRO, FUNCIONÁRIO e EMPREGADO violam as regras da


BCNF.

exercício: Verificar se a relação ALUNO(Matricula, Cod_Disciplina , CPF, Conceito) está em 3NF e


BCNF e identificar as anomalias, normalizando se for adequado. Considerar como DFs:
Matricula ↔ CPF (desta DF pode-se concluir outras transitivas)
Matricula, Disciplina  Conceito
CPF, Disciplina  Conceito
Limites da BCNF: Nem sempre uma relação pode ser decomposta para BCNF sem que as
dependências funcionais possam ser verificadas na própria tabela, obrigando a uma verificação nas
junções (relação atômica). Nestes casos a 3NF normalmente é a forma desejada. (sempre é possível
obter a 3NF preservando as dependências).

exemplo:
PROGRAMACAO ( filme, local, cidade )
local  cidade ( um local pode ter mais de uma sala de projeção)
filme, cidade  local (um filme nao passa ao mesmo tempo em mais de um
local na mesma cidade)

(exercício: desenhar diagrama de dependências - são dois, e identificar anomalias)

Procurando as chaves, temos: {filme, cidade} e {local, filme}


Asism, local  cidade viola a BCNF

Aplicando as regras de decomposição teríamos tabelas cuja junção das tuplas admite a violação da
dependência filme, cidade  local:
PROGRAMACAO ( local, filme ) {(Guion,Central do Brasil),(Baltimore,Central do Brasil)}
LOCALIZACAO ( local, cidade ) {(Guion,Porto Alegre),(Baltimore,Porto Alegre)}
Junção: {(Guion,Porto Alegre, Central do Brasil),(Baltimore,Porto Alegre, Central do Brasil)}

Modelagem de Sistemas de Bancos de Dados 5


Neste caso a opção seria pela 3NF. Mas como seria representado que um local está em uma cidade,
sem mencionar um filme ? Utilizando valores nulos.

OBS: Toda a relação com apenas dois atributos sempre está em BCNF. Porquê ?

Outras formas normais:


Na maioria dos casos, colocar os dados na 3NF provê o nível de normalização adequado. Em alguns
casos pode ser importante a aplicação de outros níveis de normalização, como a 4NF ou até mesmo
a 5NF.

QUARTA FORMA NORMAL (4NF) - deppendências multivaloradas

Uma relação está em quarta forma normal se está na terceira forma normal e as dependências
multivaloradas dependem da chave.

DISCIPLINA
Disciplina Professor Bibliografia
Org. Banco de Dados {Karin, Eduardo} {Date, Siberschatz}
Projeto Arquivos Eduardo {Date, Santos, Setzer}

Dependências funcionais: -
Colocando em 3NF e BCNF:
DISCIPLINA
Disciplina Professor Bibliografia
Org. Banco de Dados Karin Date
Org. Banco de Dados Karin Silberschatz
Org. Banco de Dados Eduardo Date
Org. Banco de Dados Eduardo Silberschatz
Projeto Arquivos Eduardo Date
Projeto Arquivos Eduardo Santos
Projeto Arquivos Eduardo Setzer
obs: outras formas poderiam ser utilizadas para representação, mas todas ainda com anomalias

Resolução intuitiva:

DISCIPLINA_PROFESSOR
Disciplina Professor
Org. Banco de Dados Karin
Org. Banco de Dados Eduardo
Projeto Arquivos Eduardo

DISCIPLINA_BIBLIOGRAFIA
Disciplina Bibliografia
Org. Banco de Dados Date
Org. Banco de Dados Silberschatz
Projeto Arquivos Date
Projeto Arquivos Santos
Projeto Arquivos Setzer

Dependência Multivalorada: Y  Z

Modelagem de Sistemas de Bancos de Dados 6


Definição: Em uma determinada relação, diz-se que Z é multidependente de Y (ou que Y
multideterminda Z) se sempre que o ocorrerem a tuplas (x1,y,z1) e (x2,y,z2) também ocorrerem as
tuplas (x2,y,z1) e (x1,y,z2).
X1 z1
y
z2

X2

O relacionamento entre Disciplina e Professor é uma de dependência multivalorada (Disciplina 


Professor) porque para cada par de valores <disciplina,bibliografia> na tabela, os valores associados
de <professor> são determinados somente por <disciplina> e são independentes de <bibliografia>.
Da mesma forma, Disciplina  Bibliografia
Normalmente este tipo de dependência ocorre quando dois relacionamentos independentes estão
representados numa mesma tabela, ocasionando então anomalias.

exercício: identificar as dependências multivaloradas e transformar para 4NF:

Funcionário Projeto Habilidade


120 01 Projeto
120 01 Programação
120 01 Documentação
120 08 Projeto
120 08 Programação
120 08 Documentação

• Violações da 4NF ocorrem usualmente em relacionamentos ternários, que nestes casos


devem ser decompostos. Apenas os relacionamentos ternários em 4NF não podem ser
decompostos em relacionamentos binários.

QUINTA FORMA NORMAL (5NF)

De forma simplificada, pode-se dizer que uma relação está em quinta forma normal quando seu
conteúdo não pode ser reconstituído a partir de várias outras tabelas.

exemplo:

Vendedor Fabricante Veiculo


Smith Ford Automóvel
Smith Ford Caminhão
Smith GM Automóvel
Smith GM Caminhão
Jones Ford Automóvel

Considerando-se a regra: se um vendedor vende um certo tipo de veículo e ele representa o


fabricante daquele tipo de veículo, então ele vende aquele tipo de veículo para aquele fabricante

Modelagem de Sistemas de Bancos de Dados 7


(regra de simetria), a relação acima pode ser decomposta em três outras relações, e portanto não
está na 5NF:

Vendedor Fabricante
Smith Ford
Smith GM
Jones Ford

Vendedor Veiculo
Smith Automóvel
Smith Caminhão
Jones Automóvel

Fabricante Veiculo
Ford Automóvel
Ford Caminhão
GM Automóvel
GM Caminhão

As relações acima não podem ser decompostas, estando assim na 5NF.


Para recompor a mesma informação serão necessários as três relações.

Considerações sobre a 4NF e 5NF:

• A 5NF trata de fatos multivalorados dependentes, enquanto que a 4NF trata de fatos
independentes.
• A 4NF decompõe uma relação aos pares (substitui uma relaçào por duas de suas projeções),
enquanto que a 5NF é utilizada quando uma decomposição aos pares não é possível, como no
caso acima (no caso, a relação foi decomposta em três outras, sem perdas)

não normalizado

1NF
NORMALIZAÇÃO

2NF

3NF

outros

Modelagem de Sistemas de Bancos de Dados 8


Considerações sobre a normalização:

Ø A normalização de relações leva a um modelo correto do ponto de vista teórico, que pode não
ser o ideal do ponto de vista prático.
Ø Desnormalização: processo de unificação de tabelas normalizadas em função de considerações
de eficiência (ex: tempo de resposta e espaço de armazenamento)

Modelagem de Sistemas de Bancos de Dados 9