You are on page 1of 45

1

NORMALIZAO
Profa. Leticia Zoby

Introduo
O processo de normalizao pode ser visto como

processo no qual so eliminados esquemas de


relaes (tabelas) no satisfatrios, decompondo-os,
atravs da separao de seus atributos em
esquemas de relaes menos complexas mas que
satisfaam as propriedades desejadas.
A Dependncia Funcional a principal ferramenta

para medir o quo apropriado o agrupamento de


atributos numa relao.

Introduo
Anlise de Dependncia Funcional
Dependncia Funcional

O atributo B funcionalmente dependente do atributo A se, em


qualquer instante, um valor em A determina, de modo nico, o valor
correspondente em B, na mesma relao
Exemplo:
Num-Emp Nome-Emp
O Nome-Emp funcionalmente dependente do Num-Emp, pelo fato
de cada Num-Emp est associado sempre ao mesmo Nome-Emp.

Introduo
Anlise de Dependncia Funcional
Dependncia Funcional

A B, l - se:
A funcionalmente determina B
B funcionalmente dependente de A
B funo de A
Para cada valor de A s existe um valor de B

A B, negao de A B.

A ou B podem ser um conjunto de atributos.

Introduo
Dependncia Funcional
Prope trs tipos de dependncia entre os atributos de uma tabela
Dependncia Funcional Total
Dependncia Funcional Parcial
Dependncia Funcional Transitiva

Introduo
Dependncia Funcional Total
Os atributos de uma tabela tem que depender da chave primria e

somente da chave primria


Um atributo C totalmente funcionalmente dependente da chave
primria composta pelo atributos A e B, quando for funcionalmente
dependente de A e B no dependente funcionalmente de qualquer parte
da chave primria

Exemplo:
Qtde_horas depende da chave primria totalmente.
J Nome_Proj somente de cod_proj.

Introduo
Dependncia Funcional Parcial
O atributo C parcialmente funcionalmente dependente da chave

primria composta pelos atributos A e B quando for funcionalmente


dependente de A ou B e no de ambos A e B.
A dependncia funcional parcial ocorre quando a chave primria
da relao composta e se constitui numa anomalia que se deve
ser evitada

Introduo
Dependncia Funcional Parcial
Soluo: criao de uma nova relao composta pelo atributo ou

atributos que dependem de parte da chave e a chave que


determine, de modo nico, estes atributos

Introduo
Dependncia Funcional Transitiva
O atributo C dependente funcional transitivo (DFT) de A se C

funcionalmente dependente de A, na mesma relao


A DFT constitui uma anomalia que deve ser evitada

10

Introduo
Dependncia Funcional Transitiva
Soluo: criao de uma nova relao que ser composta pelo

atributo ou atributos que so dependentes funcionais transitivos


tendo como chave primria o atributo que determina a
transitividade

11

Introduo
A normalizao importante para identificar um

bom projeto relacional.


Um bom MER e sua consequente converso
para um MR, praticamente deixa o esquema
relacional normalizado.
Utiliza-se a normalizao somente para validar
um projeto relacional.

12

Redundncia de dados
Identidade

Nome

Endereo

Habilidade

8795835

dson Arantes

Ponta da Praia

Futebol

8795835

dson Arantes

Ponta da Praia

Voleibol

8795835

dson Arantes

Ponta da Praia

Basquete

8795835

dson Arantes

Ponta da Praia

Atletismo

8795835

dson Arantes

Ponta da Praia

Tnis

Se Pel mudar de endereo ?


Problemas com atualizao

Um novo esporte para Pel ?


Problemas com incluso

13

Idealmente
Identidade
8795835

Nome
dson Arantes

Endereo
Ponta da Praia

Habilidade
{Futebol,
Voleibol,
Basquete,

Mas isto no uma tabela (atributo


habilidade no atmico)!

Atletismo,
Tnis}

14

Identidade

Nome

Endereo

8795835

dson Arantes

Ponta da Praia

...

...

...

Identidade

Esporte

8795835

Futebol

8795835

Voleibol

8795835

Basquetebol

8795835

Atletismo

8795835

Tnis

A repetio da coluna Identidade


uma redundncia necessria

15

Identidade

Nome

Endereo

Habilidade

8795835

dson Arantes

Ponta da Praia

Futebol

8795835

dson Arantes

Ponta da Praia

Voleibol

8795835

dson Arantes

Ponta da Praia

Basquete

8795835

dson Arantes

Ponta da Praia

Atletismo

8795835

dson Arantes

Ponta da Praia

Tnis

Identidade Nome

Nome Identidade

Identidade Endereo

Habilidade Identidade

Identidade Habilidade

Identidade Nome, Endereo

16

Introduo
O processo de normalizao como foi proposto

inicialmente por Codd conduz um esquema de


relao atravs de uma bateria de testes para
certificar se o mesmo est na 1, 2 e 3 Formas
Normais.
Essas trs Formas Normais so baseadas em
dependncias funcionais dos atributos do
esquema de relao.

17

