normalização de tabelas - webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... ·...

105
1 1 Normalização de Tabelas Prof. Antonio Almeida de Barros Junior

Upload: others

Post on 09-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

11

Normalização de TabelasProf. Antonio Almeida de Barros Junior

Page 2: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Conteúdo

2

Engenharia Reversa de Arquivos

Normalização de Tabelas Introdução

Formas Normais Tabela não-normalizada

Primeira forma normal (1FN)

Dependência funcional

Segunda forma normal (2FN)

Terceira forma normal (3FN)

Quarta forma normal (4FN)

Problemas da normalização

Integração de Modelos

Referência

Page 3: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Engenharia Reversa de Arquivos

3

Modelo relacional

Engenharia

reversa de

arquivos

convencionaisEsquema de arquivo

convencional ou

documento

Page 4: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Engenharia Reversa de Arquivos

4

Modelo relacional

Engenharia

reversa de

arquivos

convencionaisEsquema de arquivo

convencional ou

documento

Modelo ER

(conceitual)

Engenharia

reversa de

BD relacional

Page 5: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Engenharia Reversa - Processo

5

modelo

relacional 1

esquema de

arquivo/documento 1

modelo

relacional 2

esquema de

arquivo/documento 2

modelo

relacional n

esquema de

arquivo/documento n

normalização normalizaçãonormalização...

Normalização é executada para todos esquemas dedocumentos disponíveis.

Page 6: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Engenharia Reversa - Integração

6

modelo

relacional 1

esquema de

arquivo/documento 1

modelo

relacional 2

esquema de

arquivo/documento 2

...

modelo relacional integrado

integração

modelo

relacional n

esquema de

arquivo/documento n

normalização normalizaçãonormalização...

Page 7: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização - Introdução

7

A normalização é uma técnica que visa obter tabelas querepresentam apenas um objeto do mundo real.

Objetivo: O objetivo da normalização é evitar os problemasprovocados por falhas no Projeto do Banco de Dados, bemcomo eliminar a "mistura de assuntos" e as correspondentesrepetições desnecessárias de dados.

Page 8: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização - Introdução

8

Teoria da Normalização

• Permite identificar projetos de tabelas mal feitas, mostrandoformas mais desejáveis.

• Baseia-se no conceito de formas normalizadas;

• Uma relação está numa forma normalizada se ela satisfazer umconjunto específico de limitações.

Page 9: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização - Passos

9

esquema de

arquivo ou

documento

Representação

como tabela

ÑNesquema não

normalizado

Passagem

a 1FN

esquema

na 1FN

Passagem

a 2FN

esquema

na 2FN

Passagem

a 3FN

Passagem

a 4FN

esquema

na 3FN

esquema relacional

normalizado

Page 10: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização - Exemplo

10

RELATÓRIO DE ALOCAÇÃO A PROJETO

CÓDIGO DO PROJETO:

LSC001 TIPO: Novo Desenv.

DESCRIÇÃO: Sistema de EstoqueCÓDIGO DO EMPREGADO

NOME CATEGORIA FUNCIONAL

SALÁRIO DATA DE INÍCIO NO PROJETO

TEMPO ALOCADO AO

PROJETO

2146 João A1 4 1/11/91 243145 Sílvio A2 4 2/10/91 246126 José B1 9 3/10/92 181214 Carlos A2 4 4/10/92 188191 Mário A1 4 1/11/92 12

CÓDIGO DO PROJETO:

PAG02 TIPO: Manutenção

DESCRIÇÃO: Sistema de RHCÓDIGO DO EMPREGADO

NOME CATEGORIA FUNCIONAL

SALÁRIO DATA DE INÍCIO NO PROJETO

TEMPO ALOCADO AO

PROJETO

8191 Mário A1 4 1/05/93 124112 João A2 4 4/01/91 246126 José B1 9 1/11/92 12

Page 11: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização – Passo #1

11

esquema de

arquivo ou

documento

Representação

como tabela

ÑNesquema não

normalizado

Passagem

a 1FN

esquema

na 1FN

Passagem

a 2FN

esquema

na 2FN

Passagem

a 3FN

Passagem

a 4FN

esquema

na 3FN

esquema relacional

normalizado

Page 12: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização

12

Tabela não-normalizada

• Possui uma ou mais tabelas aninhadas

