You are on page 1of 21

Normalizao

Conceitos bsicos Dependncia funcional Formas normais


Autor: Frederico Costa Guedes Pereira

Normalizao

O projeto de bases de dados relacionais o resultado de duas operaes:


A especificao da estrutura de tabelas relacionadas; A normalizao + especificao de restries de integridade.

Modelo relacional & normalizao F. Codd, 1970

Dr. E.

Normalizao
Objetivo:

Prover diretrizes para o projeto de esquemas de banco de dados bem-formados. bemNa prtica: as formas normais ajudam a projetar bancos relacionais que: reduzem a duplicao desnecessria de dados; reduzem as inconsistncias; reduzem as anomalias de update, insert e delete. update,
3

Entidade no normalizada
Um pedido pode conter vrios produtos; O modelo relacional, por sua definio, s permite domnios de colunas de tipos atmicos, i.e., colunas no podem ter valores repetidos numa mesma tupla.
no. pedido prazo cliente ... produto... v.tt. cod.v. n.v. produto... produto... produto...
4

Entidade: PEDIDO (no norm.)


no. do pedido prazo entrega cliente endereo cidade UF CNPJ insc. insc. estad.

cdigo produto

desc. produto

unidade produto

val. unit produto

quant. produto

val total produto

val total pedido

cdigo vend.

nome vend.

Primeira Forma Normal


Cada ocorrncia da chave primria deve corresponder a uma e somente uma informao de cada atributo. Soluo: Soluo: Decompor cada entidade no normalizada em tantas entidades quanto for o nmero de conjuntos de atributos repetitivos. (Retirar os atributos multivalorados!)
6

Entidades (1FN): PEDIDO e ITEM-PEDIDO ITEMno. do pedido prazo entrega cliente endereo cidade UF CNPJ insc. estad.

val total pedido

cdigo vend.

nome vend.

no. do pedido

cdigo produto

desc. produto

unidade produto

val. unit produto

quant. produto

val total produto

Dependncia Funcional
Definio: Definio: Um conjunto de atributos <C1..Cn>
dependente funcionalmente do conjunto <D1..Dm>, se para cada valor de <D1..Dm> existe apenas um nico valor para <C1..Cn>. Formalmente: <D1..Dm> <C1..Cn>

Exemplos: Exemplos:
No-PEDIDO NoPRAZOPRAZO-ENTREGA CLIENTE ENDEREOENDEREO-CLIENTE CODIGOCODIGO-PRODUTO DESCDESC-PRODUTO No. PEDIDO, CDIGO-PRODUTO CDIGOQTDEQTDE-PRODUTO 8

Dependncia Funcional Total


Definio: Definio: Um atributo possui dependncia
funcional total da chave primria quando o mesmo depende funcionalmente de todos os atributos que fazem parte da chave.

Exemplo: (na Exemplo: (na entidade ITEM-PEDIDO) ITEM-PEDIDO)


No-PEDIDO, COD-PRODUTO NoCOD No-PEDIDO, COD-PRODUTO NoCODQTDEQTDE-PRODUTO VAL-TOTVAL-TOT-PRODUTO

Dependncia Funcional Parcial


Definio: Definio: Um atributo depende parcialmente de
uma chave concatenada quando ele depende funcionalmente apenas de parte de atributos que formam a chave.

Exemplos: (na Exemplos: (na entidade ITEM-PEDIDO) ITEM-PEDIDO)


COD-PRODUTO COD COD-PRODUTO COD COD-PRODUTO CODDESCDESC-PRODUTO UNIDADEUNIDADE-PRODUTO VAL-UNITVAL-UNIT-PRODUTO

10

Dependncia Funcional Transitiva


Definio: Definio: Um atributo possui dependncia
funcional transitiva quando depende de outro atributo da mesma relao que no chave primria.

Exemplos: (na Exemplos: (na entidade PEDIDO) PEDIDO)


CLIENTE CLIENTE CLIENTE ENDEREOENDEREO-CLIENTE, CIDADE, UF CNPJ INSCRIOINSCRIO-ESTADUAL

11

Segunda Forma Normal


Em caso de chave primria concatenada, no devem existir atributos ou conjuntos de atributos com dependncia parcial em relao a algum elemento da chave primria. Soluo: Soluo: Aplicar a decomposio nas entidades
em observao, gerando novas entidades que herdaro a chave parcial e todos os atributos que dependem desta chave parcial.
12

Entidade na 2FN
PEDIDO (j est na 2FN)

no. do pedido

prazo entrega

cliente

endereo

cidade

UF

CNPJ

insc. estad.

val total pedido

cdigo vend.

nome vend.

13

Entidades na 2FN
ITEM_DO_PEDIDO (modificada pela 2FN)

no. do pedido

cdigo produto

quant. produto

val total produto

PRODUTO (criada pela 2FN)

cdigo produto

desc. produto

unidade produto

val. unit produto

14

Terceira Forma Normal


Nenhum dos atributos de uma entidade devem possuir dependncia transitiva em relao aos demais atributos que no participem da chave primria. Soluo: Soluo: Aplicar a decomposio na entidade em
observao, gerando uma nova entidade que contenha os atributos que possuem dependncia transitiva e a sua chave primria ser o atributo que gerou esta dependncia.
15

Entidades na 3FN
PEDIDO (modificada pela 3FN)
no. do pedido prazo entrega cdigo cliente cdigo vend. val total pedido

CLIENTE (criada pela 3FN)


cdigo cliente endereo cidade UF CNPJ insc. estad.

VENDEDOR (criada pela 3FN)


cdigo vend. nome vend.

16

Entidades na 3FN
ITEM_DO_PEDIDO (modificada pela 3FN)

no. do pedido

cdigo produto

quant. produto

val total produto

PRODUTO (j est na 3FN)

cdigo produto

desc. produto

unidade produto

val. unit produto

17

Comentrios
A primeira forma normal a nica que obrigada pelo sistema relacional, j que no possvel ter tuplas distintas com a mesma chave primria! As outras formas normais so uma deciso de projeto. Portanto, possvel ter tabelas que no estejam normalizadas alm da 1FN no banco.
18

Comentrios
O que a 2FN e a 3FN fornecem um conjunto de diretrizes para:
Separar atributos que pertenam a diferentes entidades em diferentes relaes (tabelas) Agrupar os atributos que pertenam mesma entidade numa mesma relao (tabela).

19

Modelo E-R Eprazo entrega

CLIENTE
nome i.e. end. uf cid. cnpj

PEDIDO

VENDEDOR

ITEMITEM-PEDIDO

qtde. produto

nome

PRODUTO
desc.. produto unid. produto val. un. produto 20

Modelo Relacional
cod. cliente cod. vendedor

CLIENTE

PEDIDO
no. pedido

VENDEDOR

ITEMITEM-PEDIDO
cod. produto

PRODUTO
21

You might also like