Primeira Forma Normal (1FN)


Toda tabela deve ser minimamente normalizada (1FN).
Uma relao estar na 1FN se no houver atributo

representando agrupamento (no atmico) e nem atributo


repetitivo (multivalorado).
Tabela em 1FN: O valor de uma coluna de uma tabela
indivisvel.

18

Primeira Forma Normal (1FN)


Exemplo: Cliente
1-Cdigo
2- {Telefone}
3- Endereo (Rua, Nmero, Cidade)

Gerando a tabela resultante:

Sendo que a mesma no est na 1FN pois seus atributos no so


atmicos. Para que a tabela fique na 1FN temos que eliminar os
atributos no atmicos, gerando as seguintes tabelas como
resultado:

19

Matr
cula
120

Nome

NomeCargo

Joo

Cod
Cargo
1

CodProj

DataFim

Horas

01

17/07/95

37

120

Joo

Programador

08

12/01/96

12

121

Hlio

Programador

01

17/07/95

45

121

Hlio

Programador

08

12/01/96

21

121

Hlio

Programador

12

21/03/96

107

270

Gabriel

Analista

08

12/01/96

10

270

Gabriel

Analista

12

21/03/96

38

273

Silva

Projetista

01

17/07/95

22

274

Abrao

Analista

12

21/03/96

31

279

Carla

Programador

01

17/07/96

27

279

Carla

Programador

08

12/01/96

20

279

Carla

Programador

12

21/03/96

51

301

Ana

Programador

12

21/03/96

16

306

Manoel

Projetista

17

21/03/96

67

Redundncia de dados

Programador

Problemas de insero, remoo e


atualizao

20

Uma

tabela em 1FN continua com problemas de


redundncia de dados,
incluso, atualizao,
e
remoo.
necessrio a aplicao de outras formas normais:
2FN
3FN

21

Segunda Forma Normal 2FN


Uma tabela est na Segunda Forma
Normal (2FN) se ela est 1FN e todo
atributo do complemento de uma chave
candidata totalmente funcionalmente
dependente daquela chave.
A, B, C D (D totalmente funcionalmente
dependente de {A, B, C}) se para todo valor de
{A, B, C} s existe um valor de D, e se D no
funcionalmente dependente de A, ou B, ou C.

22

E#

Enome

Sexo

Idade

D#

Dnome

Opinio

E1

Joo

25

D1

Mat

Boa

E1

Joo

25

D2

Quim

E1

Joo

25

D3

Fis

Boa

E2

Maria

22

D2

Quim

Satisf.

E2

Maria

22

D3

Fis

Satisf.

E2

Maria

22

D4

Est

E3

Joo

27

D2

Quim

Boa

E3

Joo

27

D3

Fis

Boa

Chaves Candidatas

Complementos da Chave