• Abreviatura: ÑN

Tabela aninhada

ou grupo repetido

ou coluna multivalorada

ou coluna não atômica

=

coluna que ao invés de conter valores

atômicos, contém tabelas aninhadas

Page 13: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização

13

Tabela não-normalizada

CódProj Tipo Descr Emp

CodEmp Nome Cat Sal DataIni TempAl

LSC001 Novo

Desenv.

Sistema

de

Estoque

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 Carlos A2 4 4/10/92 18

8191 Mário A1 4 1/11/92 12

PAG02 Manuten

ção

Sistema

de RH

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

Page 14: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização

14

Tabela aninhada

CódProj Tipo Descr Emp

CodEmp Nome Cat Sal DataIni TempAl

LSC001 Novo

Desenv.

Sistema

de

Estoque

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 Carlos A2 4 4/10/92 18

8191 Mário A1 4 1/11/92 12

PAG02 Manuten

ção

Sistema

de RH

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

tabela

aninhada

Page 15: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização

15

Tabela não-normalizada• Esquema

Proj (CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl)

)

Page 16: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização

16

Esquema de arquivo em Pascal

type reg_aluno= recordcod_al: integer;nome_al: char_60;ingressos_cursos_al: array [1..10] of record

cod_curso: integer;semestre_ingresso: integerend;

disciplinas_cursadas_al: array [0..200] of recordcod_disc: integer;semestres_cursados: array [1..20] of record

semestre_disc: integer;nota_disc: integerend

endend;arq_aluno= file of reg_aluno;

Page 17: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Normalização

17

Esquema ÑN para arquivos exemplo

Arq-Alunos (Cod-Al, Nome-Al,(Cod-Curso, Sem-ingresso),(Cod-Disc,

(Sem-Disc-Cursada, Nota-Disc)))

Page 18: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais

18

Regra que uma tabela deve obedecer para serconsiderada “bem projetada”.

Há diversas formas normais, cada vez mais rígidas,para verificar tabelas relacionais.

Aqui tratadas: primeira forma normal (1FN),

segunda forma normal (2FN),

terceira forma normal (3FN),

quarta forma normal (4FN).

Page 19: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passo #2

19

esquema de

arquivo ou

documento

Representação

como tabela

ÑNesquema não

normalizado

Passagem

a 1FN

esquema

na 1FN

Passagem

a 2FN

esquema

na 2FN

Passagem

a 3FN

Passagem

a 4FN

esquema

na 3FN

esquema relacional

normalizado

Page 20: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais

20

Primeira forma normal (1FN)

• Uma tabela está na primeira forma normal quando ela nãocontém tabelas aninhadas.

• Para chegar a 1FN há duas alternativas:

1. Construir uma única tabela com redundância de dados.

2. Construir uma tabela para cada tabela aninhada.

Page 21: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

21

Alternativa A

• Uma tabela na qual os dados das linhas externas à tabela aninhada são repetidos

para cada linha da tabela aninhada.

• Dados do projeto aparecem repetidos para cada empregado do projeto.

1FN:ProjEmp (CodProj, Tipo, Descr, CodEmp, Nome,

Cat, Sal, DataIni, TempAl)

ÑN:Proj (CodProj, Tipo, Descr,

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

Page 22: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

22

Alternativa B

• Cria-se:

• uma tabela referente a própria tabela que está sendo normalizada e

• uma tabela para cada tabela aninhada

1FN:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

ÑN:

Proj (CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl)

)

Page 23: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

23

Alternativas

• Primeira alternativa (tabela única) é a correta.

• Segunda alternativa - decompor uma tabela em várias tabelas:

• podem ser perdidas relações entre informações.

• Para fins práticos, preferimos esta segunda alternativa (decomposição de

tabelas)

• Quando houver diversas tabelas aninhadas, eventualmente com diversos níveis de

aninhamento, fica difícil visualizar a tabela na 1FN na alternativa de tabela única.

Page 24: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

24

Passo 1

1. Criar uma tabela na 1FN referente a tabela não normalizada.

• A chave primária da tabela na 1FN é idêntica à chave da tabela ÑN .

• criar tabelas referentes a tabela aninhada.

ÑN:

(CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN:

(CodProj, Tipo, Descr)

Page 25: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

25

Passo 2

2. Para cada tabela aninhada:

• criar uma tabela composta pelas seguintes colunas:

a. a chave primária de cada uma das tabelas na qual a tabela em questão

está aninhada;

b. as colunas da própria tabela aninhada.

• Criar tabelas referentes as tabela aninhada.

Page 26: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

26

Passo 2

ÑN:

(CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Page 27: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

27

Passo 3

3. Definir, na 1FN, as chaves primárias das tabelas que correspondem a tabelas

aninhadas.

ÑN:

(CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

Tabela de nível mais

externo:

basta transcrever a

chave primária1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Page 28: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

28

Passo 3

3. Definir, na 1FN, as chaves primárias das tabelas que correspondem a tabelas

aninhadas.

qual é a chave

primária desta

tabela?

ÑN:

(CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Page 29: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

29

Passo 3

3. Definir, na 1FN, as chaves primárias das tabelas que correspondem a tabelas

aninhadas.

ÑN:

(CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

pergunta a ser feita:

“um valor de CodEmp

(chave da tabela origem)

aparece uma única ou

várias vezes no

documento?”

Page 30: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

30

RELATÓRIO DE ALOCAÇÃO A PROJETO

CÓDIGO DO PROJETO:

LSC001 TIPO: Novo Desenv.

DESCRIÇÃO: Sistema de EstoqueCÓDIGO DO EMPREGADO

NOME CATEGORIA FUNCIONAL

SALÁRIO DATA DE INÍCIO NO PROJETO

TEMPO ALOCADO AO

PROJETO

2146 João A1 4 1/11/91 243145 Sílvio A2 4 2/10/91 246126 José B1 9 3/10/92 181214 Carlos A2 4 4/10/92 188191 Mário A1 4 1/11/92 12

CÓDIGO DO PROJETO:

PAG02 TIPO: Manutenção

DESCRIÇÃO: Sistema de RHCÓDIGO DO EMPREGADO

NOME CATEGORIA FUNCIONAL

SALÁRIO DATA DE INÍCIO NO PROJETO

TEMPO ALOCADO AO

PROJETO

8191 Mário A1 4 1/05/93 124112 João A2 4 4/01/91 246126 José B1 9 1/11/92 12

um empregado

pode trabalhar em

vários projetos

Page 31: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

31

RELATÓRIO DE ALOCAÇÃO A PROJETO

CÓDIGO DO PROJETO:

LSC001 TIPO: Novo Desenv.

DESCRIÇÃO: Sistema de EstoqueCÓDIGO DO EMPREGADO

NOME CATEGORIA FUNCIONAL

SALÁRIO DATA DE INÍCIO NO PROJETO

TEMPO ALOCADO AO

PROJETO

2146 João A1 4 1/11/91 243145 Sílvio A2 4 2/10/91 246126 José B1 9 3/10/92 181214 Carlos A2 4 4/10/92 188191 Mário A1 4 1/11/92 12

CÓDIGO DO PROJETO:

PAG02 TIPO: Manutenção

DESCRIÇÃO: Sistema de RHCÓDIGO DO EMPREGADO

NOME CATEGORIA FUNCIONAL

SALÁRIO DATA DE INÍCIO NO PROJETO

TEMPO ALOCADO AO

PROJETO

8191 Mário A1 4 1/05/93 124112 João A2 4 4/01/91 246126 José B1 9 1/11/92 12

um valor de CodEmp

(chave da tabela

origem) aparece várias

vezes no documento

Page 32: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

32

ÑN:

(CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

Um valor de CodEmp

aparece várias vezes:

É necessário CodProj

para distinguir as

várias aparições1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Tabelas aninhadas - definição de chave primária

Page 33: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

33

1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

ÑN:

(CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))Caso um empregado

trabalhasse em único

projeto (um valor de

CodEmp aparece uma

vez ao máximo)

Tabelas aninhadas - definição de chave primária

Page 34: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 1FN

34

CódProj Tipo Descr

LSC001 Novo Desenv. Sistema de Estoque

PAG02 Manutenção Sistema de RH

CódProj CodEmp Nome Cat Sal DataIni TempAl

LSC001 2146 João A1 4 1/11/91 24

LSC001 3145 Sílvio A2 4 2/10/91 24

LSC001 6126 José B1 9 3/10/92 18

LSC001 1214 Carlos A2 4 4/10/92 18

LSC001 8191 Mário A1 4 1/11/92 12

PAG02 8191 Mário A1 4 1/05/93 12

PAG02 4112 João A2 4 4/01/91 24

PAG02 6126 José B1 9 1/11/92 12

Proj:

ProjEmp:

Page 35: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Dependência Funcional

35

Para entender 2FN e 3FN:

é necessário compreender o conceito de dependência

funcional.

Em uma tabela relacional, diz-se que

uma coluna C2 depende funcionalmente de uma

coluna C1

(ou que a coluna C1 determina a coluna C2)

quando,

em todas linhas da tabela, para cada valor de C1

que aparece na tabela, aparece o mesmo valor de C2.

Page 36: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Dependência Funcional

36

Exemplo

… Código … Salário …

... E1 ... 10 ...

... E3 ... 10 ...

... E1 ... 10 ...

... E2 ... 5 ...

... E3 ... 10 ...

... E2 ... 5 ...

... E1 ... 10 ...

Código → Salário

Page 37: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Dependência Funcional

37

ExemploA B C D

B 5 2 20

C 4 2 15

B 6 7 20

B 5 2 20

C 2 2 15

C 4 2 15

A 10 5 18

A 12 3 18

A 10 5 18

B 5 2 20

C 4 2 15

A 10 5 18

C 4 2 15

Page 38: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Dependência Funcional

38

ExemploA B C D

B 5 2 20

C 4 2 15

B 6 7 20

B 5 2 20

C 2 2 15

C 4 2 15

A 10 5 18

A 12 3 18

A 10 5 18

B 5 2 20

C 4 2 15

A 10 5 18

C 4 2 15

Dependência funcional

inexistente na tabela:

A → B

Page 39: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Dependência Funcional

39

ExemploA B C D

B 5 2 20

C 4 2 15

B 6 7 20

B 5 2 20

C 2 2 15

C 4 2 15

A 10 5 18

A 12 3 18

A 10 5 18

B 5 2 20

C 4 2 15

A 10 5 18

C 4 2 15

Dependência funcional

existente na tabela

A → D

Page 40: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Dependência Funcional

40

ExemploA B C D

B 5 2 20

C 4 2 15

B 6 7 20

B 5 2 20

C 2 2 15

C 4 2 15

A 10 5 18

A 12 3 18

A 10 5 18

B 5 2 20

C 4 2 15

A 10 5 18

C 4 2 15

Uma coluna pode

depender

funcionalmente

de uma combinação de

mais de uma coluna

(A,B) → C

Page 41: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passo #3

41

esquema de

arquivo ou

documento

Representação

como tabela

ÑNesquema não

normalizado

Passagem

a 1FN

esquema

na 1FN

Passagem

a 2FN

esquema

na 2FN

Passagem

a 3FN

Passagem

a 4FN

esquema

na 3FN

esquema relacional

normalizado

Page 42: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

42

Objetiva eliminar um certo tipo de redundância de dados.

Exemplo

Dados referentes a empregados (Nome, Cat e Sal) são

redundantes, para os empregados que trabalham em mais de um projeto.

(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)

Page 43: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

43

Dados redundantes na 1FN

CódProj CodEmp Nome Cat Sal DataIni TempAl

LSC001 2146 João A1 4 1/11/91 24

LSC001 3145 Sílvio A2 4 2/10/91 24

LSC001 6126 José B1 9 3/10/92 18

LSC001 1214 Carlos A2 4 4/10/92 18

LSC001 8191 Mário A1 4 1/11/92 12

PAG02 8191 Mário A1 4 1/05/93 12

PAG02 4112 João A2 4 4/01/91 24

PAG02 6126 José B1 9 1/11/92 12

ProjEmp:

Page 44: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

44

Segunda forma normal (2FN) Uma tabela encontra-se na segunda forma normal, quando,

além de estar na 1FN, não contém dependências parciais.

Page 45: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

45

Segunda forma normal (2FN) Dependência funcional parcial

Uma dependência (funcional) parcial ocorre quando umacoluna depende apenas de parte de uma chave primáriacomposta.

1FN:

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

Page 46: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

46

Segunda forma normal (2FN) Dependências não parciais

1FN:

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

Page 47: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

47

Tabela 1FN e que possui apenas uma coluna comochave primária:

Não contém dependências parciais.

É impossível uma coluna depender de uma parte da chaveprimária, quando a chave primária não é composta por partes.

Conclusão: Toda tabela 1FN que possui apenas uma coluna como chave

primária já está na 2FN.

Page 48: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

48

Tabela com uma única coluna na chave

1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

2FN:

(CodProj, Tipo, Descr)

Page 49: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

49

Idem para: Tabela que contenha apenas colunas chave primária:

Impossível atributo não chave depender de parte da chave (tabela nãotem colunas não chave).

Tabela sem colunas não chave já está na 2FN.

1FN:

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

Page 50: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

50

1FN:

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

Tabela que possui chave

primária com várias colunas

e possui colunas não chave

deve ser examinada

Page 51: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

51

1FN:

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

Pergunta a ser feita, para cada coluna não chave:

•“a coluna depende de toda a chave ou só de parte”

ou

•“para identificar um valor da coluna necessita de

toda chave ou só de parte dela” ?

Page 52: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

52

1FN:

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

2FN:

ProjEmp (CodProj,CodEmp, DataIni, TempAl)

Colunas que dependem de

toda a chave permanecem

na tabela original

Page 53: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

53

1FN:

ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)

2FN:

ProjEmp (CodProj, CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat, Sal)

Colunas que dependem de parte da chave vão para uma

nova tabela

Page 54: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

54

2FN:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj,CodEmp, DataIni, TempAl)

Emp (CodEmp, Nome, Cat, Sal)

Resultado:

Page 55: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 2FN

55

Exemplo: CódProj Tipo Descr

LSC001 Novo Desenv. Sistema de Estoque

PAG02 Manutenção Sistema de RH

Proj:

CodEmp Nome Cat Sal

2146 João A1 4

3145 Sílvio A2 4

1214 Carlos A2 4

8191 Mário A1 4

4112 João A2 4

6126 José B1 9

Emp:

CódProj CodEmp DataIni TempAl

LSC001 2146 1/11/91 24

LSC001 3145 2/10/91 24

LSC001 6126 3/10/92 18

LSC001 1214 4/10/92 18

LSC001 8191 1/11/92 12

PAG02 8191 1/05/93 12

PAG02 4112 4/01/91 24

PAG02 6126 1/11/92 12

ProjEmp:

Page 56: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passo #4

56

esquema de

arquivo ou

documento

Representação

como tabela

ÑNesquema não

normalizado

Passagem

a 1FN

esquema

na 1FN

Passagem

a 2FN

esquema

na 2FN

Passagem

a 3FN

Passagem

a 4FN

esquema

na 3FN

esquema relacional

normalizado

Page 57: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

57

Trata de um outro tipo de redundância.

Exemplo:

Se salário (coluna Sal) é determinado pela categoria funcional

(coluna Cat)

Salário que é pago a uma categoria funcional éarmazenado tantas vezes quantos empregadospossui a categoria funcional

2FN:

Emp (CodEmp, Nome, Cat, Sal)

Page 58: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

58

CodEmp Nome Cat Sal

2146 João A1 4

3145 Sílvio A2 4

1214 Carlos A2 4

8191 Mário A1 4

4112 João A2 4

6126 José B1 9

Emp:

Page 59: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

59

Dependência funcional

Emp (CodEmp, Nome, Cat, Sal)

Emp (CodEmp, Nome, Cat, Sal)

Page 60: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

60

Dependência transitiva

Emp (CodEmp, Nome, Cat, Sal)

dependência

funcional

transitiva

Page 61: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

61

Terceira forma normal (3FN)

• Uma tabela encontra-se na terceira forma normal, quando,além de estar na 2FN, não contém dependências transitivas.

Page 62: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

62

Terceira forma normal (3FN)

dependência

funcional

deve ser

eliminada

Emp (CodEmp, Nome, Cat, Sal)

Page 63: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

63

Terceira forma normal (3FN)

2FN:

Emp (CodEmp, Nome, Cat, Sal)

3FN:

Emp (CodEmp, Nome, Cat)

Colunas que dependem da

chave permanecem na

tabela original

Page 64: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

64

Terceira forma normal (3FN)

3FN:

Cat(Cat, Sal)

Emp (CodEmp, Nome, Cat, Sal)

Colunas que dependem de

coluna não chave vão para

outra tabela

Page 65: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 3FN

65

Exemplo final

3FN:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj, CodEmp, DataIni, TempAl)

Emp (CodEmp, Nome, Cat)

Cat (Cat, Sal)

Page 66: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais

66

Normalização do Exemplo

3FN:

Proj (CodProj, Tipo, Descr)ProjEmp (CodProj, CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat)Cat (Cat, Sal)

ÑN:

Proj (CodProj, Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN:

(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)

2FN:Proj (CodProj, Tipo, Descr)ProjEmp (CodProj,CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat, Sal)

Page 67: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais

67

Tabelas na 3FN - ExemploCódProj Tipo Descr

LSC001 Novo Desenv. Sistema de Estoque

PAG02 Manutenção Sistema de RH

Proj:

CódProj CodEmp DataIni TempAl

LSC001 2146 1/11/91 24

LSC001 3145 2/10/91 24

LSC001 6126 3/10/92 18

LSC001 1214 4/10/92 18

LSC001 8191 1/11/92 12

PAG02 8191 1/05/93 12

PAG02 4112 4/01/91 24

PAG02 6126 1/11/92 12

ProjEmp:

Page 68: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais

68

Tabelas na 3FN - Exemplo

CodEmp Nome Cat

2146 João A1

3145 Sílvio A2

1214 Carlos A2

8191 Mário A1

4112 João A2

6126 José B1

Emp:

Cat Sal

A1 4

A2 4

B1 9

Cat:

Page 69: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passo #5

69

esquema de

arquivo ou

documento

Representação

como tabela

ÑNesquema não

normalizado

Passagem

a 1FN

esquema

na 1FN

Passagem

a 2FN

esquema

na 2FN

Passagem

a 3FN

Passagem

a 4FN

esquema

na 3FN

esquema relacionalnormalizado

Page 70: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

70

Para a maioria dos documentos e arquivos: a decomposição até a 3FN é suficiente.

Na literatura, aparecem outras formas normais: forma normal de Boyce/Codd,

a 4FN,

a 5FN.

Page 71: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

71

Exemplo:

código

nome

EQUIPAMENTOPROJETO

EMPREGADO

UTILIZAÇÃO

código

nome

código

nome

Page 72: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

72

Exemplo: implementação do relacionamento.

código

nome

EQUIPAMENTOPROJETO

EMPREGADO

UTILIZAÇÃO

código

nome

código

nomeUtilizacao(CodProj,CodEmp,CodEquip)

Page 73: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

73

Exemplo: tabela Utilização com requisitos alterados.CodProj CodEmp CodEquip

1 1 1

1 2 1

1 3 1

1 1 2

1 2 2

1 3 2

2 2 2

2 2 4

3 3 1

3 4 1

3 3 3

3 4 3

3 3 5

3 4 5

4 2 5

Page 74: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

74

Exemplo: tabela Utilização com requisitos alterados.CodProj CodEmp CodEquip

1 1 1

1 2 1

1 3 1

1 1 2

1 2 2

1 3 2

2 2 2

2 2 4

3 3 1

3 4 1

3 3 3

3 4 3

3 3 5

3 4 5

4 2 5

quais são os

empregados que

trabalham no

projeto 1?

Page 75: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

75

Exemplo: tabela Utilização com requisitos alterados.CodProj CodEmp CodEquip

1 1 1

1 2 1

1 3 1

1 1 2

1 2 2

1 3 2

2 2 2

2 2 4

3 3 1

3 4 1

3 3 3

3 4 3

3 3 5

3 4 5

4 2 5

quais são os

empregados que

trabalham no

projeto 1?

Page 76: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

76

Exemplo: tabela Utilização com requisitos alterados.CodProj CodEmp CodEquip

1 1 1

1 2 1

1 3 1

1 1 2

1 2 2

1 3 2

2 2 2

2 2 4

3 3 1

3 4 1

3 3 3

3 4 3

3 3 5

3 4 5

4 2 5

quais são os

equipamentos usados

no projeto 1?

Page 77: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

77

Dependência Funcional MultivaloradaCodProj CodEmp CodEquip

1 1 1

1 2 1

1 3 1

1 1 2

1 2 2

1 3 2

2 2 2

2 2 4

3 3 1

3 4 1

3 3 3

3 4 3

3 3 5

3 4 5

Page 78: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

78

Dependência Funcional MultivaloradaCodProj CodEmp CodEquip

1 1 1

1 2 1

1 3 1

1 1 2

1 2 2

1 3 2

2 2 2

2 2 4

3 3 1

3 4 1

3 3 3

3 4 3

3 3 5

3 4 5

CodProj CodEmp

Page 79: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais – Passagem à 4FN

79

Dependência Funcional MultivaloradaCodProj CodEmp CodEquip

1 1 1

1 2 1

1 3 1

1 1 2

1 2 2

1 3 2

2 2 2

2 2 4

3 3 1

3 4 1

3 3 3

3 4 3

3 3 5

3 4 5

CodProj CodEmp

CodProj CodEquip

Page 80: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais

80

Quarta forma normal (4FN)

• Uma tabela encontra-se na quarta forma normal, quando,além de estar na 3FN, não contém mais de uma dependênciamultivalorada.

Page 81: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Formas Normais

81

Quarta forma normal (4FN)

3FN:

Utilizacao(CodProj,CodEmp,CodEquip)

4FN:

ProjEmp (CodProj,CodEmp)ProjEquip (CodProj,CodEquip)

Page 82: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

82

Chaves primárias omitidas ou incorretas

Atributos relevantes implicitamente representados

Atributos irrelevantes, redundantes ou derivados

Page 83: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

83

Chaves primárias omitidas ou incorretas Arquivos convencionais:

o conceito de chave primária não é obrigatório;

é possível encontrar arquivos que não possuem chave primária.

Quando um arquivo convencional não possui chave primária ouquando a chave primária nele usada difere da usual naorganização: deve-se proceder como se a chave primária aparecesse no arquivo;

deve-se inseri-la na forma ÑN.

Page 84: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

84

Chaves primárias omitidas ou incorretas Exemplo:

Arquivo com dados sobre empregados de uma organização enviado parafins de fiscalização a um órgão governamental.

Identificador de empregado usado na organização é omitido, já que esteé irrelevante para o órgão fiscalizador.

Outra situação: uso de uma chave alternativa, ao invés da chave primária usual do arquivo.

No caso mencionado acima: Se o órgão governamental fosse a receita federal:

Arquivo poderia ter como chave primária o CIC do empregado, ao invés da chaveprimária normalmente usada na organização.

Page 85: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

85

Atributos relevantes implicitamente representados Arquivos convencionais podem conter atributos de forma

implícita: ordenação de registros ou de listas;

ponteiros físicos, etc.

Deve-se proceder como se o atributo aparecesseexplicitamente no documento.

Page 86: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

86

Atributos relevantes implicitamente representados Exemplo:

arquivo contém registros referentes a cursos em um concurso vestibular;

para cada curso, há um grupo repetido aninhado, com as informaçõesdos candidatos ao curso em questão;

informações dos candidatos ordenadas por classificação no concurso.

Page 87: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

87

Atributos relevantes implicitamente representados Ordenação:

4FN:

Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)Candidatos (Cod-Curso,Cod-Cand,Nome-Cand)

ÑN:

Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,(Cod-Cand, Nome-Cand))

Page 88: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

88

Atributos relevantes implicitamente representados Ordenação:

Informação da classificação dos candidatos em um curso foi perdida noprocesso de normalização.

Procedimento correto:

incluir explicitamente na tabela, já na forma ÑN, a informação queaparece implicitamente no arquivo na forma da ordenação dosregistros (coluna Ordem-Cand).

ÑN:Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,

(Cod-Cand, Nome-Cand, Ordem-Cand))

