• Nenhum resultado encontrado

Processo de Normalização

N/A
N/A
Protected

Academic year: 2021

Share "Processo de Normalização"

Copied!
16
0
0

Texto

(1)

Processo de Normalização

• Entrada

– fonte de dados estruturados da organização

• relatório, fichário, documento estruturado, ...

• Saída

– esquema relacional para a fonte de dados

• Objetivos

– obtenção de um esquema relacional livre de

redundâncias

– método de projeto ou mesmo de validação do

projeto de um BD relacional obtido via ER

• Baseado no conceito de

formas normais

– processo sistemático de geração de tabelas

• Uma tabela T está em uma forma normal

se atende uma certa

regra

– se T está na Forma Normal (FN) i, então T

está automaticamente nas FNs i - 1, i - 2, ...

• Três FNs são mais utilizadas na prática

• A teoria nem sempre é ideal do ponto de

vista prático

– proliferação de tabelas!

(2)

R E L A T Ó R IO D E A LO C A Ç Ã O A P R O J E T O

C Ó D IG O D O P R O J E TO : L S C 0 01

T IP O : N o vo D es e n v.

D E S C R IÇ Ã O : S is te m a de E s to qu e

C Ó D IG O D O

E M P R E G A D O

N O M E

C A T E G O R IA

F U N C IO N A L

S A L Á R IO

D A T A D E

IN ÍC IO N O

P R O J E T O

T E M P O

A L O C A D O A O

P R O JE T O

2146

João

A1

4

1 /11/91

24

3145

S ílvio

A2

4

2 /10/91

24

6126

José

B1

9

3 /10/92

18

1214

C a rlos

A2

4

4 /10/92

18

8191

M ário

A1

4

1 /11/92

12

C Ó D IG O D O P R O J E TO : P A G 0 2

T IP O : M an u ten ç ã o

D E S C R IÇ Ã O : S is te m a de R H

C Ó D IG O D O

E M P R E G A D O

N O M E

C A T E G O R IA

F U N C IO N A L

S A L Á R IO

D A T A D E

IN ÍC IO N O

P R O J E T O

T E M P O

A L O C A D O

A O P R O J E T O

8191

M ário

A1

4

1 /05/93

12

4112

João

A2

4

4 /01/91

24

6126

José

B1

9

1 /11/92

12

Exemplo de Fonte de Dados: Relatório

Passo1 – Conversão para Tabela ÑN

• Objetivo

– obtenção de uma representação padrão para

as fontes de dados

• facilita o processo de normalização

• Forma de representação:

Tabela ÑN

– pode ter uma ou mais

tabelas aninhadas

– tabela aninhada

• possui

atributos multivalorados

– atributo que ao invés de conter valores atômicos,

contém

múltiplos valores

ou contém uma

tabela

que

pode, por sua vez, ser aninhada

(3)

CódProj

Tipo

Descr

Emp

CodEmp

Nome

Cat

Sal

DataIni

TempAl

LSC001

Novo Desenv.

Sistema de

2146

João

A1

4

1/11/91

24

Estoque

3145

Sílvio

A2

4

2/10/91

24

6126

José

B1

9

3/10/92

18

1214

Carlos

A2

4

4/10/92

18

8191

Mário

A1

4

1/11/92

12

PAG02

Manutenção

Sistema de

8191

Mário

A1

4

1/05/93

12

RH

4112

João

A2

4

4/01/91

24

6126

José

B1

9

1/11/92

12

Tabela aninhada em uma linha de projeto

Exemplo de Tabela ÑN

Representação na Forma de

Tabela ÑN

indicam-se as chaves primárias (CPs) de cada tabela

