Você está na página 1de 41

BANCO DE DADOS -

NORMALIZAO (REVISO)
P f Angelo
Prof. A l Augusto
A t Frozza,
F MS
M.Sc.
frozza@ifc-camboriu.edu.br
MOTIVAO
| Tipos de chave

y Chave candidata:
| Todas as opes de identificao nica de um registro;

y Chave primria:
| Chave escolhida como identificao nica;

y Chave estrangeira:
g
| Chave que representa uma relao com outra tabela, ou seja,
representa a chave primria da tabela relacionada.
MOTIVAO
| Aps a construo do modelo conceitual dos dados feita a
transformao para um modelo lgico (esquema relacional);

| O conjunto de tabelas obtido representa a estrutura da


informao de um modo natural e completo;

| Mas, necessrio avaliar o grau de redundncias existente;

| A normalizao tem como objetivo modificar o conjunto de


t b l obtido,
tabelas btid pela
l ttransformao
f ddo modelo
d l conceitual
it l em
um outro conjunto de tabelas equivalente, menos redundante
e mais estvel.
MOTIVAO
| O que so relaes (tabelas) bem estruturadas?

y Contem um mnimo de redundncia;

y Permitem aos usurios inserir, modificar e apagar linhas


(registros) em tabelas, sem erros ou inconsistncias.
RELAES BEM ESTRUTURADAS
| Observando as duas tabelas a seguir, qual representa uma
relao bem estruturada?
Empregado 1 Empregado 2
Emp_ID Nome Depart Salrio Emp_ID Nome Depart Salrio Curso Dta de concluso
100 Margarida Marketing 42000 100 Margarida Marketing 42000 SPSS 19-06-2002
140 Hlio Financeira 39000 100 Margarida Marketing 42000 Pesquisa 07-10-2002
110 Cristvo
C Sist.
S Informao
f 41500 140 Hlio
Hli Fi
Financeira
i 39000 IVA 08 12 2002
08-12-2002
190 Loureno Contabilidade 38000 110 Cristvo Sist. Informao 41500 SPSS 01-12-2002
150 Susana Marketing 38500 110 Cristvo Sist. Informao 41500 C++ 22-04-2002
190 Loureno Contabilidade 38000 Investimen 07-05-2002
150 Susana Marketing 38500 SPSS 19-06-2002
150 Susana Marketing 38500 TQM 12-08-2003

| R: a 1, uma vez que s apresenta informaes sobre um


empregado e qualquer modificao, como p.ex. o salrio,
ser limitada a uma nica linha da tabela;

| A 2 contm informaes sobre os empregados e os cursos


que eles frequentaram e a chave primria para esta tabela
ter de ser uma combinao entre EmpID e Curso.
Curso
RELAES BEM ESTRUTURADAS
| Redundncias em uma tabela podem resultar em erros e
inconsistncias, quando o usurio tentar atualizar os dados
na tabela.
tabela

| So trs os tipos de erros:


y Erros de insero caso se pretenda inserir um novo
empregado na tabela 2, como a chave Emp_ID e Curso, s
possvel efetuar a insero se ambas existirem;

y Erros de remoo se, p.ex., os dados do empregado 140 for


apagado da tabela, tambm se perde a informao sobre o curso
que esse empregado
d ffrequentou.
t S que iisso que se
Ser
pretende?

y Erros de modificao imagine que o empregado 100 tem um


aumento de salrio. Ento esse aumento tem de ser registrado
em cada uma das linhas em que a existem ocorrncias desse
empregado No muito prtico
empregado. prtico, certo?
RELAES BEM ESTRUTURADAS
| Ento, a tabela Empregado_2 no uma relao
bem estruturada e pode ser dividida em duas
relaes: Empregado 2
Emp_ID Nome Depart Salrio Curso Dta de concluso
y Empregado 100 Margarida Marketing 42000 SPSS 19-06-2002
100 Margarida Marketing 42000 Pesquisa 07-10-2002
y Curso 140 Hlio Financeira 39000 IVA 08-12-2002
110 Cristvo Sist. Informao 41500 SPSS 01-12-2002
110 Cristvo Sist. Informao 41500 C++ 22-04-2002
190 Loureno Contabilidade 38000 Investimen 07-05-2002
150 Susana Marketing g 38500 SPSS 19-06-2002
150 Susana Marketing 38500 TQM 12-08-2003

| O conceito de Normalizao tem por base esta


explicao e a capacidade de gerar relaes bem
estruturadas.
NORMALIZAO
| Redundncia armazenamento repetido
de dados, que resultam em problemas de:

y Manuteno alterao ou remoo de


registos implica acessos a vrias partes da
base, tornando-se
tornando se dficil manter a coerncia;

