Você está na página 1de 20

Universidade da Beira Interior

Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada


e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata
3. Teoria da Normalizao
3.1. Dependncias Funcionais
3.2. Normalizao

3.2.1. Primeira Forma Normal (1FN)


Uma relao est na 1 Forma Normal se
. Cada atributo contm apenas valores atmicos.
. No h conjuntos de atributos repetidos descrevendo a mesma
caracterstica.
Exemplo de relaes que no esto na 1Forma Normal
1)
PessoaCursos1
Nome

Endereo

NIF

Cursos

Artur

Covilh

123456789

Programador

Ana

Fundo

222222222

Operador, Programador

Carlos

Covilh

222333444

Analista, Programador, Operador

Paulo

Guarda

555666777

Operador, Analista

- O atributo Cursos contm valores no atmicos !!!

_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

81

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

2)
PessoaCursos2
Nome

Endereo

NIF

Curso1

Curso2

Artur

Covilh

123456789

Programador

Ana

Fundo

222222222

Operador

Programador

Carlos

Covilh

222333444

Analista

Programador

Paulo

Guarda

555666777

Operador

Analista

Curso3

Operador

- So repetidos atributos do mesmo tipo, curso1, curso2, curso3.


(Diz-se que a relao tem um grupo repetitivo)
- Os tuplos correspondentes a alunos com apenas 1 ou dois cursos vo
ter valores nulos para alguns atributos.
- Como representar uma pessoa com mais do que trs cursos?
Suponhamos a relao,
R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente,
(Cod_produto, Desc_produto, Preo_produto, Quantidade)* )
* - Os dados de cada produto encomendado (isto , de cada linha da nota de
encomenda) constituem um grupo de atributos que se repete.
Como decompor a relao?
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

82

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

A uma nota de encomenda corresponde um nico cliente (n e nome) e uma


nica morada de cliente. Isto , existe a Dependncia Funcional,
N_nota_enc Cod_cliente, Nome_cliente, Morada_cliente

Podemos decompor a relao R nas relaes:


(ver seco 3.1 ponto 10 decomposio sem perda)
Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)
e
Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto,
Preo_produto, Quantidade)
A chave da relao Nota_de_enc N_nota_enc.
A chave da relao Linha_nota_enc N_Nota_enc, Cod_produto
Ambas as relaes esto na 1 Forma Normal (no tm grupos repetitivos).
3.2.2. Segunda Forma Normal (2FN)
Seja a relao, R( Fornecedor, Pea, Cidade, Quantidade)
em que
Fornecedor Pea
Pea Fornecedor
Fornecedor Cidade
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

83

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Num instante t,
R
Fornecedor

Pea

Cidade

Quantidade

Empresa A

Covilh

100

Empresa A

Covilh

200

Empresa A

Covilh

300

Empresa B

Fundo

400

Empresa B

Fundo

500

Algumas anomalias:
Insero: No possvel inserir um fornecedor sem que ele fornea alguma
pea (Pea faz parte da chave).
Eliminao: Se, por exemplo, a empresa B deixar de fornecer as peas 1 e
3, perdemos a informao sobre a cidade desse fornecedor.
Modificao: Supondo que um fornecedor muda de cidade. Actualizar R
significa actualizar todos os tuplos desse fornecedor.
Se substituirmos R por
R1 = <Fornecedor, Cidade> (R)

R1(Fornecedor, Cidade)

R2 = <Fornecedor, Pea, Quantidade> (R)

R2 (Fornecedor, Pea, Quantidade)

desaparecem as anomalias.
A DF Fornecedor Cidade
garante que R = R1

<Fornecedor = Fornecedor >

R2

_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

84

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Definio: Dependncia Funcional Elementar


Seja R (X,Y,Z, ...) com X, Y, Z conjuntos de atributos,
a DF X Y elementar se X X : X Y

Definio: Dependncia Funcional Parcial