Page 89: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

89

Atributos relevantes implicitamente representados Ordenação:

ÑN:Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,

(Cod-Cand, Nome-Cand, Ordem-Cand))

4FN:Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)Candidatos (Cod-Curso, Cod-Cand, Nome-Cand, Ordem-Cand)

Page 90: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Problemas da Normalização

90

Atributos irrelevantes, redundantes ou derivados Devem ser eliminados já quando da passagem a forma não

normalizada.

Page 91: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

91

modelo

relacional 1

esquema de

arquivo/documento 1

modelo

relacional 2

esquema de

arquivo/documento 2

...

modelo relacional integrado

integração

modelo

relacional n

esquema de

arquivo/documento n

normalização normalizaçãonormalização...

Page 92: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

92

Integração de tabelas com a mesma chave

Integração de tabelas com chave contida

Verificação de 3FN

Page 93: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

93

Integração de tabelas com a mesma chave Junção de tabelas que possuem a mesma chave primária.

“mesma” chave primária = domínios e conteúdos das colunas que compõem a chave primária são iguais.

Page 94: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

94

Documento 1:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj, CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat)Cat (Cat, Sal)

Documento2:

Proj (CodProj, DataInicio, Descr, CodDepto)

Depto (CodDepto, NomeDepto)ProjEquipamento (CodProj, CodEquipam, DataIni)ProjEmp (CodProj, CodEmp, FunçãoEmpProj)Equipamento (CodEquipam, Descrição)

