Buscar

Normalização de Banco de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

23/10/2014 
1 
Banco de Dados 
 
Normalização 
 
 
Normalização 
Chaves 
Chave candidata: atributo ou conjunto de 
atributos que, por suas características de 
unicidade e obrigatoriedade, presta-se a 
identificação de linhas em uma relação. 
Exemplos: 
Alunos ( RA, Nome, Sexo, RG, CPF, TitEleitor, DtMatr, 
SiglaCurso ) 
{ RA,CPF, TitEleitor } 
Disciplinas ( Código, Sigla, Nome, Curso, Ementa, 
CargaHor, Periodo ) 
{ Sigla, Código } 
 
23/10/2014 
2 
Normalização 
Chaves 
 
Chave primária (PK): uma das chaves 
candidatas escolhida como o identificador 
principal da relação. Os critérios para 
escolha de uma chave primária baseiam-se 
na sua minimalidade e em sua estabilidade 
(atributos cujo valor muda menos ao longo 
do tempo são preferidos). Uma relação 
pode possuir diversas chaves candidatas, 
mas apenas uma chave primária. 
 
 
Normalização 
Chaves 
 
Chave simples: formada por um único 
atributo 
Exemplos: 
Alunos ( RA, Nome, Sexo, RG, CPF, TitEleitor, DtMatr, 
SiglaCurso ) 
Cursos ( Sigla, Nome, ValorMens, DtAutoriz ) 
Disciplinas ( Sigla, Nome, Curso, Ementa, CargaHor, 
Periodo ) 
NF ( NrNF, DtNF, VrTotal, CdCli, CdVend ) 
Produtos ( Codigo, Nome, UnidMed, QtDisp, CodForn ) 
 
23/10/2014 
3 
Normalização 
Chaves 
 
Chave composta: formada pela combinação 
de mais de um atributo 
Exemplos: 
AluCursos ( RA, Curso, DtMatr, DtTranc ) 
Matriculas ( RA, Disc, SemLetivo, Nota, Faltas, Resultado ) 
ItensNF ( NrNF, CodProd, QtPed, QtAtend, DtUltAtend ) 
 
 
Normalização 
O processo de normalização 
baseia-se no conceito de forma 
normal. 
 
Uma forma normal é uma regra 
obedecida por uma tabela para que 
esta seja considerada “bem 
projetada”. 
23/10/2014 
4 
Normalização 
Primeira Formal Normal (1FN) 
 
Requer que a relação não apresente 
atributos repetitivos (multivalorados) em 
sua estrutura (não deve conter tabelas 
aninhadas) 
Normalização 
Tabela não normalizada 
 
. 
CodProj Tipo Descr CodEmp Nome CatFunc codSalario DataIniProj 
001 Desenv Estoque 2146 João A1 4 1/11/91 
001 Desenv Estoque 3145 Silvio A2 4 2/10/91 
001 Desenv Estoque 6126 José B1 9 3/10/92 
001 Desenv Estoque 1214 Carlos A2 4 4/10/92 
002 Manuten
ção 
Sistema 
de RH 
6126 José B1 9 3/10/92 
002 Manuten
ção 
Sistema 
de RH 
 
4112 Mário A1 4 1/05/93 
Manuten
ção 
Sistema 
de RH 
 
8191 Marcos A2 4 5/10/90 
23/10/2014 
5 
Normalização 
Tabela 1FN 
 
 
CodProj Tipo Descr 
001 Desenv Estoque 
002 Manutenção Sistema de RH 
CodProj CodEmp Nome CatFunc CodSal DataIniProj 
001 2146 João A1 4 1/11/91 
001 3145 Silvio A2 4 2/10/91 
001 6126 José B1 9 3/10/92 
001 1214 Carlos A2 4 4/10/92 
002 6126 José B1 9 3/10/92 
002 4112 Mário A1 4 1/05/93 
002 8191 Marcos A2 4 5/10/90 
Normalização 
Dependência Funcional 
 
