Você está na página 1de 36

DIM0114

Banco de Dados

Prof.: Marianne Diniz


Roteiro
• Motivação
• Normalização
• Dependência Funcional
• Formas Normais
Motivação
• O processo chamado de Normalização é um das atividades do
projeto lógico de banco de dados.

• Seu objetivo é assegurar que as relações surgidas durante o


projeto conceitual e lógico possam atender perfeitamente à
semântica da aplicação (sistema) em questão.
Motivação
• Antes de definir de maneira mais formal o que é
Normalização, vamos observar um pequeno exemplo.

• Essa tabela está mal projetada?


Motivação
• A mesma sofre do que chamamos de anomalias de
atualização: Modificação, Inserção e Remoção.

• O que acontece se um jogador muda de endereço?


• O que acontece se precisamos cadastrar uma nova
habilidade?
• O que acontece se removemos um jogador e esse é o último
relacionado a determinada habilidade?
Motivação
• O que seria ideal?

• Qual o problema com o esquema acima?


Motivação
• O que pode ser feito no modelo relacional?
Normalização
• O que acabamos de fazer foi normalizar a Relação original de
maneira que a mesma não apresente redundâncias que
venham a causar anomalias de atualização.

• Normalização é o processo de refinamento de um projeto de


banco de dados visando eliminar anomalias e
inconsistências.

• Regras de Normalização entram em conflito com o


desempenho.
Normalização
• Um bom projeto conceitual (um bom diagrama Entidade-
Relacionamento) e um bom mapeamento para o modelo
relacional são suficientes para normalizar um esquema
relacional.

• Nesse contexto, a normalização é utilizada somente para


validar o projeto relacional.
Normalização

• Formas Normais
• Regras gerais para projetar esquemas relacionais.
• Obedece uma Hierarquia.
• O processo de Normalização foi proposto inicialmente por Codd. 1FN,
2FN e 3FN.
• Uma definição mais forte da 3FN foi dada por Boyce e Codd: Boyce-
Codd Normal Form.
Normalização

• As Formas Normais são baseadas em dois conceitos


principais:
• Chaves e Dependência Funcional
Dependência Funcional

• Sendo A e B dois grupos de atributos de uma relação R, diz-se


que B é funcionalmente dependente (ou dependente
funcional) de A se, sempre que duas tuplas de R coincidirem
quanto aos valores assumidos pelos atributos de A, elas
necessariamente também coincidem quanto aos valores
assumidos pelos atributos de B. (A é denominado
determinante, neste caso)
• Denota-se: A -> B (A determina B)
Dependência Funcional

• Exemplo:
Dependência Funcional

• Temos também:
Dependência Funcional

• Dependência Funcional Total

• O grupo de atributos B da relação R é dito ser dependente funcional


total do grupo de atributos A, se é dependente funcional de todos os
atributos que compõem A, mas não é funcionalmente de nenhum
subconjunto C de A.
Dependência Funcional

• Exemplo:

• Data_Inscrição depende totalmente do conjunto


(#Cd_Estudante, #Cd_Curso)
Dependência Funcional

• Dependência Funcional Parcial

• Nome_Depósito não é dependente funcional total do conjunto


(#Cd_Peça, #Cd_Depósito)
Dependência Funcional

• Dependência Funcional Transitiva

• Sendo A, B e C três grupos de atributos, diz-se que há dependência


transitiva entre C e A se B é dependente funcional de A, e C é
dependente funcional de B

• A-> B -> C
Dependência Funcional

• Exemplo:
Formas Normais

• 1ª Forma Normal (1FN)


• Uma relação está na primeira forma normal se todos os seus
atributos possuem valores atômicos.
Formas Normais (1FN)

• A relação abaixo não está na 1FN


Formas Normais (1FN)

• A relação normalizada para a 1FN


Formas Normais

• 2ª Forma Normal (2FN)


• Uma relação que tenha uma chave primária composta está na
Segunda Forma Normal se todos os seus atributos que não fazem
parte da chave são dependentes funcionais totais da chave.

• Se uma relação está na 1FN e tem um único atributo na chave então


a mesma já está na 2FN
Formas Normais (2FN)

• A relação abaixo não se encontra na 2FN


Formas Normais (2FN)

• Problemas com a Relação acima:


• Anomalia de Remoção;
• Anomalia de Modificação;
• Anomalia de Inserção.
Formas Normais (2FN)

• Solução
• Extrair a dependência parcial
Formas Normais

• 3ª Forma Normal (3FN)


• Uma relação está na terceira forma normal se estiver na segunda
forma normal e não existirem dependências transitivas entre seus
atributos não chaves.
Formas Normais (3FN)

• A relação abaixo encontra-se na 2FN , mas não se encontra


na 3FN
Formas Normais (3FN)

• Problemas com a Relação acima:


• Anomalia de Inserção/Remoção: Se não tem empregado, não tem
informações sobre departamento.
• Anomalia de Modificações: Se o departamento muda de local, vários
registros serão alterados.
Formas Normais (3FN)

• Solução
• Extrair a dependência transitiva
Formas Normais

• Forma normal Boyce-Codd


• É considerada uma definição mais rigorosa da terceira forma normal.

• “Uma relação está na forma normal Boyce-Codd se está na 3FN e todos os


determinantes são chaves candidatas”
Formas Normais (Boyce-Codd)

• Considere a seguinte relação R que armazena informações


sobre estudante, cursos e tutores.

• Considere também as seguintes restrições:


• Cada curso pode ter n tutores
• Cada tutor está associado a um único curso
• Para cada curso, um estudante possui um tutor
Formas Normais (Boyce-Codd)

• Instância da Relação R
Formas Normais (Boyce-Codd)

• Considere as dependências existentes

• A relação está na 3FN pois a mesma está na 2FN e não


apresenta dependências transitivas entre atributos não
chave.
Formas Normais (Boyce-Codd)

• Apesar de estar na 3FN, pode-se observar as seguintes


anomalias:
• Inserção – Não é possível associar um tutor a um Curso sem que o mesmo esteja
associado a um estudante.
• Modificação – Se o nome do Tutor mudar, vários registros serão afetados.

• Essas anomalias existem pois a relação não está na forma


normal Boyce-Codd em função da dependência funcional
Formas Normais (Boyce-Codd)

• Uma solução para esse cenário seria

Você também pode gostar