Integração de tabelas com a mesma chave

Page 95: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

95

Documento 1:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj, CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat)Cat (Cat, Sal)

Documento2:

Proj (CodProj, DataInicio, Descr, CodDepto)

Depto (CodDepto, NomeDepto)ProjEquipamento (CodProj, CodEquipam, DataIni)ProjEmp (CodProj, CodEmp, FunçãoEmpProj)Equipamento (CodEquipam, Descrição)

Integração de tabelas com a mesma chave

Page 96: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

96

Documento 1:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj, CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat)Cat (Cat, Sal)

Documento2:

Proj (CodProj, DataInicio, Descr, CodDepto)

Depto (CodDepto, NomeDepto)ProjEquipamento (CodProj, CodEquipam, DataIni)ProjEmp (CodProj, CodEmp, FunçãoEmpProj)Equipamento (CodEquipam, Descrição)

Integração de tabelas com a mesma chave

Page 97: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

97

Modelo integrado:

Proj (CodProj,Tipo,Descr,DataInicio,CodDepto)

ProjEmp (CodProj,CodEmp,DataIni,TempAl,FunçãoEmpProj)Emp (CodEmp,Nome,Cat)Cat (Cat,Sal)Depto (CodDepto,NomeDepto)ProjEquipamento (CodProj,CodEquipam,DataIni)Equipamento (CodEquipam,Descrição)