Em uma tabela relacional diz-se que uma 
coluna C2 depende funcionalmente de uma 
coluna C1 quando, em todas as linhas da 
tabela, para cada valor de C1 que aparece 
na tabela, aparecer o mesmo valor de C2 
 
O simbolo é usado para denotar 
dependência funcional. 
 
 
23/10/2014 
6 
Normalização 
Dependência Funcional 
 
 
 
 
 
 
 
A coluna salário depende funcionalmente da 
coluna Código pelo fato de cada valor de 
código estar associado sempre ao mesmo 
valor de salário. 
 
... Código ... Salário ... 
E1 10 
E3 10 
E1 10 
E2 5 
E3 10 
E2 5 
E1 10 
Normalização 
Dependência Funcional 
 
 
 
 
 
 
 
Exemplo: o valor “E1” da coluna código 
identifica o mesmo valor de salário (“10”). 
Sendo assim: Código Salário 
 
 
... Código ... Salário ... 
E1 10 
E3 10 
E1 10 
E2 5 
E3 10 
E2 5 
E1 10 
23/10/2014 
7 
Normalização 
Dependência Funcional 
 
O determinante de uma dependência 
funcional pode ser um conjunto de colunas 
e não somente uma coluna. 
 
Ex. (A,B) C 
 
Neste exemplo a coluna C depende das 
colunas A e B, ou seja, há uma dependência 
funcional (A,B) C 
 
 
Normalização 
Segunda Formal Normal (2FN) 
 
Uma tabela se encontra na 2FN quando, 
além de estar na 1FN, não contém 
dependências parcias. 
 
Dependência parcial ocorre quando uma 
coluna depende apenas de parte de uma 
chave-primária composta. 
23/10/2014 
8 
Normalização 
Segunda Formal Normal (2FN) 
 
CodProj CodEmp Nome CatFunc TipoSal DataIniProj 
001 2146 João A1 4 1/11/91 
001 3145 Silvio A2 4 2/10/91 
001 6126 José B1 9 3/10/92 
001 1214 Carlos A2 4 4/10/92 
002 6126 José B1 9 3/10/92 
002 4112 Mário A1 4 1/05/93 
002 8191 Marcos A2 4 5/10/90 
Normalização 
Tabela 2FN 
 
 
CodProj Tipo Descr 
001 Desenv Estoque 
002 Manutenção Sistema de RH 
CodProj CodEmp DataIniProj 
001 2146 1/11/91 
001 3145 2/10/91 
001 6126 3/10/92 
001 1214 4/10/92 
002 6126 3/10/92 
002 4112 1/05/93 
002 8191 5/10/90 
Nome CatFunc TipoSal 
João A1 4 
Silvio A2 4 
José B1 9 
Carlos A2 4 
José B1 9 
Mário A1 4 
Marcos A2 4 
CodEmp 
2146 
3145 
6126 
1214 
6126 
4112 
8191 
23/10/2014 
9 
Normalização 
Terceira Formal Normal (3FN) 
 
Uma tabela encontra-se na terceira forma 
normal quando, além de estar na 2FN, não 
contém dependências transitivas. 
 
Dependência transitiva ocorre quando uma 
coluna ou conjunto de colunas A depende 
de outra coluna B que não pertence à 
chave-primária, mas é dependente funcional 
desta. 
Normalização 
Terceira Formal Normal (3FN) 
 
A passagem à 3FN consiste em dividir 
tabelas, de forma a eliminar as 
dependências transitivas. 
23/10/2014 
10 
Normalização 
2FN 
 
 
 
 
 
 
3FN 
 