Projetos (

codProj

, tipo, descr,

(4)

1

a

Forma Normal (1FN)

“Uma tabela está na 1FN sse ela não

possui tabelas aninhadas”

Procedimento usual

gerar uma tabela para cada aninhamento

1FN - Aplicação

1FN: Projetos (codProj, tipo, descr)

Alocações (

codProj

, codEmp, nome, categ, sal,

dataIni, tempoAloc)

• CP da tabela externa migra para a tabela aninhada

• Qual a CP da tabela aninhada?

ÑN: Projetos (codProj, tipo, descr,

(5)

1FN - Aplicação

1FN: Projetos (codProj, tipo, descr)

Alocações (codProj,

codEmp

, nome, categ, sal,

dataIni, tempoAloc)

• CP da tabela aninhada

codEmp

identifica unicamente uma tupla em Alocações?

(analisar os dados da tabela aninhada na fonte de dados como um

todo)

ÑN: Projetos (codProj, tipo, descr,

(codEmp, nome, categ, sal, dataIni, tempoAloc))

1FN - Aplicação

1FN: Projetos (codProj, tipo, descr)

Alocações (

codProj, codEmp

, nome, categ, sal,

dataIni, tempoAloc)

• CP da tabela aninhada

codEmp

identifica unicamente uma tupla em Alocações?

resposta: NÃO

logo,

codProj

deve fazer parte da CP da tabela aninhada

ÑN: Projetos (codProj, tipo, descr,

(6)

1 FN – Outro Exemplo

• CP da tabela aninhada

(Empregados)

CPF

identifica unicamente uma tupla em Empregados?

resposta: SIM

logo,

CPF

é suficiente como CP da tabela aninhada

ÑN: Departamentos (codD, nome,

(CPF, nome, salário))

1FN: Departamentos (codD, nome)

(codD,

CPF

, nome, salário)

Dependência Funcional (DF)

• Conceito necessário para o entendimento da

segunda e terceira formas normais

• Definição

– um atributo A

2

depende funcionalmente

de um

atributo A

1

(ou um atributo A

1

determina

um

atributo A

2

) quando,

em todas linhas da tabela, para cada valor de

A

1

que aparece na tabela, aparece o mesmo

valor de A

2

(7)

Dependência Funcional - Exemplo

Código

Salário

500

E2

. . .

. . .

450

E3

500

E1

500

E2

450

E3

500

E1

Salário

. . .

Código

. . .

Dependência Funcional - Exemplos

A

D

A

B

(A,B)

C

5

s

2

x

5

r

1

x

10

q

1

y

10

r

3

y

5

p

1

z

5

s

2

x

10

r

3

y

5

p

1

z

5

s

2

x

10

q

1

y

5

r

1

x

D

C

B

A

(8)

DF Total e DF Parcial

• DF Total

– se um atributo A

x

depende funcionalmente de

todos

os atributos que compõem a CP de uma

tabela T, diz-se que A

x

possui

DF total

da CP

de T

• DF Parcial

– se um atributo A

x

depende funcionalmente

apenas de

alguns

atributos (não todos!) que

compõem a CP de uma tabela T, diz-se que A

x

possui

DF parcial

da CP de T

“Uma tabela está na 2FN sse ela estiver

na 1FN e não possuir DFs parciais”

tabelas com DFs parciais devem ser

desmembradas em tabelas que possuam

DFs totais

Tabelas cuja CP possui apenas um

atributo estão automaticamente na 2FN

(9)

1FN: Projetos (CodProj, Tipo, Descr)

Alocações (CodProj, CodEmp, Nome, Cat, Sal,

DataIni, TempoAloc)

2FN - Aplicação

2FN: Projetos (CodProj, Tipo, Descr)

Alocações (CodProj, CodEmp, DataIni, TempoAloc)

Empregados (CodEmp, Nome, Cat, Sal)

DFs: CodEmp

Nome, Cat, Sal (DF Parcial!)

(CodProj, CodEmp)

DataIni, TempoAloc

DF Transitiva ou Indireta

• Se um atributo

não-chave

A

x

possui

DF total

da CP de uma tabela T e também possui DF

total de um ou mais atributos

não-chave

de

T, então diz-se que A

x

possui

DF transitiva

ou indireta

da CP de T

(10)

“Uma tabela está na 3FN sse ela estiver

na 2FN e não possuir DFs indiretas”

tabelas com DFs indiretas devem ser

desmembradas em tabelas que não

possuam tais DFs

Tabelas que possuem zero ou apenas

um atributo que não faz parte da CP

estão automaticamente na 3FN

3

a

Forma Normal (3FN)

3FN - Aplicação

2FN: Projetos (CodProj, Tipo, Descr)

Alocações (CodProj, CodEmp, DataIni, TempoAloc)

Empregados (CodEmp, Nome, Cat, Sal)

3FN: Projetos (CodProj, Tipo, Descr)

Alocações (CodProj, CodEmp, DataIni, TempoAloc)

Empregados (CodEmp, Nome,

Cat

)

CategoriasFuncionais(Cat, Sal)

DFs: CodEmp

Sal

(11)

Normalização – Questões

Análise de CPs

tabelas podem ou não ter atributos que

garantam identificação única de suas tuplas

ou ter uma CP muito extensa

sugestão: definir uma CP

ÑN: Projetos (CodProj, Tipo, Descr,

(Nome, Cat, Sal, DataIni, TempoAloc))

ÑN: Projetos (CodProj, Tipo, Descr,

(

CodEmp

, Nome, Cat, Sal, DataIni, TempoAloc))

Dados irrelevantes

tabelas podem ter atributos que não precisam

ser mantidos necessariamente no BD

sugestão: eliminar estes atributos

ÑN: Projetos (CodProj, Tipo, Descr,

NroEmps

,

DataRel

,

(CodEmp, Nome, Cat, Sal, DataIni, TempoAloc))

ÑN: Projetos (CodProj, Tipo, Descr,

(CodEmp, Nome, Cat, Sal, DataIni, TempoAloc))

(12)

Dados relevantes, porém implícitos

sugestão: definir tais dados

ÑN: Aprovação (CodCurso, Nome,

(CodCand, Nome, Endereço)

)

a ordem determina a

classificação do candidato

ÑN: Aprovação (CodCurso, Nome,

(CodCand, Nome, Endereço,

OrdemClass

))

Normalização – Questões

Relacionamentos incorretos

sugestão: validar as tabelas ao final do

processo!

Normalização – Questões

1FN: Pedidos (nroPed, dataPed, codCli, nomeCli)

Telefones (nroPed, nroTel)

Peças (nroPed, codPeça, nomePeça, qtde))

Relatório de Pedidos

ÑN: Pedidos (nroPed, dataPed, codCli, nomeCli,

(nroTel), (codPeça, descrPeça, qtdePedida))

. . .

(validação)

(13)

DF Multivalorada

• Se um atributo A

x1

de T determina um

conjunto finito de valores para os outros

atributos A

x2

, ..., A

xn

de T, então diz-se que

A

x2

, ..., A

xn

possuem

DF multivalorada

de A

x1

em T

Exemplo de Normalização até 3FN

Ficha de Estante e seus Livros

ÑN: Estantes (número, capacidade, (ISBN, título, ano

(codAutor, nome, nacionalidade)))

1FN: Estantes (número, capacidade)

DistribuiçãoLivros (número, ISBN, título, ano)

DistribuiçãoLivrosAutor (número, ISBN, codAutor,

nome, nacionalidade)

2FN = 3FN: Estantes (número, capacidade)

Livros (ISBN, título, ano)

DistribuiçãoLivros (número, ISBN)

Autores (codAutor, nome, nacionalidade)

DistribuiçãoLivrosAutor(

número, ISBN

, codAutor)

relacionamento

contido em outra

tabela! (pode ser

removido)

(14)

Exemplo de DF Multivalorada

número

ISBN

codAutor

E1

E1

E1

E2

E1

E2

E3

E3

E1

E3

L1

L2

L1

L1

L2

L1

L2

L2

L2

A7

L2

A1

A2

A8

A9

A1

A2

Redundância

de dados para

representar as

associações

multivaloradas!

ISBN = L1

codAutor = {A1, A2}

ISBN = L2

codAutor = {A7, A8,

A9}

A7

A8

A9

DF multivalorada:

ISBN

codAutor

DistribuiçãoLivrosAutor

“Uma tabela está na 4FN sse ela estiver

na 3FN e não possuir DFs multivaloradas”

tabelas com DFs multivaloradas devem ser

desmembradas em tabelas que não possuam

tais DFs

Tabelas que possuem CP composta por

um ou dois atributos, ou que possuem

atributos não-chave estão

automaticamente na 4FN

(15)

4FN - Aplicação

DF Multivalorada:

ISBN

codAutor

3FN: Estantes (número, capacidade)

Livros (ISBN, título, ano)

Autores (codAutor, nome, nacionalidade)

DistribuiçãoLivrosAutor(número, ISBN, codAutor)

4FN: Estantes (número, capacidade)

Livros (ISBN, título, ano)

Autores (codAutor, nome, nacionalidade)

DistribuiçãoLivros(número, ISBN)

Autoria(ISBN, codAutor)

Exercício 1

A tabela abaixo está na 1FN. Obtenha a 2FN,

3FN e 4FN

ArtigosAceitos (ID-artigo, título, ano, ID-autor,

codEvento, nomeEvento, ID-revisor)

(16)

Exercício 2 – Relatório de Reservas em

uma Locadora de DVDs

. . . 14/02/07 5,00 lançamento 98 ficção X-Men III D12 15/02/07 2,00 simples 105 guerra Platton D9 15/02/07 3,00 especial 99 infantil Os Incríveis D5 13/02/07 3,00 especial 99 infantil Os Incríveis D5 14/02/07 3,00 especial 88 comédia Os Normais D2 3221.1212 Ana Luz 0051 18/02/07 2,00 simples 105 guerra Platton D9 15/02/07 2,00 simples 75 infantil Rei Leão D4 12/02/07 5,00 lançamento 95 drama Casa de Areia D1 3222.3344 João Sá 0032 data retirada preço categoria duração gênero nome ID-DVD Reservados DVDs Telefone Nome ID-cli

Exercício 3 – Arquivo XML: Roteiros de Viagem

<?xml version =“1.0”?>

<roteiros>

<roteirocodigo=”R001”><nome>Serra Gaucha</nome><duracao>10</duracao> <pacotes>

<pacote><dataSaida>20-01</dataSaida><vagas>40</vagas><preco>1200.00</preco></pacote> <pacote><dataSaida>05-02</dataSaida><vagas>50</vagas><preco>1000.00</preco></pacote> ... </pacotes> <trechos> <cidadenumeroOrdem=”01”><nome>Gramado</nome> <estado>RS</estado><populacao>35000</populacao><tempoEstadia>2</tempoEstadia> </cidade>

<cidadenumeroOrdem=”02”><nome>Caxias do Sul</nome>

<estado>RS</estado><populacao>400000</populacao><tempoEstadia>2</tempoEstadia> </cidade> ... <cidadenumeroOrdem=”05”><nome>Gramado</nome> <estado>RS</estado><populacao>35000</populacao><tempoEstadia>1</tempoEstadia> </cidade> </trechos> </roteiro>

<roteirocodigo=”R002”><nome>Região dos Vinhos</nome><duracao>6</duracao> <pacotes>

<pacote><dataSaida>22-01</dataSaida><vagas>45</vagas><preco>800.00</preco></pacote> <pacote><dataSaida>06-07</dataSaida><vagas>40</vagas><preco>900.00</preco></pacote> ...

</pacotes> <trechos>

<cidadenumeroOrdem=”01”><nome>Caxias do Sul</nome>

<estado>RS</estado><populacao>400000</populacao><tempoEstadia>2</tempoEstadia> </cidade>

<cidadenumeroOrdem=”02”><nome>Bento Goncalves</nome>

<estado>RS</estado><populacao>235000</populacao><tempoEstadia>2</tempoEstadia> </cidade>

... </trechos> </roteiro>

Referências

Documentos relacionados

Ano / Disciplina Título do manual ISBN (na contracapa) Autores Editora Preço Nº

A literatura econômica pode fornecer evidências de movimentos especulativos recentes com imóveis em países como Japão (anos oitenta) 5 e Estados Unidos (maior parte da

Ano / Disciplina Título do manual ISBN (na contracapa) Autores Editora Preço Nº

11 Os irmãos de José tinham inveja dele, mas o seu pai ficou pensando no caso.. 9) Que tipo de pastor você tem sido. 9 No caso dos nossos pais humanos, eles nos corrigiam, e nós

Ano / Disciplina Título do manual ISBN (na contracapa) Autores Editora Preço Nº

Ano / Disciplina Título do manual ISBN (na contracapa) Autores Editora Preço Nº

Mas, não os culpo de pensarem assim, afinal nossos queridíssimos e amados políticos não fazem a mínima questão de mudar essas ideias dos nossos atuais adolescentes

Incentivar a substituição de vãos envidraçados simples e ineficientes do ponto de vista energético no parque edificado existente com necessidades de reabilitação