Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
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 cujas chaves 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)