Nome CatFunc TipoSal 
João A1 4 
Silvio A2 4 
José B1 9 
Carlos A2 4 
José B1 9 
Mário A1 4 
Marcos A2 4 
CodEmp 
2146 
3145 
6126 
1214 
6126 
4112 
8191 
Nome CatFunc 
João A1 
Silvio A2 
José B1 
Carlos A2 
José B1 
Mário A1 
Marcos A2 
CodEmp 
2146 
3145 
6126 
1214 
6126 
4112 
8191 
CatFunc TipoSal 
A1 4 
A2 4 
B1 9 
A2 4 
B1 9 
A1 4 
A2 4 
Normalização 
Quarta Formal Normal (4FN) 
 
Uma tabela encontra-se na 4FN, quando, 
além de estar na 3FN, não contém 
dependências multivaloradas. 
CodProj CodEmp CodEquip 
1 1 1 
1 2 1 
1 3 1 
1 1 2 
1 2 2 
1 3 2 
23/10/2014 
11 
Normalização 
Quarta Formal Normal (4FN) 
 
 
 
 
 
 
 
Aqui a coluna codEmp depende 
multivaloradamente da coluna codproj, já que um 
valor de CodProj determina múltiplas vezes um 
conjunto de valores de CodEmp 
 
Tabela não está na 
4FN e deve ser 
decomposta em 
duas tabelas 
(considerando que 
queremos saber 
qual equipamento 
cada projeto/func. 
utiliza. 
Normalização 
Quarta Formal Normal (4FN) 
 
ProjEmp(CodProj, CodEmp) 
ProjEquip(CodProj, CodEquip) 
 
 
 
 
 
 
 
Tabelas do exemplo 
anterior em 4FN CodProj CodEquip 
1 1 
1 2 
2 2 
2 4 
CodProj CodEmp 
1 1 
1 2 
1 3 
2 2 
3 3 
23/10/2014 
12 
Normalização 
Quinta Formal Normal (5FN) 
Trata de casos particulares (relacionamentos múltiplos: ternários, 
quaternários, etc). 
Uma relação está na 5FN, quando, além de estar na 4FN, seu 
conteúdo não puder ser reconstruído a partir de diversas relações 
menoresque não possuam a mesma chave-primária. 
 
 Estrutura Original 
 
 
 
 
 
 
CodMaterial NrRequisicao NrPedido 
M1 R1 P1 
M2 R1 P2 
M2 R2 P1 
Normalização 
Quinta Formal Normal (5FN) 
 
 
 
 
 
 
 
CodMaterial NrRequisicao NrPedido 
M1 R1 P1 
M2 R1 P2 
M2 R2 P1 
23/10/2014 
13 
Normalização 
Quinta Formal Normal (5FN) 
 Solução possível: ( ItensReq |x| ItensPed |x| PedReq ) 
 
 
 
 
 
 
Linha CodMaterial NrRequisicao NrPedido 
1 M1 R1 P1 
2 M2 R1 P1 
3 M2 R1 P2 
4 M2 R2 P1 
1 
1 
1 
2 
2 
2 
3 
3 
3 
4 
4 
4 
Linha gerada a mais pela 
combinação dos dados 
das três tabelas 
Linha 
Resumo 
1FN Não deve conter tabelas Aninhadas 
2FN Não deve conter dependências parcias, ou seja, 
quando uma coluna depende apenas de parte 
de uma chave-primária composta. 
3FN Não contém dependências transitivas, ou seja, 
quando uma coluna, além de depender da 
chave-primária da tabela, depende de outra 
coluna ou conjunto de colunas da tabela. 
 
4FN Não contém dependências multivaloradas. 
5FN Conteúdo original não pode ser reconstruído 
23/10/2014 
14 
Bibliografia 
• Heuser, Carlos Alberto. Projeto de Banco de 
Dados. 6ª edição. Porto Alegre: Bookman, 2009. 
 
• Munari, Antônio Cesar. Apostila de 
Normalização. 
 
•Machado, Felipe. Abreu, Mauricio. Projeto de 
Banco de Dados. Uma visão prática. 15ª edição. 
São Paulo: Erica: 2008.

Outros materiais