y Custo de espao de armazenamento;

y Desempenho as operaes de acesso aos


discos so as que mais afetam o desempenho
dos sistemas.
PROCESSO DE NORMALIZAO

A Normalizao uma tcnica de modelagem de


dados, ligada
g ao modelo relacional, q
que p
pretende
definir um conjunto de tabelas prontas para serem
implementadas numa base de dados relacional.

Pode ser aplicada a um conjunto de dados brutos


(1 tabela
b l > relao
l universal)
i l)
ou a partir de estruturas j existentes.
PROCESSO DE NORMALIZAO
ETAPAS DA NORMALIZAO
Tabelas com
grupos
repetidos
Remover os
grupos repetidos

1 FN

Remover as
dependncias
parciais

2 FN
2

Remover
dependncias
transitivas

3 FN
NORMALIZAO
| A normalizao baseada na anlise das
dependncias funcionais:
y Uma dependncia funcional uma relao particular
entre 2 atributos;

y A B, ou seja, Emp_ID Nome;

y B funcionalmente dependente de A
y A determina B
y B depende de A
NORMALIZAO
| Um atributo pode estar dependente de 2 ou mais
atributos, em vez de um nico.

| So exemplos:
p
y ISBN Ttulo do livro
y N_Funcionario Departamento
| Se se conhece o N_Funcionario (atributo nico) possvel
determinar o Departamento (um funcionrio s pode pertencer
a um departamento)

y Ateno: A anlise das instncias no suficiente para avaliar a


existncia
i t i d de d
dependncias
d i ffuncionais.
i i S o conhecimento
h i t ddo
domnio do problema, obtido atravs da anlise de requisitos um
mtodo vlido para essa concluso.
NORMALIZAO
N_funcionario Nome_Proprio Sobrenome Departamento
1021 Sofia Reis 900
1022 Afonso Reis 700
1023 A t i
Antonio C d
Cardoso 900

| Departamento N_funcionario
N funcionario ?
y No pois Departamento 900 => {1021,1023}

| N_funcionario Departamento ?
y Sim, pois se conhecido o N_funcionario (atributo
nico) possvel determinar o Departamento (um
funcionrio s pode pertencer a um departamento)
NORMALIZAO
N_funcionario Nome_Proprio Sobrenome Departamento
1021 Sofia Reis 900
1022 Afonso Reis 700
1023 Antonio Cardoso 900

| Nome_proprio N_funcionario ?
y No pois podem existir funcionrios com o mesmo
nome => podem haver mltiplos valores de
N_funcionario para o mesmo Nome_prprio
| N_funcionario
f Sobrenome?
S ?
y Apesar de dois funcionrios terem o mesmo
sobrenome se conhecido o N_funcionario
sobrenome, N funcionario determina-
se um s Sobrenome
| N_funcionario todos os restantes atributos
FORMAS NORMAIS
Primeira Forma Normal (1FN)
Eliminar redundncias

Uma tabela se encontra na 1FN se todas as


suas colunas so elementares (atributos
atmicos).
i )
1 FORMA NORMAL
(ELIMINAR REDUNDNCIAS)

Encomendas (#encomenda, n_cliente, cliente,


endereo cliente, dt
endereo_cliente, dt_encomenda,
encomenda,
cod_produto, produto, qtd_encomendada)

Encomendas (#encomenda,
(#encomenda n_cliente,
n cliente cliente
cliente,
endereo_cliente, dt_encomenda)

Itens_Encomenda (#encomenda,
#item encomenda cod_produto,
#item_encomenda, cod produto produto,
produto
qtd_encomendada)
1 FORMA NORMAL
(ELIMINAR REDUNDNCIAS)
COD-ALUNO NOME
| Valores atmicos:
y cidade do cliente (Curitiba)
y Nome do cliente (Joo Carlos) ALUNO
y Id d d
Idade do aluno
l (30 anos))

DISCIPLINA ENDEREO

| Valores no atmicos:
y Disciplina do aluno (matemtica, fsica) multivalorado,
ou seja, o aluno pode estar matriculado em mais de
uma disciplina.
1 FORMA NORMAL
(ELIMINAR REDUNDNCIAS)

COD-ALUNO NOME

ALUNO

DISCIPLINA_1 DISCIPLINA_2 ENDEREO

| No est na 1FN q
quando p
possuir atributos
repetidos.
1 FORMA NORMAL
(ELIMINAR REDUNDNCIAS)

COD-ALUNO NOME

ALUNO

DISCIPLINA DISCIPLINA