Se X Y e X Y (com X X ) diz-se que X Y uma
dependncia funcional parcial.
Definio: 2 Forma Normal
Seja R (A1, A2, ... , An ),
R est na 2FN sse Ai chave(s) ,

X chave, se verifica que

X Ai elementar
De outra forma:
- Uma relao est na 2 forma normal se est na 1 FN e os atributos
que no so chave dependem da totalidade da chave.
Nota:
Um atributo pertencente a uma chave diz-se um atributo primo.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

85

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Exemplo:
Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preo_prod,
Quantidade)
As dependncias funcionais,
N_nota_enc, Cod_produto Desc_produto
N_nota_enc, Cod_produto Preo_produto
no so elementares, porque
Cod_produto Desc_produto (1)
Cod_produto Preo_produto (2)
A relao Linha_nota_enc vai dar origem a:
Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade)
Produto ( Cod_produto, Desc_produto, Preo_produto)

A DF Cod_produto Desc_produto, Preo_produto (obtida por unio


de (1) e (2)) garante que a decomposio vlida.

_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

86

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Casos especiais de relaes em 2FN:


. Se todos os atributos de uma relao so primos.
ou
. A chave da relao consiste num nico atributo.
Ento a relao est na 2 forma normal.
Nota: A definio de 2FN no probe a existncia de DF parciais entre
atributos primos.
Decomposio em 2 Forma Normal
Toda a relao R que no esteja na 2FN pode ser decomposta num conjunto
de projeces que esto na 2FN.
Dem.
Suponhamos que R (A1, A2, ... , An ) no est na 2FN.
Ento existem subconjuntos disjuntos de { A1, A2, ... , An}, X e Y, tais que:
- Y no tem atributos chave
- X chave
- Existe a DF parcial X Y
Seja Z o conjunto de atributos que no pertenam nem a X nem a Y.
R pode ser representada por R(X,Y,Z)
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

87

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Se X Y uma DF parcial, ento X pode ser representado por XX onde


X Y uma DF elementar.
Num primeiro passo da decomposio substitumos R(XYZ) por
<X, Y> (R) e <X , Z> (R)
- <X, Y> (R) est na 2FN porque
. X Y elementar
. Y contm todos os atributos no primos
- Se <X , Z> (R) no est na 2FN aplicamos novamente o procedimento
anterior.
___
Resumindo, para vermos se uma relao est na 2FN:
1 Identificamos a chave da tabela. Se a chave for apenas um atributo, ou
for constituda por todos os atributos da relao, ento podemos concluir
que est na 2FN.
2 Se a chave for composta (tiver mais do que um atributo) verificamos se
h atributos que no so chave e que dependem apenas de parte da chave.
Se no houver, ento est na 2FN.
Se houver, ento decompor de acordo com o esquema anterior.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

88

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

3.2.3. Terceira Forma Normal (3FN)


Seja E ( N_emp, Dep, Cidade) com
N_emp Dep
Dep N_emp
Dep Cidade
Cidade Dep
E
N_emp

Dep

Cidade

Anomalias
Insero: no podemos inserir um departamento se no tem empregados
Eliminao: Se eliminamos o ltimo empregado de um departamento
perdemos a informao do departamento
Modificao: O atributo cidade repetido para cada empregado de um
dado departamento; Uma alterao da localizao de um departamento
implica alterar a localizao de todos os empregados desse departamento.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

89

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

E( N_emp, Dep, Cidade) est na 2 forma normal !


Se substituirmos E por
Empregado = <N_emp, Dep> (E) e Departamento = <Dep, Cidade> (E)
desaparecem as anomalias.
A DF Dep Cidade garante que
E = Empregado

<Dep=Dep>

Departamento

Ficamos com o esquema relacional


Empregado (N_emp, Dep)
Departamento (Dep, Cidade)
Definio: Dependncia Funcional Directa
Seja R(X,Y,Z, ...) X Z directa sse
YR: Y X,XY eYZ