{E#, D#}

Enome, Sexo, Idade, Dnome, Opinio

23

{E#, D#} Enome


{E#, D#} Sexo
{E#, D#} Idade

(E# Enome)
Tabela 1

(E# Sexo)
(E# Idade)

{E#, D#} Dnome (D# Dnome)

{E#, D#} Opinio

Tabela 2

Tabela 3

24

E#

Enome

Sexo

Idade

E1

Joo

25

E2

Maria

22

E3

Joo

27

D#

Dnome

D1

Mat

D2

Quim

D3

Fis

D4

Est

E#

D#

Opinio

E1

D1

Boa

E1

D2

Pobre

E1

D3

Boa

E2

D2

Satisfatria

E2

D3

Satisfatria

E2

D4

Pobre

E3

D2

Boa

E3

D3

Boa

25

Segunda Forma Normal 2FN


Uma tabela T est na 2FN se estiver na 1FN e todos os

seus
atributos
no
chaves
forem
totalmente
funcionalmente dependente da chave primria C.
Se uma tabela no est na 2FN a mesma pode ser

normalizada gerando outras tabelas cujos atributos que


no faam parte da chave primria sejam totalmente
funcionalmente dependente da mesma, ficando a tabela
na 2FN.

26

Terceira Forma Normal 3FN

Uma relao est em 3FN se, e somente


se, estiver em 2FN e todos os atributos nochave forem dependentes no-transitivos
da chave primria.

27

Matr

Nome

codCargo

nomeCargo

codPro

DataFim

horas

120

Joo

Programador

01

17/07/95

37

120

Joo

Programador

08

12/01/96

12

121

Hlio

Programador

01

17/07/95

45

121

Hlio

Programador

08

12/01/96

21

121

Hlio

Programador

12

21/03/96

107

270

Gabriel

Analista

08

12/01/96

10

270

Gabriel

Analista

12

21/03/96

38

273

Silva

Projetista

01

17/07/95

22

274

Abrao

Analista

12

21/03/96

31

279

Carla

Programador

01

17/07/96

27

279

Carla

Programador

08

12/01/96

20

279

Carla

Programador

12

21/03/96

51

301

Ana

Programador

12

21/03/96

16

28

2FN
Matr

Nome

codCargo

nomeCargo

codProj

dataFim

Matr

codPro

horas

120

Joo

Programador

01

17/07/95

120

01

37

121

Hlio

Programador

08

12/01/96

120

08

12

270

Gabriel

Analista

12

21/03/96

121

01

45

121

08

21

273

Silva

Projetista

121

12

107

274

Abrao

Analista

270

08

10

279

Carla

Programador

270

12

78

301

Ana

Programador

273

01

22

306

Manuel

Projetista

274

12

31

279

01

27

279

08

20

279

12

51

301

01

16

301

12

85

306

12

67

Problemas de incluso, remoo


e atualizao

29

Matrcula

CodCargo

NomeCargo

NomeCargo dependente transitivo de Matrcula.

30

Matr

Nome

codCargo

codCargo

120

Joo

Programador

121

Hlio

Analista

270

Gabriel

Projetista

273

Silva

274

Abrao

279

Carla

301

Ana

nome

31

Exemplo 2:

32

Exemplo 2:

33

Exemplo 2:

Para passar 2FN, ou seja, eliminar as dependncias de


parte da chave primria necessrio dividir a tabela
ProjEmp em duas tabelas como:

34

Exemplo 2:

35

Exemplo 2:

36

Exemplo 2:

Uma tabela encontra-se na 3FN quando, alm de estar na


2FN, toda coluna no chave depende diretamente da
chave primria, ie, quando no h dependncia funcional
transitiva ou indiretas.

37

Exemplo 2:

38

Aspecto de Integridade
Restrio de Chave
Uma relao deve ter pelo menos uma chave.
Definio de chave: uma chave um atributo ou conjunto de

atributos cujo valor ou combinao de valores deve ser distinto


em qualquer instncia da relao.
A existncia de pelo menos uma chave uma condio
obrigatria, tendo em vista que uma relao definida como
um conjunto de tuplas e, todas as tuplas devem ter um valor
distinto.

39

Aspecto de Integridade
Restrio de Entidade
Especifica que nenhum valor de chave primria pode ser nulo.
Uma tupla em uma tabela que se refere a uma outra relao

deve referenciar uma tupla existente naquela relao.

40

Aspecto de Integridade
Outros Tipos de Restries
As

restries verificadas tratam somente das restries


estruturais.
Existem as restries de integridade semntica ou regras de
negcio.
So implementadas por meio de gatilhos ou stored
procedures (procedimentos armazenados).
Exemplo:
o salrio de uma atriz no pode ser maior que 1/3 do
oramento total do filme.

41

Restries de Integridade no Modelo


Relacional
Integridade Lgica
Conjunto de regras que existem para o modelo de dados,

assim como um conjunto de regras de negcio, que regem a


manipulao do BD, de forma a no ferir nenhuma destas
regras estabelecidas.
Integridade Fsica
Conjunto de procedimentos operacionais que garantem a

integridade do BD, mesmo em situaes de falha de algum


componente do ambiente onde o BD manipulado.
Exemplo:
Valor mnimo de depsito para abertura de uma conta

R$10.000,00
Conta corrente sem movimento h 180 dias ser encerrada.

42

Especificao de Banco de Dados


Relacionais
A especificao de um banco de dados relacional

(chamada de esquema do banco de dados) deve conter


no mnimo a definio do seguinte:
Tabelas que formam o banco de dados
Colunas que as tabelas possuem
Restries de integridade

43

Fixando
Formas Normais
1 Forma Normal (1FN): toda relao deve ter uma chave

primria e deve-se garantir que todo atributo seja atmico.


Atributos compostos devem ser separados.
2 Forma Normal (2FN): toda relao deve estar na 1FN e
devem-se eliminar dependncias funcionais parciais, ou
seja, todo atributo no chave deve ser totalmente
dependente da chave primria.
3 Forma Normal (3FN): Toda relao deve estar na 2FN e
devem-se eliminar dependncias funcionais transitivas, ou
seja, todo atributo no chave deve ser mutuamente
independente.

44

Atividades
Estudar
Captulo 10 do livro
ELMASRI, R., NAVATHE, S. B., Sistemas de Banco de Dados

Captulo 6 do livro
HEUSER, C. A. , Projeto de banco de Dados.

45

Exerccio
Considere a seguinte tabela:

Trecho(CodEst,CodLocIni,CodLocFim, Distancia,NomeEst,
NomeLocIni,SiglaUFIni,NomeUFIni)
As dependncias funcionais, podendo incluir dependncias transitivas, que

existem nesta tabela so as seguintes:


CodEst -> NomeEst
CodLocIni -> NomeLocIni
CodLocIni -> SiglaUFIni
CodLocIni -> NomeUFIni
SiglaUFIni -> NomeUFIni
(CodEst,CodLocIni,CodLocFim) ->Distancia
A tabela encontra-se em qual forma normal? Se a tabela no se encontrar na

terceira forma normal, mostre a transformao da tabela para a terceira


forma normal e cada forma normal intermediria (entre a que a tabela se
encontra e a terceira forma normal).

You might also like