You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Banco de Dados
Normalização
Normalização
03/12/2019 1
Normalização
• É um processo que objetiva substituir um conjunto de tabelas e
relacionamentos com dados redundantes, por outro que se
apresente mais estável, evitando perdas e redundância de
informações.
CLIENTE
PEDIDO
FUNCIONÁRIO
?
Modelo instável e com
redundância de dados
Modelo estável e sem
redundância de dados
Normalização 03/12/2019 2
Normalização
• Este processo deve ser realizado para cada tabela do banco de
dados que apresente anomalias de atualização.
• Anomalias de atualização são problemas existentes em tabelas
relacionais não normalizadas, que podem gerar inconsistências
causadas por redundância de dados
• O processo de normalização transforma cada tabela
desnormalizada em tabelas menores até que não reste mais
nenhuma redundância de dados.
• Essa transformação é feita através da aplicação das formas
normais para cada tabela, criando um número maior de tabelas
do que originalmente existente.
Normalização 03/12/2019 3
Normalização Botton-Up
• As formas normais são utilizadas durante a construção dos
modelos conceitual e lógico.
MINIMUNDO
FORMAS
NORMAIS
MODELO
CONCEITUAL
FORMAS
NORMAIS
BANCO
DE
DADOS
SQL
MODELO
LÓGICO
Normalização 03/12/2019 4
Normalização Bottton-Up
• Fatores importantes:
• Abrangência do modelo: quanto mais restrito, maior a chance
da criação de um modelo mais normalizado.
• Facilidade de compreensão e abstração: o correto entendimento
das regras de negócio poderá levar à criação de um modelo mais
normalizado.
• Conhecimento prévio do ambiente: o conhecimento prévio do
ambiente operacional e dos resultados esperados poderá levar à
criação de um modelo mais normalizado.
Normalização 03/12/2019 5
Normalização Top-Down
• As formas normais são aplicadas após a definição do modelo
lógico, para produzir tabelas mais estáveis.
BANCO
DE
DADOS
FORMAS
NORMAIS
MODELO
LÓGICO
MODELO
CONCEITUAL
TABELAS
ESTÁVEIS
Normalização 03/12/2019 6
Dependência Funcional
• É um relacionamento entre pelo menos dois atributos, onde o
valor de um deles determina o valor do outro.
• Um atributo B é funcionalmente dependente de um atributo A se
o valor de A determina o valor de B.
A → B
B é funcionalmente dependente de A
• Supondo que cada aluno tenha um número de matrícula e que
esteja matriculado em apenas um curso.
MAT → CURSO
CURSO é funcionalmente dependente de MAT
Normalização 03/12/2019 7
Dependência Funcional
• Os atributos do lado esquerdo da seta são chamados de
determinantes.
MAT → CURSO
• MAT é o determinante da dependência funcional.
• MAT determina funcionalmente CURSO.
• CURSO depende funcionalmente de MAT.
• Um valor particular de MAT corresponde a um único valor de
CURSO.
• Um valor particular de CURSO pode corresponder a um ou a
vários valores diferentes de MAT.
Normalização 03/12/2019 8
Dependência Funcional
• O determinante de uma dependência funcional pode ser um
conjunto de atributos.
(PEDIDO, PRODUTO → QUANTIDADE
• PEDIDO e PRODUTO são necessários para se determinar a
quantidade de um produto em cada pedido.
• Nem PEDIDO nem PRODUTO determinam sozinhos o valor de
QUANTIDADE.
• Se (X, Y) → (A, B), então, (X, Y) → A e (X, Y) → B.
• Em toda tabela, todos os atributos não-chave possuem
dependência funcional da chave primária da tabela.
Normalização 03/12/2019 9
Dependência Funcional
• Exemplo:
A B C D E
Y J a 5 12
Z M b 8 15
Y K d 5 13
Y J a 5 12
Z N e 8 16
Z M b 8 15
X P c 4 18
X L f 4 14
X P c 4 18
A → D , B → E , (A, B) → C
Normalização 03/12/2019 10
Dependência Funcional Parcial
• Um atributo A tem dependência funcional parcial da chave
primária concatenada, se ele possui dependência funcional de
apenas parte dessa chave.
• Em uma tabela que possua os atributos X, Y, A, B, C e D com X e Y
sendo a chave primária concatenada da tabela:
• Se (X,Y) → A e (X,Y) → C, então A e C possuem dependência
funcional total da chave primária.
• Se X → B e Y → D, então B e D possuem dependência
funcional parcial da chave primária.
X Y A
B C
D
Normalização 03/12/2019 11
Dependência Funcional Transitiva
• Um atributo A tem dependência funcional transitiva da chave
primária, se ele possui dependência funcional de um atributo B,
que possui dependência dessa chave.
• Em uma tabela que possua os atributos X, A, B, C e D com X sendo
a chave primária da tabela:
• Se X → A e A → C, então C possui dependência transitiva da
chave primária.
• Se X → B e B → D, então D possui dependência
transitiva da chave primária.
X A
B
C
D
Normalização 03/12/2019 12
Um Exemplo
Tabelas
desnormalizadas
Normalização 03/12/2019 13
Anomalias de Atualização
• Inserção na tabela CLIENTE:
• Só é possível a inclusão de uma cidade ou país, a partir da
inclusão de um novo cliente.
• Sempre que um novo cliente for inserido, todos os dados de
cidade e país deverão também ser inseridos, mesmo que já se
tenha feito isso anteriormente (inclusão forçada).
• Haverá redundância dos valores de cidade e país,
considerando que em uma mesma cidade ou país poderão
existir vários clientes. Os valores redundantes poderão ser
inseridos de maneiras diferentes, causando inconsistência.
Normalização 03/12/2019 14
Anomalias de Atualização
• Exclusão na tabela CLIENTE:
• A exclusão de uma cidade ou país deverá ser feita em todos os
registros onde esses dados estejam inseridos (exclusão
forçada).
• A exclusão de uma cidade ou país acarretará na exclusão de
um ou vários clientes (exclusão indesejada).
• Alteração na tabela CLIENTE:
• Devido à redundância, a alteração dos valores de uma cidade
ou país poderá necessitar de ser realizada em várias linhas da
tabela.
Normalização 03/12/2019 15
Anomalias de Atualização
• Inserção na tabela FUNCIONÁRIO:
• Só é possível a inclusão de uma cidade, país, setor ou função,
a partir da inclusão de um novo funcionário.
• Sempre que um novo funcionário for inserido, todos os dados
de cidade, país, setor e função deverão também ser inseridos,
mesmo que já se tenha feito isso anteriormente (inclusão
forçada).
• Haverá redundância dos valores de cidade, país, setor e
função. Os valores redundantes poderão ser inseridos de
maneiras diferentes, causando inconsistência.
Normalização 03/12/2019 16
Anomalias de Atualização
• Exclusão na tabela FUNCIONARIO:
• A exclusão de uma cidade, país, setor ou função deverá ser
feita em todos os registros onde esses dados estejam
inseridos (exclusão forçada).
• A exclusão de uma cidade, país, setor ou função acarretará na
exclusão de um ou vários funcionários (exclusão indesejada).
• Modificação na tabela FUNCIONARIO:
• Devido à redundância, a alteração dos valores de cidade, país,
setor ou função poderá necessitar de ser realizada em várias
linhas da tabela.
Normalização 03/12/2019 17
Anomalias de Atualização
• Inserção na tabela PEDIDO:
• Só é possível a inclusão de um produto, a partir da inclusão de
um novo pedido.
• Sempre que um novo pedido for inserido, todos os dados de
produto deverão também ser inseridos, mesmo que já se
tenha feito isso anteriormente (inclusão forçada).
• Haverá redundância dos dados de produto, que poderão ser
inseridos de maneiras diferentes, causando inconsistência.
Normalização 03/12/2019 18
Anomalias de Atualização
• Exclusão na tabela PEDIDO:
• A exclusão de um produto deverá ser feita em todos os
registros onde esses dados estejam inseridos (exclusão
forçada).
• A exclusão de um pedido acarretará na exclusão de um ou
vários produtos (exclusão indesejada).
• Modificação na tabela PEDIDO:
• Devido à redundância, a alteração dos valores de produto
poderá necessitar de ser realizada em várias linhas da tabela.
Normalização 03/12/2019 19
Primeira Forma Normal
• Uma tabela está na primeira forma normal (1FN) se:
• as linhas não contêm itens repetitivos (atributos
multivalorados) que geram tabelas aninhadas. Cada
ocorrência da chave primária deve corresponder a apenas um
valor de cada atributo;
• não existem atributos compostos. Cada atributo deve ser
atômico, ou seja, armazenar a menor quantidade possível da
informação, sem perder sua identidade e funcionalidade.
Normalização 03/12/2019 20
Obtenção da Primeira Forma Normal
• Definir a chave primária da tabela (se não houver).
• Transformar os atributos compostos em atômicos.
• Eliminar os atributos multivalorados, gerando uma tabela para
cada conjunto de itens repetitivos.
• A chave primária da tabela original será chave estrangeira em
cada uma das tabelas geradas.
• A chave primária de cada tabela gerada será a concatenação da
chave estrangeira oriunda da tabela original, com um atributo da
nova tabela.
• Os atributos multivalorados são excluídos da tabela original.
Normalização 03/12/2019 21
Obtenção da Primeira Forma Normal
TABELA A
TABELA A
PK
##################
##################
PK
##################
##################
TABELA B
##################
##################
Conjunto de
atributos
multivalorados
##################
##################
##################
##################
##################
##################
PK
##################
##################
##################
##################
##################
FK
##################
##################
##################
##################
##################
##################
Conjunto de
atributos
multivalorados
##################
##################
##################
##################
##################
##################
##################
##################
##################
PK
TABELA C
################## FK
##################
##################
##################
##################
##################
##################
normalizada 1FN
##################
não normalizada 1FN
Normalização 03/12/2019 22
Obtenção da Primeira Forma Normal
Tabela
desnormalizada
1FN
Normalização 03/12/2019 23
Obtenção da Primeira Forma Normal
Tabelas
normalizadas
1FN
Normalização 03/12/2019 24
Esquema Resultante Após a 1FN
Tabelas obtidas a
partir da 1FN
Normalização 03/12/2019 25
Segunda Forma Normal
• Uma tabela está na segunda forma normal (2FN) se:
• estiver na primeira forma normal. Todos os atributos são
atômicos e não existem atributos multivalorados;
• não existem atributos com dependência parcial da chave
primária composta. Todos os atributos não-chave dependem
funcionalmente da totalidade da chave primária composta por
mais de um atributo.
Normalização 03/12/2019 26
Obtenção da Segunda Forma Normal
• Analisar, para cada atributo não-chave, se existe dependência
parcial da chave primária da tabela.
• Para cada grupo de atributos dependentes parcialmente da
chave, criar novas tabelas que herdarão a chave parcial e todos
os atributos que dependem dessa chave parcial. Essa chave
parcial será a chave primária da nova tabela criada tabela.
• O atributo que está causando a dependência parcial na tabela
original (parte da chave primária), será chave estrangeira nessa
tabela.
• Excluir da tabela original todas as colunas com dependência
parcial da chave.
Normalização 03/12/2019 27
Obtenção da Segunda Forma Normal
TABELA A
TABELA A
PK
##################
##################
FK
FK
PK
##################
##################
FK
FK
##################
##################
TABELA B
##################
##################
Conjunto de
atributos com
dependência
parcial
##################
##################
##################
##################
##################
##################
##################
##################
##################
##################
##################
PK
##################
##################
##################
##################
##################
##################
##################
##################
TABELA C
normalizada 2FN
Conjunto de
atributos com
dependência
parcial
##################
##################
##################
##################
##################
################## PK
##################
##################
##################
##################
##################
##################
##################
não normalizada 2FN
Normalização 03/12/2019 28
Obtenção da Segunda Forma Normal
Tabela
desnormalizada
2FN
Normalização 03/12/2019 29
Obtenção da Segunda Forma Normal
Tabelas
normalizadas
2FN
Normalização 03/12/2019 30
Esquema Resultante Após 2FN
Tabelas obtidas a
partir da 2FN
Normalização 03/12/2019 31
Terceira Forma Normal
• Uma tabela está na terceira forma normal (3FN) se:
• estiver na segunda forma normal. Todos os atributos são
atômicos, não possui atributos multivalorados e não existem
atributos com dependência parcial da chave primária da
tabela;
• não existem atributos com dependência transitiva da chave
primária. Todos os atributos não-chave dependem
diretamente da chave primária da tabela.
• não existem atributos derivados de outros atributos. Todos os
atributos são formados por dados primários, não existindo
atributos calculados, que derivam dos valores de outros
atributos.
Normalização 03/12/2019 32
Obtenção da Terceira Forma Normal
• Analisar, para cada atributo não-chave, se existe dependência
transitiva da chave primária da tabela.
• Para as colunas com dependência transitiva da chave primária,
criar uma nova tabela contendo as colunas com dependência
transitiva e também a coluna que está causando essa
dependência. Essa coluna será a chave primária da tabela criada.
• O atributo que está causando a dependência transitiva na tabela
original, será chave estrangeira nessa tabela.
• Excluir da tabela original os atributos com dependência transitiva
da chave primária e os atributos derivados de outros.
Normalização 03/12/2019 33
Obtenção da Terceira Forma Normal
TABELA A
TABELA A
PK
##################
PK
##################
##################
##################
Conjunto de
atributos com
dependência
transitiva
##################
##################
##################
##################
##################
##################
##################
FK
TABELA B
################## PK
##################
##################
##################
##################
##################
##################
##################
##################
##################
##################
FK
FK
##################
##################
##################
################## FK
TABELA C
##################
##################
Conjunto de
atributos com
dependência
transitiva
##################
##################
##################
##################
##################
##################
################## PK
##################
##################
##################
##################
normalizada 3FN
##################
não normalizada 3FN
Normalização 03/12/2019 34
Obtenção da Terceira Forma Normal
Atributos
derivados
Normalização 03/12/2019 35
Obtenção da Terceira Forma Normal
Normalização 03/12/2019 36
Obtenção da Terceira Forma Normal
Normalização 03/12/2019 37
Obtenção da Terceira Forma Normal
Normalização 03/12/2019 38
Esquema Resultante Após 3FN
Tabelas obtidas a
partir da 3FN
Normalização 03/12/2019 39
Copyright © 2019 Nilton Freire Santos.
Todos os direitos reservados.
Normalização 03/12/2019 40