(no trivial)

X Z directa
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

90

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Definio: 3 Forma Normal


Seja R (A1, A2, ... , An ),
R est na 3FN sse Ai chave(s) , X chave, se verifica que
X Ai directa
De outra forma:
- Uma relao est na 3FN se est na 2FN e nenhum dos atributos
no chave depende de outro tambm no chave. !
Exerccio: provar que se uma relao est na 3FN ento est tambm na
2FN
Resoluo: Suponhamos que R est na 3FN mas que tem um atributo Ai
(no chave) que depende parcialmente de um conjunto de atributos X, com
X chave de R (Isto , no est na 2FN).
Para algum X X, X X Ai logo
X Ai no directa e portanto R no est na 3FN.
Decomposio em 3 Forma Normal
Toda a relao R que no esteja na 3FN pode ser decomposta num conjunto
de projeces que esto na 3FN.
Se X Y ( com X chave), Y X e Y Z (no trivial)
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

91

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

(isto , existe X Z no directa, com Z no chave)


Decompor em

R(YZ) e R(XYW) onde W tem todos os atributos que no so de X, nem de


Y nem de Z.
Exemplo 1:
Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)
Cod_cliente Nome_cliente
Cod_cliente Morada_cliente
por unio, Cod_cliente Nome_cliente, Morada_cliente
(logo a DF N_nota_enc Nome_cliente, Morada_cliente (no directa)
A relao no est na 3FN.

Decomposio:
Cliente ( Cod_cliente , Nome_cliente, Morada_cliente)
Nota_enc ( N_nota_enc, Cod_cliente )

_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

92

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Exemplo 2:
Cliente ( Cdigo, Nome, Morada, Cod_postal)
com, Cdigo Nome
Nome Cdigo

=> (por transitividade) Nome Morada

Cdigo Morada
Cdigo Morada - Esta dependncia funcional directa ?
A relao est na 3 forma normal?
Resposta: _____________
Exerccio: Normalize em 3FN o esquema relacional abaixo.
Clientes ( N_cliente, (Endereos_para_remessa) * , Saldo,
Limite_de_crdito, Desconto)
* - grupo repetitivo
Peas ( N_pea, Cod_armazm, Qtd_stock_armazm,
Min_stock_armazm, Desc_pea, Cor)
- Uma pea pode existir em vrios armazns.
Encomendas ( N_enc, Cod_cliente, Endereo_remessa, Data,
(N_pea, Qtd_pedida, Qtd_enviada)* )
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

93

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

3.2.4. Forma Normal de Boyce-Codd (FNBC)


Seja R (Cidade, Endereo, Cod_postal) com
Cidade, Endereo Cod_postal
Cod_postal Cidade
Chaves:
Cidade, Endereo
Endereo, Cod_postal
A relao est na 3FN mas existem algumas anomalias:
Cidade

Endereo

Cod_postal

c1

e1

p1

c1

e2

p2

c1

e3

p2

c2

e4

p3

Insero: No podemos inserir o cdigo postal de uma cidade se no


especificarmos o endereo.
Eliminao: Ao eliminarmos o ltimo endereo de um dado cdigo postal
perdemos a cidade correspondente.
Modificao: Se alterado o cdigo postal de uma cidade necessrio
alterar o cdigo postal de todos os endereos com esse cdigo postal.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

94

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Definio: Forma Normal de Boyce-Codd


Uma relao R (A1, A2, ... , An ) est na Forma Normal de Boyce-Codd sse
X Y no trivial: X e Y conjuntos de atributos de R:
X chave candidata de R
De outra forma:
- Uma relao est na FNBC se e s se todo o determinante da relao
for uma chave candidata.
Voltando ao exemplo anterior:
Chaves:
Cidade, Endereo
Endereo, Cod_postal
e existe a DF Cod_postal Cidade
Cod_postal no chave candidata logo a relao no est na FNBC.
Decomposio:
R1 (Cod_postal, Cidade)
R2 ( Endereo, Cod_postal)
Observao: A FNBC s diferente da 3FN se a relao tem mais do que
uma chave.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

95

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Exemplo 1:
E ( Emp, Dep, Cidade)
Emp Dep
Dep Emp
Dep Cidade
Cidade Dep
No est na 3FN ( porque a DF Emp Cidade no directa)
No est na FNBC ( porque na DF Dep Cidade o determinante (Dep)
no chave candidata).
Decomposio:

Duas decomposies sem perda


de informao. Qual escolher?

(1)
E1 ( Emp, Dep)
E2 ( Emp, Cidade)

Emp Dep
Emp Cidade

ou
(2)
E1 (Emp, Dep )
E2 (Dep, Cidade)

Emp Dep
Dep Cidade

Em (1) perdemos a DF Dep Cidade.


Em (2) preservamos as DFs (Emp Cidade obtm-se por
transitividade). A decomposio (2) portanto a decomposio correcta.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

96

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Exemplo 2:
Nota_enc( N_nota_enc, Cod_cliente, Nome_Cliente, Morada_cliente)
Cod_cliente Nome_cliente
Cod_cliente Morada _cliente
No est na 3FN (ver pgina 92)
No est na FNBC
(Porque na DF Cod_cliente Nome_cliente, Morada_cliente
Cod_cliente no chave candidata)
Decomposio:
NE1 ( N_nota_enc, Cod_cliente)
NE2 ( Cod_cliente, Nome_cliente, Morada_cliente)
3FN
FNBC
Exemplo 3: Relao com duas Chaves candidatas no sobrepostas.
F( N_forn, Nome_forn, Cidade, Tipo)
N_forn Nome_forn
Nome_forn N_forn
N_forn Cidade, Tipo
Nome_forn Cidade, Tipo
3 FN? ____________________

Chaves candidatas:
N_forn
Nome_form

FNBC? ________________

_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

97

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Exemplo 4: Relao com duas Chaves candidatas sobrepostas.


F( N_forn, Nome_forn, N_pea, Qtd)
N_forn Nome_forn
Nome_forn N_forn

Chaves candidatas:

N_forn, N_Pea Qtd

N_forn, N_pea
Nome_forn, N_pea

3FN ? sim
FNBC ? no, porque na DF
N_forn Nome_forn
N_forn no chave candidata.
Decompor em:
F1 ( N_forn, Nome_forn)
F2 ( N_forn, N_pea, Qtd)
Ambas esto na FNBC.
Se uma relao est na FNBC ento est na 3FN.
Dem. Seja R (A1, A2, ...An) na FNBC. Suponhamos que existe uma DF no
directa X Ai tal que X Y, Y X e Y Ai para algum Ai no primo e X
chave. (Isto , R no est na 3FN). Mas, se existe Y Ai (no trivial) ento
Y chave candidata de R (porque por hiptese R est na FNBC) e portanto
Y X.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

98

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

Se uma relao no est na FNBC pode ser decomposta num conjunto de


projeces.
Decomposio em FNBC.
Seja R(X,Y,Z) uma relao que no est na FNBC, onde X, Y e Z so
conjuntos de atributos tais que X Y (no trivial) e X Z
(logo X no chave candidata de R)
- Substituir R(XYZ) por R(X,Y) e R(X,Z).
- Se necessrio repetir o processo.
Exerccio: Decomponha em 3FN a relao
Proprietrio( N_carro, Marca, Tipo, Cor, BI, Nome, Data, Preo)
onde
N_carro Cor, Tipo
Tipo Marca, Preo
BI Nome
N_carro, Nome Data

_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

99

Apontamentos de BD I

Universidade da Beira Interior


Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada
e Matemtica /Informtica
Base de Dados I H. Proena, J. Muranho, P. Prata

_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm

100

Apontamentos de BD I

Você também pode gostar