Você está na página 1de 20

Normalização de

Banco de Dados
Normalização

A normalização de dados é uma série de


passos que se segue no projeto de um
banco de dados que permite um
armazenamento consistente e um eficiente
acesso aos dados em um banco de dados
relacional. Esses passos reduzem a
redundância de dados e as chances dos
dados se tornarem inconsistentes.
Formas Normais

O Processo de normalização aplica


uma série de regras sobre as tabelas
de um banco de dados, para verificar
se estas estão corretamente
projetadas.
Apesar de existir outras formas
normais como a quarta forma normal
e quinta forma normal, apenas as três
primeiras tem sido considerada
atualmente.
Primeira Forma Normal

Uma relação R está na 1FN se:

Todos os atributos de uma tabela forem


atômicos, ou seja, a tabela não deve
conter grupos repetidos e nem atributos
com mais de um valor.
Procedimentos

 Identificar a chave primária da


entidade.
 Identificar o grupo repetitivo e

removê-lo da entidade.
 Criar uma nova entidade com a

chave primária da entidade anterior


e o grupo repetitivo.
A chave primária da nova entidade será
obtida pela concatenação da chave
primária da entidade inicial e a do grupo
repetitivo.
Exemplo
PESSOAS (ID, NOME, ENDERECO,
TELEFONES)

A tabela acima contém a chave primária ID.


O atributo TELEFONES é um atributo
multivalorado e, portanto, a tabela não está
na 1FN.
Para deixá-la na 1FN, vamos criar uma nova
tabela chamada TELEFONES que conterá
PESSOA_ID como chave estrangeira de
PESSOAS e TELEFONE como o valor
multivalorado que será armazenado.
PESSOAS (ID, NOME, ENDERECO)

TELEFONES (PESSOA_ID, TELEFONE)


Segunda Forma Normal
Para estar na 2FN é preciso estar na 1FN.

Além disso, todos os atributos não chaves


da tabela devem depender unicamente da
chave primária (não podendo depender
apenas de parte dela).
Procedimentos:

• Identificar os atributos que não são


funcionalmente dependentes de toda
a chave primária.

Remover da tabela todos esses
atributos identificados e criar uma
nova tabela com eles.
A chave primária da nova tabela será
o atributo do qual os atributos
removidos são funcionalmente
dependentes.
Exemplo
ALUNOS_CURSOS (ID_ALUNO,
ID_CURSO, NOTA, DESCRICAO_CURSO)
Nessa tabela, o atributo
DESCRICAO_CURSO depende apenas da
chave primária ID_CURSO.
Dessa forma, a tabela não está na 2FN. Para
tanto, cria-se uma nova tabela chamada
CURSOS que tem como chave primária
ID_CURSO e atributo DESCRICAO
retirando, assim, o atributo
DESCRICAO_CURSO da tabela
ALUNOS_CURSOS.
Exemplo

ALUNOS_CURSOS (ID_ALUNO, ID_CURSO,


NOTA)

CURSOS (ID_CURSO, DESCRICAO)


Terceira Forma Normal
Para estar na 3FN, é preciso estar na 2FN.
Além disso, os atributos não chave de uma tabela
devem ser mutuamente independentes e
dependentes unicamente e exclusivamente da
chave primária.
Um atributo B é funcionalmente dependente de A
se, e somente se, para cada valor de A só existe
um valor de B
Para atingir essa forma normal, é preciso
identificar as colunas que são funcionalmente
dependentes das outras colunas não-chave e
extraí-las para outra tabela.
Procedimentos:

• Identificar todos os atributos que


são funcionalmente dependentes
de outros atributos não-chave.
• Removê-los e criar uma nova tabela
com os mesmos.
A chave primária da nova entidade
será o atributo do qual os atributos
removidos são funcionalmente
dependentes.
Exemplo

FUNCIONARIOS (ID, NOME, ID_CARGO,


DESCRICAO_CARGO)

O atributo DESCRICAO_CARGO depende


exclusivamente de ID_CARGO (atributo não-
chave) e, portanto, deve-se criar uma nova
tabela com esses atributos.
Dessa forma, ficamos com as seguintes tabelas:

FUNCIONARIOS (ID, NOME, ID_CARGO)

CARGOS (ID_CARGO, DESCRICAO)


Exercício
Normalize a tabela EMPREGADOS a seguir.

Você também pode gostar