Integração de tabelas com a mesma chave

Page 98: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

98

Integração de tabelas com chave contida Tabelas são fundidas:

uma tabela contém somente a chave primária e

a chave primária é subconjunto da chave primária de outra tabela.

Chave primária está contida dentro da outra: chave primária deve ter o mesmo domínio e os mesmos valores.

Page 99: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

99

Modelo #2:

AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada,

Nota-Disc)

Modelo #1:AlunoDisc (Cod-Al,Cod-Disc)

Integração de tabelas com chave contida

Page 100: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

100

Modelo #2:

AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada,

Nota-Disc)

Modelo #1:

AlunoDisc (Cod-Al,Cod-Disc)

Informa o aluno que cursou determinada

disciplina

informa a nota obtida pelo aluno em uma disciplina em

um semestre

Integração de tabelas com chave contida

Page 101: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

101

Modelo #2:

AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada,

Nota-Disc)

Modelo #1:

AlunoDisc Cod-Al, Cod-Disc, BolsaSimNao)

Não integrar quando tabela contém dados

além da chave primária.

Integração de tabelas com chave contida

Page 102: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

102

Verificação de 3FN A integração de dois modelos 4FN pode conduzir a um modelo

que está na 2FN mas não na 3FN.

Modelo #1:

Departamento (CodDepto, NomeDepto, CodGerenteDepto)

Modelo # 2:

Departamento (CodDepto,LocalDepto,NomeGerenteDepto)

Page 103: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

103

Verificação de 3FN Modelo integrado

Modelo #1:

Departamento (CodDepto, NomeDepto, CodGerenteDepto,

LocalDepto,NomeGerenteDepto)

Page 104: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Integração de Modelos

104

Verificação de 3FN

Modelo #1:

Departamento (CodDepto, NomeDepto, CodGerenteDepto,

LocalDepto,NomeGerenteDepto)

Não está na 3FN!

Page 105: Normalização de Tabelas - Webnode.com.brfiles.antoniojr.webnode.com.br/200000170-950b296053... · Engenharia Reversa de Arquivos 3 Modelo relacional Engenharia reversa de arquivos

Referência

105

Heuser, C.A. Projeto de Banco de Dados. 6 Ed., Ed. Bookman, São Paulo – SP, 2009.