Buscar

Normalização de Banco de Dados

Prévia do material em texto

Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Normalização de Relações
Prof. Luiz Antônio Vivacqua C. Meyer
(la.vivacqua@gmail.com)
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
�Normalização de Relações
• O que é ?
– Processo para produzir um projeto lógico a partir do conhecimento de 
uma implementação existente em algum meio físico tal como um 
arquivo, formulário e relatório. 
• Como é feito?
– É um processo formal que avalia cada relação sob os critérios de cada 
forma normal e as decompõe, caso seja necessário.
• Objetivo?
– O objetivo a ser alcançado é substituir um conjunto de relações por 
outro minimizando redundâncias e anomalias de atualização 
(inclusão, alteração e exclusão).
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
� Normalização
• Os esquemas de relações que não atendam a certas condições (definidas 
pelas formas normais) são decompostos em esquemas de relações 
menores que possuem as propriedades desejadas. 
• O procedimento de normalização proporciona ao projetista do banco de 
dados:
• Uma estrutura formal para a análise de esquemas de relações com base em 
suas chaves e nas dependências funcionais de seus atributos.
• Uma série de testes para garantir que o esquema do banco de dados atinja o 
grau de normalização desejado.
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
� Normalização
• Embora existam varias formas normais de alto grau, como as 4FN e
5FN, a utilidade prática destas formas normais é questionável devido as 
restrições as quais são baseadas serem difíceis de entendidas e detectadas 
pelos projetistas e usuários. 
• Em termos práticos, o usual é dar atenção a normalização até as formas 
normais 3FN ou BCNF. 
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
• 1A FORMA NORMAL (1FN): É considerada parte da 
definição formal de uma relação no modelo relacional.
Uma relação está na Primeira Forma Normal (1FN) se 
todos os atributos contiverem valores atômicos e não 
existirem tuplas duplicadas. 
• Ou seja, a 1FN impede que haja ‘relações dentro de 
relações’ e atributos multivalorados, como por exemplo, 
um vetor. 
Prof. Luiz A. Vivacqua C. Meyer 6Prof. Luiz Vivacqua
Projeto de Banco de Dados
� Considere o esquema de tabela INSCRIÇÃO, em que um 
sócio pode estar matriculado em várias atividades 
esportivas.
� INSCRIÇÃO (matricula, nome, {atividade (modalidade, preço)}),
� {( )} indica que o atributo atividade é multivalorado e composto.
INSCRIÇÃO
Atividade Matricula Nome Modalidade Preço 
1267 João Ribeiro 
natação 
musculação 
pilates 
150,00 
120,00 
150,00 
6590 Maria Ramos natação pilates 
150,00 
150,00 
8786 Antonio Vieira Judô 80,00 
0324 Ana Rocha musculação pilates 
120,00 
150,00 
 
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
A tabela INSCRIÇÃO não está na 1FN, pois as colunas modalidade
e preço não possuem valores atômicos.
Processo para obter a 1FN:
• Eliminação dos atributos multivalorados.
• Determinação da nova chave primária: Pk (matricula, modalidade)
Anomalias Existentes:
1. Redundância.
2. Se Antonio Vieira deixar de ser sócio, perde-se a informação que judô custa 80,00.
3. Se quisermos incluir uma nova modalidade, por exemplo, hidroginástica, é preciso 
também incluir algum sócio para a modalidade. 
Matricula Nome Modalidade Preço
1267 João Ribeiro Natação 150,00
1267 João Ribeiro Musculação 120,00
1267 João Ribeiro Pilates 150,00
6590 Maria Ramos Natação 150,00
6590 Maria Ramos Pilates 150,00
8786 Antonio Vieira Judô 80,00
0324 Ana Rocha Musculação 120,00
0324 Ana Rocha Pilates 150,00
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Uma relação está na Segunda Forma Normal (2FN) se está
na Primeira Forma Normal e não existir 
dependência funcional parcial entre a chave 
e os demais atributos não primários.
Dependência Funcional:
É um relacionamento entre pelo menos dois atributos. Por exemplo, dado 
uma relação R (A, B, C, D), onde A, B, C, D são atributos, ocorre uma 
dependência funcional entre atributos de R se conhecendo o valor de um 
atributo, consegue-se determinar um único valor de outro atributo.
Notação: A->C
Atributo não primário: atributo que NÃO é parte de uma 
chave candidata.
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
�Dependência Funcional
Código Nome Cidade
10 Jurídico Rio de Janeiro
20 Pessoal Rio de Janeiro
30 Financeiro São Paulo
Dependências Funcionais:?
Exemplo:
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Dependência Funcional
OBS1:
Se X-> (Y,Z), então X->Y e X->Z
Se (X,Y) -> Z não implica em X->Z ou Y->Z.
OBS2:
Uma coluna depende parcialmente da chave se para que 
seu valor seja determinado não é necessário conhecer a 
chave como um todo, mas sim somente uma parte da chave.
OBS3:
Se a chave da relação é definida por somente uma 
coluna, então a relação está na 2FN.
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Processo para obtenção da 2FN:
1 – Para as colunas que não fazem parte da chave analisar 
se o seu valor é determinado por parte ou totalidade da chave.
INSCRIÇÃO
Matricula Nome Modalidade Preço
1267 João Ribeiro Natação 150,00
1267 João Ribeiro Musculação 120,00
1267 João Ribeiro Pilates 150,00
6590 Maria Ramos Natação 150,00
6590 Maria Ramos Pilates 150,00
8786 Antonio Vieira Judô 80,00
0324 Ana Rocha Musculação 120,00
0324 Ana Rocha Pilates 150,00
Análise das dependências funcionais:
Matricula -> nome modalidade-> preço
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
2 – As colunas que são dependentes funcionais parciais da Pk formarão 
novas tabelas cuja chave primária será à parte da chave de qual dependem.
SÓCIO
Ana Rocha0324
Antônio Vieira8786
Maria Ramos6590
João Ribeiro1267
nomematricula
80,00Judô
150,00Pilates
120,00Musculação
150,00Natação
preçomodalidade
ATIVIDADE
Pk (matricula) Pk (modalidade)
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
3 – As colunas com dependência funcional parcial são removidas da 
relação original
INSCRIÇÃO
Pilates0324
Musculação0324
Judô8786
Pilates6590
Natação6590
Pilates1267
Musculação1267
Natação1267
ModalidadeMatricula
Pk (matricula, modalidade)
Esquema final na 2FN:
Inscrição (matricula, modalidade)
Sócio (matricula, nome)
Atividade (modalidade, preço)
Obs: Anomalias Anteriormente 
Citadas Resolvidas
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Uma relação está na Terceira Forma Normal se está na 
Segunda Forma Normal, e não existir dependência funcional 
entre atributos não primários que não pertencem chave.
Exemplo: Um cliente mora em um único edifício e um edifício tem uma 
única taxa.
ADMINISTRAÇÃO
800,00Cidade400
1.000,00Metropolitan300
800,00Cidade200
500,00Barão de Mauá100
TaxaEdifício Cliente
Pk (Cliente)
Análise das Dependências funcionais:
Cliente -> Edifício, Cliente -> Taxa 
Edifício -> Taxa
Logo a relação está na 2FN mas 
não está na 3FN
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Anomalias:
Se o cliente 300 for excluído, o valor da taxa para o edifício “Metropolitan” é
perdido
Se a Administradora quiser incluir o valor da taxa para um novo edifício, ela 
não poderá fazer até que surja um cliente para o edifício.
ADMINISTRAÇÃO
800,00Cidade400
1.000,00Metropolitan300
800,00Cidade200
500,00Barão de Mauá100
TaxaEdifício Cliente
Pk (Cliente)
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Processo para obtenção da 3FN
1 - Identificar as colunas que não fazem parte da chave primária.
2 - Analisar se existe dependência funcional entre estes atributos.
3- As colunas que têm seu valor determinado por uma coluna não chave, 
formarão novas tabelas cujaschaves primárias serão as colunas que as determinam.
Administração
Cidade400
Metropolitan300
Cidade200
Barão de Mauá100
EdifícioCliente
PK (Cliente)
Condomínio
800,00Cidade
1.000,00Metropolitan
500,00Barão de Mauá
TaxaEdifício
PK (Edifício)
Esquema final na 3FN:
Administração (cliente, edifício)
Condomínio (edifício, taxa)
OBS: ANOMALIAS ANTERIORMENTE CITADAS RESOLVIDAS
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Forma Normal Boyce-Codd
1. Foi proposta como uma forma mais simples de 3FN, mas é
considerada mais rígida que a 3FN, isto é, toda relação na 
BCNF está na 3FN, porém uma relação na 3FN não está
necessariamente na BCNF.
2. A 3FN não tratou satisfatoriamente casos onde uma 
relação tem mais de uma chave candidata, estas chaves são 
compostas e possuem atributos em comum.
DEFINIÇÃO: Uma relação está em BCNF se todo 
determinante for uma chave candidata.
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Forma Normal Boyce-Codd
Exemplo: Seja ENSINO (estudante, disciplina, professor) uma Relação 
com o seguinte significado: 
a) Para cada disciplina, cada estudante recebe aula de apenas um Professor.
b) Cada professor ensina somente uma disciplina.
c) Uma disciplina pode ser ensinada por diversos professores.
RobertoFísica200
JoséMatemática200
MariaFísica100
JoséMatemática100
ProfessorDisciplinaEstudante
ENSINO
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
RobertoFísica200
JoséMatemática200
MariaFísica100
JoséMatemática100
ProfessorDisciplinaEstudante
Forma Normal Boyce-Codd
Chaves Candidatas:
(estudante, disciplina)
(estudante, professor)
Dependências Funcionais:
(estudante, disciplina) -> professor
Professor -> disciplina
Se a PK for (estudante, disciplina) a relação está em 3FN. Se a 
PK for (estudante, professor) a relação também está em 3FN. Em 
ambos os casos, a relação não está em BCNF porque o 
determinante Professor não é uma chave candidata.
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua
Projeto de Banco de Dados
Processo para obtenção da BCFN
1. Identificar as dependências funcionais que violem a BCNF.
2. Para cada dependência funcional achada em 1, criar uma relação com 
a PK igual ao determinante.
3. As colunas que têm seu valor determinado em 1, são excluídas da 
relação original.
Aplicação da BCNF:
Roberto200
Jose200
Maria100
Jose100
ProfessorEstudante
FísicaRoberto
FísicaMaria
MatemáticaJose
DisciplinaProfessor
ENSINO (estudante, professor) LECIONA (professor, disciplina)

Continue navegando