| No PK ((chave primria),
p ), apenas
p FK ((chave
estrangeira) ou chave candidata.
1 FN
| Normalize (1FN) a seguinte relao:

Num_estudante, Nome_estudante, curso,


num_disciplinas,
_ p nome disciplinas,
p cod_professor,
_p
nome_professor, grau_professor, nota

a) Identificar a chave primria da entidade;


b)) Identificar o g
grupo
p repetitivo
p e remov-lo da entidade;;
c) Criar uma nova entidade com a chave primria da entidade
anterior e o grupo repetitivo.
FORMAS NORMAIS
Segunda Forma Normal (2FN)
Dependncia total da Chave

O conceito de dependncia
p funcional
apresentado considerando uma tabela R com a
estrutura R(x,y,z,w).

Diz-se que a coluna z funcionalmente dependente


da coluna x se,
se para um dado valor da coluna xx, o
valor da coluna z sempre o mesmo.

Pode dizer-se que x determina z, ou que z depende


funcionalmente de x, x z.
FORMAS NORMAIS
Segunda Forma Normal (2FN)
Dependncia total da Chave

Uma tabela est na 2FN quando estiver na 1FN e as


suas colunas que no so chave primria
dependerem inteiramente da chave primria.
COD_PROD

DEPENDNCIA
FUNCIONAL
PRODUTO
NA CHAVE
PRIMRIA
NOME_PROD
PRECO_PROD
FORMAS NORMAIS
Segunda Forma Normal (2FN)
Dependncia total da Chave
EXEMPLOS DEPENDNCIA NO FUNCIONAL NA CHAVE COMPOSTA:
COD_PROD NR-ORDEM

POSSUI PRECO_PROD
DEPENDNCIA POSSUI DEPENDNCIA
PARCIAL DA CHAVE ORD-PROD PARCIAL DA CHAVE
COMPOSTA. COMPOSTA:
COD_PROD
_ APENAS COD PROD APENAS
COD_PROD
TIPO_ORDEM
NOME_PROD

DATA-FABRIC

POSSUI DEPENDNCIA PARCIAL.


PARCIA
A DEPENDNCIA COM NR-ORDEM
2 FORMA NORMAL
(DEPENDNCIA TOTAL DA CHAVE)

Itens_Encomenda
Itens Encomenda (#encomenda,
(#encomenda #item_encomenda,
#item encomenda
cod_produto, produto, qtd_encomendada)

Itens_Encomenda
Itens Encomenda (#encomenda,
(#encomenda #item_encomenda,
#item encomenda
cod_produto, qtd_encomendada)

Produtos (cod_produto, produto)


2 FN
| Aplique a 2 FN ao exemplo anterior (alunos,
cursos etc.)

a) Identificar os atributos que no so funcionalmente


dependentes de toda a chave primria;
b) Remover da entidade todos esses atributos identificados e
criar uma nova entidade com eles;
c) A chave primria da nova entidade ser o atributo do qual os
atributos removidos so funcionalmente dependentes
dependentes.
FORMAS NORMAIS
Terceira Forma Normal (3FN)
(Eliminar dependncias transitivas)

Uma ttabela
U b l est
t na 3FN quando:
d
| estiver na 2FN e

| se todos os atributos que no pertencem chave


primria, no dependerem de outro atributo que
no a chave
chave.
FORMAS NORMAIS
Terceira Forma Normal (3FN)
(Eliminar dependncias transitivas)

A 3FN iimpe
que cadad coluna
l d
dependad apenas d da
chave primria e no de qualquer outra coluna ou
conjunto de colunas
colunas.
Assim todas as colunas que no pertencem chave
so mutuamente independentes.
independentes

Esta condio permite eliminar dependncias


transitivas.
3 FORMA NORMAL
(ELIMINAR DEPENDNCIAS TRANSITIVAS)

DEPENDNCIA
FUNCIONAL
APENAS COM
A CHAVE! COD_PROD NOME_PROD

PRECO_PROD

PRODUTO
Possui DF com
COD FAMLIA e
COD_FAMLIA
COD_FAMILIA NOME_FAMILIA
COD_PROD
3 FORMA NORMAL
(ELIMINAR DEPENDNCIAS TRANSITIVAS)

Encomendas (#encomenda, n_cliente, cliente,


endereo cliente dt_encomenda)
endereo_cliente, dt encomenda)

Encomendas (#encomenda, n_cliente,


n cliente,
dt_encomenda)
Clientes (n_cliente, cliente, endereo_cliente)
3 FORMA NORMAL
(ELIMINAR DEPENDNCIAS TRANSITIVAS)

| Considere a seguinte tabela destinada a armazenar


informao sobre jogos de futebol e rbitros:

JOGO ((IdJogo,
g Estdio, Nome_arbitro,
_
Categoria_arbitro).

| A tabela encontra-se na 3FN?


a)) Identificar os atributos com DF alm da chave;;
b) Retirar estes atributos da entidade;
c) Gerar nova entidade com estes atributos e a chave o
atributo que possui a DF.
FORMAS NORMAIS
Cadastro de Funcionrio

Funcionrio:
F i i JJoo
dda Sil
Silva
Endereo: Av. Maring, S/N
Telefone: 3622-2010 Celular:
Nome dos filhos: Samuel Maria,
Samuel, Maria Joana
Data de Nascimento dos filhos: 1/01/92, 5/03/94,10/12/97

Tela do
Sistema de
Controle
t l dde
Venda
FORMAS NORMAIS
Tabela fsica do banco de dados

Funcionrio

Atributo Tipo Tamanho Chave


Cod_Funcionario Integer PK
Nome_Funcionario Varchar 50
End_Funcionario Varchar 50
Telefone Varchar 12
Celular Varchar 12
Nome_filhos Varchar 50
Dt_Nasc_filhos Varchar 30
FORMAS NORMAIS

Resultado
Cod_funcionario Nome_Funcionario Nome_Filhos Dt_Nasc_filhos

Carlos da Silva 04/04/1980


001 Joo da Silva
Pedro da Silva 28/07/1985
002 Maria das Dores Carla das Dores 25/05/1980
003 Claudio Soares
Jose Sem Carlos Sem Sobrenome 10/03/1987
004
Sobrenome Maria Sem Sobrenome 23/09/1990

Esta tabela est mal projetada


FORMAS NORMAIS
Forma Normal de Boyce/Cood (BCFN)

A BCFN um aperfeioamento da 3FN, destinada a


lidar com situaes
em q
que se verifique
q a existncia
de mais do que uma chave candidata e que duas
chaves candidatas possuam elementos comuns.

Uma relao est na BCFN quando todos os


atributos
ib esto
ddependentes
d d
da chave,
h d
de toda
d a
chave e de nada mais do que a chave.
FORMA NORMAL DE BOYCE/COOD (BCFN)
((paciente,
i t servio)
i ) mdico
di
R(doente, servio, mdico)
(um doente
doente, num determinado servio hospitalar
sempre observado pelo mesmo mdico e um mdico s
pertence a um e um s servio)
p )

Mas esta soluo permite ter


R1 (paciente,mdico)
um paciente
i com 2 mdicos
di
R2 (mdico, servio)
do mesmo servio

Tratamento a nvel de
aplicao,
p mantendo a
relao R e R2 (criando
redundncia)
FORMA NORMAL DE BOYCE/COOD (BCFN)
| Imagine a relao:

R(CodAluno, CodDisciplina, Professor)

na 3FN, onde os alunos frequentam vrias


disciplinas;

| Cada professor s leciona uma disciplina, mas uma


disciplina pode ser lecionada por vrios
professores;

| Portanto, pode-se verificar a seguinte dependncia


funcional (CodAluno, CodDisciplina) Professor.
FORMA NORMAL DE BOYCE/COOD (BCFN)
| No entanto, existem duas chaves candidatas
compostas

(CodAluno, CodDisciplina) e (CodAluno, Professor)

e o atributo Professor no chave candidata mas


determina o CodDisciplina

(Professor CodDisciplina),
CodDisciplina)

pois um p
p professor s leciona uma disciplina.
p
FORMAS NORMAIS
Quarta Forma Formal (4FN)
Quinta
Qu ta Forma
o a Normal
o a (5FN)
(5 )

Em geral uma relao na BCNF j est na 4FN e


5FN, que surgem para resolver problemas muito
raros:

| Uma relao
encontra-se na 4FN,, se est na BCFN
e no existem dependncias multivalor;

| Uma relao R est na 5FN se no puder ser mais


decomposta sem perda de informao.
CONSEQUNCIAS DA NORMALIZAO

1FN 2FN 3FN BCFN 4FN 5FN

- + relaes
+ - redundncia

Compromisso, bom senso, avaliao do desempenho do


sistema e, eventualmente, necessidade de
desnormalizar
FORMAS NORMAIS
Desnormalizao
O SGBD para alm de implementar o modelo de
dados de um universo, deve considerar alguns
aspectos que permitem melhorias na utilizao do
sistema;
Trata-se de estabelecer um compromisso
p entre a
flexibilidade do sistema e a viabilidade da sua
utilizao;
Pretende-se obter um esquema equilibrado, que no
ponha em risco a integridade da BD, mas que,
simultaneamente,
i lt t ttenha
h um desempenho
d h razovel.
l
Por essa razo, na maioria dos casos, o processo de
normalizao
para
p na 3FN.