engenharia reversa de arquivos e documentos · engenharia reversa de bd relacional ©carlos a....

139
Engenharia reversa de arquivos e documentos Capítulo 6

Upload: lehuong

Post on 06-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversade arquivos e documentos

Capítulo 6

Page 2: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversade arquivos e documentos

©Carlos A. Heuser 2

Modelo relacional

Engenhariareversa de

arquivosconvencionais

Esquema de arquivoconvencional ou

documento

Page 3: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversade BD relacional

©Carlos A. Heuser 3

Modelo ER(conceitual)

Modelo relacional

Engenhariareversa de

BD relacional(Capítulo 5)

Esquema de arquivoconvencional ou

documento

Engenhariareversa de

arquivosconvencionais

Page 4: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversade arquivos e normalização

• Entrada do processo:

– qualquer conjunto de dados para os quais se disponha de uma descrição:

• documentos,

• arquivos manuais,

• arquivos convencionais em computador,

• bancos de dados gerenciados por SGBD não relacional,

• ...

©Carlos A. Heuser 4

Page 5: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversa de arquivos e normalização -motivação

• Sistemas legados:

– Raramente documentados;

– Necessidade de modelo ER:

• Manutenção,

• Migração para outro tipo de BD,

• Integração com outros BDs.

©Carlos A. Heuser 5

Page 6: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversa passo #1

• Normalização:

– Processo que transforma um esquema de dados qualquer em um modelo relacional.

©Carlos A. Heuser 6

modelorelacional

esquema dearquivo/documento

normalização

Page 7: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversa - processo

• Normalização é executada para todos esquemas de documentos disponíveis.

©Carlos A. Heuser 7

modelorelacional 1

esquema dearquivo/documento 1

modelorelacional 2

esquema dearquivo/documento 2

...modelorelacional n

esquema dearquivo/documento n

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

Page 8: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Engenharia reversa - integração

©Carlos A. Heuser 8

modelorelacional 1

esquema dearquivo/documento 1

modelorelacional 2

esquema dearquivo/documento 2

...

modelo relacional integrado

integração

modelorelacional n

esquema dearquivo/documento n

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

Page 9: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

NormalizaçãoObjetivo

• Reagrupar informações para:

– eliminar redundâncias de dados.

• Reagrupar informações para:

– eliminar estruturas inexistentes no modelo ER (atributos multivalorados).

©Carlos A. Heuser 9

Page 10: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Normalizaçãopassos

©Carlos A. Heuser 10

esquema dearquivo oudocumento

Representaçãocomo tabela

ÑNesquema nãonormalizado

Passagema 1FN

esquema na 1FN

Passagema 2FN

esquema na 2FN

Passagema 3FN

Passagema 4FN

esquema na 3FN

esquema relacionalnormalizado

Page 11: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Documento exemplo para normalização

©Carlos A. Heuser 11

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 12: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Normalização – passo #1

©Carlos A. Heuser 12

esquema dearquivo oudocumento

Representaçãocomo tabela

ÑNesquema nãonormalizado

Passagema 1FN

esquema na 1FN

Passagema 2FN

esquema na 2FN

Passagema 3FN

Passagema 4FN

esquema na 3FN

esquema relacionalnormalizado

Page 13: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela não normalizada

• Tabela não-normalizada ou

tabela não-primeira-forma-normal:

– possui uma ou mais tabelas aninhadas

©Carlos A. Heuser 13

Page 14: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela aninhada

• Tabela não-normalizada ou

tabela não-primeira-forma-normal:

– possui uma ou mais tabelas aninhadas

©Carlos A. Heuser 14

Tabela aninhada ou grupo repetido

ou coluna multi-valoradaou coluna não atômica

=coluna que ao invés de conter valores atômicos, contém tabelas aninhadas

Page 15: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela não normalizada

• Tabela não-normalizada ou

tabela não-primeira-forma-normal:

– possui uma ou mais tabelas aninhadas.

• Abreviatura: ÑN

©Carlos A. Heuser 15

Page 16: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Documento exemplo na forma ÑN

CódProj Tipo Descr Emp

CodEmp Nome Cat Sal DataIni TempAl

LSC001 NovoDesenv.

SistemadeEstoque

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

Sistemade 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

©Carlos A. Heuser 16

Page 17: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

CódProj Tipo Descr Emp

CodEmp Nome Cat Sal DataIni TempAl

LSC001 NovoDesenv.

SistemadeEstoque

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

Sistemade 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

©Carlos A. Heuser 17

tabela aninhada

Page 18: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela ÑNEsquema

©Carlos A. Heuser 18

Proj (CodProj, Tipo, Descr,

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

)

Page 19: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Esquema de arquivo em Pascal

©Carlos A. Heuser 19

type reg_aluno= record

cod_al: integer;

nome_al: char_60;

ingressos_cursos_al: array [1..10] of record

cod_curso: integer;

semestre_ingresso: integer

end;

disciplinas_cursadas_al: array [0..200] of record

cod_disc: integer;

semestres_cursados: array [1..20] of record

semestre_disc: integer;

nota_disc: integer

end

end

end;

arq_aluno= file of reg_aluno;

Page 20: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Esquema de arquivo COBOL - parcial

©Carlos A. Heuser 20

FD Arq-Alunos

01 Reg-Al.

03 Cod-Al

03 Nome-Al

03 Ingr-Cursos-al OCCURS 1 TO 10

05 Cod-Curso

05 Sem-ingresso

03 Disc-Curs-Al OCCURS 0 TO 200

05 Cod-Disc

05 Sem-Cursado OCCURS 1 TO 20

07 Sem-Disc-Cursada

07 Nota-Disc

Page 21: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Esquema ÑNpara arquivos exemplo

©Carlos A. Heuser 21

Arq-Alunos (Cod-Al, Nome-Al,

(Cod-Curso, Sem-ingresso),

(Cod-Disc,

(Sem-Disc-Cursada,

Nota-Disc)))

Page 22: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Representação em esquemanão normalizada

• Nenhuma transformação é feita no modelo do documento.

• Apenas é usada outra notação.

• Notação independe do tipo de documento/arquivo usado como entrada do processo de normalização.

©Carlos A. Heuser 22

Page 23: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Forma normal

• Regra que uma tabela deve obedecer para ser considerada “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).

©Carlos A. Heuser 23

Page 24: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem a 1FN

©Carlos A. Heuser 24

esquema dearquivo oudocumento

Representaçãocomo tabela

ÑNesquema nãonormalizado

Passagema 1FN

esquema na 1FN

Passagema 2FN

esquema na 2FN

Passagema 3FN

Passagema 4FN

esquema na 3FN

esquema relacionalnormalizado

Page 25: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Primeira forma normal (1FN)

©Carlos A. Heuser 25

primeira forma normal (1FN)=

diz-se que uma tabela está na primeira forma normal, quando ela não contém

tabelas aninhadas

Page 26: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN - alternativas

• 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.

©Carlos A. Heuser 26

Page 27: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – alternativa #1

• 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.

©Carlos A. Heuser 27

1FN:

ProjEmp (CodProj, Tipo, Descr, CodEmp, Nome,

Cat, Sal, DataIni, TempAl)

ÑN:

Proj (CodProj, Tipo, Descr,

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

)

Page 28: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN -alternativa #2

• Cria-se:

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

2. uma tabela para cada tabela aninhada

©Carlos A. Heuser 28

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 29: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN - alternativas

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

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

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

• Ver exercício 6.17 do livro.

©Carlos A. Heuser 29

Page 30: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN - alternativas

• Para fins práticos:

– preferimos a 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.

©Carlos A. Heuser 30

Page 31: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – passo #1

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

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

©Carlos A. Heuser 31

Page 32: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNcriar tabela referente a tabela externa

©Carlos A. Heuser 32

ÑN:

(CodProj, Tipo, Descr,

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

1FN:

(CodProj, Tipo, Descr)

Page 33: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – 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.

©Carlos A. Heuser 33

Page 34: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNcriar tabelas referentes a tabela aninhada

©Carlos A. Heuser 34

ÑN:

(CodProj, Tipo, Descr,

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

1FN:

(CodProj, Tipo, Descr)

(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Page 35: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN - passo #3

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

©Carlos A. Heuser 35

Page 36: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – tabela externadefinição de chave primária

©Carlos A. Heuser 36

ÑN:

(CodProj, Tipo, Descr,

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

1FN:

(CodProj, Tipo, Descr)

(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Tabela de nível mais externo:

basta transcrever a chave primária

Page 37: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – tabelas aninhadasdefinição de chave primária

©Carlos A. Heuser 37

ÑN:

(CodProj, Tipo, Descr,

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

1FN:

(CodProj, Tipo, Descr)

(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

qual é a chave primária desta

tabela?

Page 38: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – tabelas aninhadasdefinição de chave primária

©Carlos A. Heuser 38

Ñ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 39: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Documento exemplo para normalização

©Carlos A. Heuser 39

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 40: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

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

Documento exemplo para normalização

©Carlos A. Heuser 40

um valor de CodEmp(chave da tabela origem) aparece várias vezes no

documento

Page 41: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – tabelas aninhadasdefinição de chave primária

©Carlos A. Heuser 41

ÑN:

(CodProj, Tipo, Descr,

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

1FN:

(CodProj, Tipo, Descr)

(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Um valor de CodEmpaparece várias vezes:

É necessário CodProjpara distinguir as várias

aparições

Page 42: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN – tabelas aninhadasdefinição de chave primária

©Carlos A. Heuser 42

ÑN:

(CodProj, Tipo, Descr,

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

1FN:

(CodProj, Tipo, Descr)

(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

Caso um empregado trabalhasse em único projeto (um valor de

CodEmp aparece uma vez ao máximo)

Page 43: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FN - exemplo

CódProj Tipo Descr

LSC001 Novo Desenv. Sistema de Estoque

PAG02 Manutenção Sistema de RH

©Carlos A. Heuser 43

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 44: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNoutro exemplo

©Carlos A. Heuser 44

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

(Cod-Cand, Nome-Cand, Escore-Cand))

Page 45: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNdecomposição em tabelas

©Carlos A. Heuser 45

1FN:Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)

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

(Cod-Cand, Nome-Cand, Escore-Cand))

Page 46: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNdecomposição em tabelas

©Carlos A. Heuser 46

1FN:Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)

Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)

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

(Cod-Cand, Nome-Cand, Escore-Cand))

Page 47: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNdefinição da chave primária

©Carlos A. Heuser 47

1FN:Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)

Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)

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

(Cod-Cand, Nome-Cand, Escore-Cand))

Tabela de nível mais externo:basta transcrever a chave

Page 48: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNdefinição da chave primária

©Carlos A. Heuser 48

1FN:Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)

Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)

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

(Cod-Cand, Nome-Cand, Escore-Cand))

Page 49: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 1FNdefinição da chave primária

©Carlos A. Heuser 49

1FN:Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)

Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)

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

(Cod-Cand, Nome-Cand, Escore-Cand))

Um valor de Cod-Candaparece uma única vez.

Page 50: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem a 1FN exemplo Pascal/COBOL

©Carlos A. Heuser 50

ÑN:Arq-Alunos (Cod-Al, Nome-Al,

(Cod-Curso, Sem-ingresso)(Cod-Disc,

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

1FN:

Alunos (Cod-Al, Nome-Al)

AlunoCurso (Cod-Al, Cod-Curso, Sem-ingresso)

AlunoDisc (Cod-Al, Cod-Disc)

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

Page 51: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem a 1FN exemplo Pascal/COBOL

©Carlos A. Heuser 51

ÑN:Arq-Alunos (Cod-Al, Nome-Al,

(Cod-Curso, Sem-ingresso)(Cod-Disc,

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

1FN:

Alunos (Cod-Al, Nome-Al)

AlunoCurso (Cod-Al, Cod-Curso, Sem-ingresso)

AlunoDisc (Cod-Al, Cod-Disc)

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

Page 52: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem às 2FN e 3FN

©Carlos A. Heuser 52

esquema dearquivo oudocumento

Representaçãocomo tabela

ÑNesquema nãonormalizado

Passagema 1FN

esquema na 1FN

Passagema 2FN

esquema na 2FN

Passagema 3FN

Passagema 4FN

esquema na 3FN

esquema relacionalnormalizado

Page 53: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependência funcional

• Para entender 2FN e 3FN:

– é necessário compreender o conceito de dependência funcional.

©Carlos A. Heuser 53

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 54: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Exemplo de dependência funcional

… Código … Salário …

... E1 ... 10 ...

... E3 ... 10 ...

... E1 ... 10 ...

... E2 ... 5 ...

... E3 ... 10 ...

... E2 ... 5 ...

... E1 ... 10 ...

©Carlos A. Heuser 54

Código Salário

Page 55: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependências funcionais - exemplos

A 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©Carlos A. Heuser 55

Page 56: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependências funcionais - exemplos

©Carlos A. Heuser 56

Dependência funcionalinexistente na tabela:

A B

A 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 57: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependências funcionais - exemplos

©Carlos A. Heuser 57

Dependência funcionalexistente na tabela

A D

A 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 58: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependências funcionais - exemplos

©Carlos A. Heuser 58

Uma coluna podedepender funcionalmentede uma combinação demais de uma coluna

(A,B) C

A 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 59: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem às 2FN e 3FN

©Carlos A. Heuser 59

esquema dearquivo oudocumento

Representaçãocomo tabela

ÑNesquema nãonormalizado

Passagema 1FN

esquema na 1FN

Passagema 2FN

esquema na 2FN

Passagema 3FN

Passagema 4FN

esquema na 3FN

esquema relacionalnormalizado

Page 60: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Segunda forma normal - 2FN

• 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.

©Carlos A. Heuser 60

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

Page 61: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dados redundantes na 1FN

©Carlos A. Heuser 61

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 62: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Segunda forma normal - 2FN

©Carlos A. Heuser 62

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 63: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependência funcional parcial

©Carlos A. Heuser 63

dependência parcial=

uma dependência (funcional) parcial ocorre quando uma coluna depende

apenas de parte de uma chave primária composta

Page 64: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

1FN:

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

Dependências parciais

©Carlos A. Heuser 64

Page 65: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

1FN:

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

Dependências não parciais

©Carlos A. Heuser 65

Page 66: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 2FN

• Tabela 1FN e que possui apenas uma coluna como chave primária:

– Não contém dependências parciais.

– É impossível uma coluna depender de uma parte da chave primá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.

©Carlos A. Heuser 66

Page 67: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 2FNTabela com uma única coluna na chave

©Carlos A. Heuser 67

1FN:

(CodProj, Tipo, Descr)

(CodProj, CodEmp, Nome, Cat,

Sal, DataIni, TempAl)

2FN:

(CodProj, Tipo, Descr)

Page 68: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 2FN

• Idem para:

– Tabela que contenha apenas colunas chave primária:

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

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

©Carlos A. Heuser 68

Page 69: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

1FN:

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

Passagem à 2FN

©Carlos A. Heuser 69

Page 70: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

1FN:

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

Passagem à 2FN

©Carlos A. Heuser 70

Tabela que possui chave primária com várias colunase possui colunas não chave

deve ser examinada

Page 71: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

1FN:

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

Passagem à 2FN

©Carlos A. Heuser 71

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 72: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

1FN:

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

Passagem à 2FN

©Carlos A. Heuser 72

2FN:

ProjEmp (CodProj,CodEmp, DataIni, TempAl)

Colunas que dependem de toda a chave permanecem na

tabela original

Page 73: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

1FN:

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

Passagem à 2FN

©Carlos A. Heuser 73

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 74: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

2FN resultante

©Carlos A. Heuser 74

2FN:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj,CodEmp, DataIni, TempAl)

Emp (CodEmp, Nome, Cat, Sal)

Page 75: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabelas na 2FN - exemplo

CódProj Tipo Descr

LSC001 Novo Desenv. Sistema de Estoque

PAG02 Manutenção Sistema de RH

©Carlos A. Heuser 75

Proj:

Page 76: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabelas na 2FN - exemplo

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

©Carlos A. Heuser 76

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 77: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 3FN

©Carlos A. Heuser 77

esquema dearquivo oudocumento

Representaçãocomo tabela

ÑNesquema nãonormalizado

Passagema 1FN

esquema na 1FN

Passagema 2FN

esquema na 2FN

Passagema 3FN

Passagema 4FN

esquema na 3FN

esquema relacionalnormalizado

Page 78: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Terceira forma normal (3FN)

• 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 empregados possui a categoria funcional

©Carlos A. Heuser 78

2FN:

Emp (CodEmp, Nome, Cat, Sal)

Page 79: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Terceira forma normal (3FN)

©Carlos A. Heuser 79

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 80: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependências funcionais

©Carlos A. Heuser 80

Emp (CodEmp, Nome, Cat, Sal)

Page 81: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependências funcionais

©Carlos A. Heuser 81

Emp (CodEmp, Nome, Cat, Sal)

Page 82: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependência transitiva

©Carlos A. Heuser 82

Emp (CodEmp, Nome, Cat, Sal)

dependência funcional transitiva

Page 83: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Terceira forma normal3FN

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

©Carlos A. Heuser 83

Page 84: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 3FN

©Carlos A. Heuser 84

Emp (CodEmp, Nome, Cat, Sal)

dependência funcional deve ser

eliminada

Page 85: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 3FN

©Carlos A. Heuser 85

2FN:

Emp (CodEmp, Nome, Cat, Sal)

3FN:

Emp (CodEmp, Nome, Cat)

Colunas que dependem da chave permanecem na tabela

original

Page 86: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

3FN:

Cat(Cat, Sal)

Passagem à 3FN

©Carlos A. Heuser 86

Emp (CodEmp, Nome, Cat, Sal)

Colunas que dependem de coluna não chave vão para

outra tabela

Page 87: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

3FN do exemplo

©Carlos A. Heuser 87

3FN:

Proj (CodProj, Tipo, Descr)

ProjEmp (CodProj, CodEmp, DataIni, TempAl)

Emp (CodEmp, Nome, Cat)

Cat (Cat, Sal)

Page 88: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Normalização do exemplo

©Carlos A. Heuser 88

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 89: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabelas na 3FN - exemplo

CódProj Tipo Descr

LSC001 Novo Desenv. Sistema de Estoque

PAG02 Manutenção Sistema de RH

©Carlos A. Heuser 89

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 90: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

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

©Carlos A. Heuser 90

Emp:

Cat Sal

A1 4

A2 4

B1 9

Cat:

Page 91: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 3FN

©Carlos A. Heuser 91

esquema dearquivo oudocumento

Representaçãocomo tabela

ÑNesquema nãonormalizado

Passagema 1FN

esquema na 1FN

Passagema 2FN

esquema na 2FN

Passagema 3FN

Passagema 4FN

esquema na 3FN

esquema relacionalnormalizado

Page 92: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Passagem à 4FN

• 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.

©Carlos A. Heuser 92

Page 93: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Exemplo para 4FNModelo original

©Carlos A. Heuser 93

código

nome

EQUIPAMENTOPROJETO

EMPREGADO

UTILIZAÇÃOcódigo

nome

código

nome

Page 94: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Exemplo para 4FNRequisitos alterados

©Carlos A. Heuser 94

código

nome

EQUIPAMENTOPROJETO

EMPREGADO

Proj-Eq

código

nome

código

nome

Proj-Emp

Page 95: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Exemplo – Implementação do relacionamento

©Carlos A. Heuser 95

código

nome

EQUIPAMENTOPROJETO

EMPREGADO

UTILIZAÇÃOcódigo

nome

código

nomeUtilizacao(CodProj,CodEmp,CodEquip)

Page 96: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela Utilizaçãocom requisitos alterados

CodProj CodEmp CodEquip1 1 11 2 11 3 11 1 21 2 21 3 22 2 22 2 43 3 13 4 13 3 33 4 33 3 53 4 54 2 5

©Carlos A. Heuser 96

Page 97: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela Utilizaçãocom requisitos alterados

CodProj CodEmp CodEquip1 1 11 2 11 3 11 1 21 2 21 3 22 2 22 2 43 3 13 4 13 3 33 4 33 3 53 4 54 2 5

©Carlos A. Heuser 97

quais são os empregados que

trabalham no projeto 1?

Page 98: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela Utilizaçãocom requisitos alterados

CodProj CodEmp CodEquip1 1 11 2 11 3 11 1 21 2 21 3 22 2 22 2 43 3 13 4 13 3 33 4 33 3 53 4 54 2 5

©Carlos A. Heuser 98

quais são os empregados que

trabalham noprojeto 1?

Page 99: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Tabela Utilizaçãocom requisitos alterados

CodProj CodEmp CodEquip1 1 11 2 11 3 11 1 21 2 21 3 22 2 22 2 43 3 13 4 13 3 33 4 33 3 53 4 54 2 5

©Carlos A. Heuser 99

quais são os equipamentos

usados no projeto 1?

Page 100: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependência funcional multivalorada

CodProj CodEmp CodEquip1 1 11 2 11 3 11 1 21 2 21 3 22 2 22 2 43 3 13 4 13 3 33 4 33 3 53 4 54 2 5

©Carlos A. Heuser 100

Page 101: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependência multivalorada

CodProj CodEmp CodEquip1 1 11 2 11 3 11 1 21 2 21 3 22 2 22 2 43 3 13 4 13 3 33 4 33 3 53 4 54 2 5

©Carlos A. Heuser 101

CodProj CodEmp

Page 102: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Dependência multivalorada

CodProj CodEmp CodEquip1 1 11 2 11 3 11 1 21 2 21 3 22 2 22 2 43 3 13 4 13 3 33 4 33 3 53 4 54 2 5

©Carlos A. Heuser 102

CodProj CodEmp

CodProj CodEquip

Page 103: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

4FNdefinição

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ência multi-valorada

©Carlos A. Heuser 103

Page 104: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

4FN

©Carlos A. Heuser 104

3FN:Utilizacao(CodProj,CodEmp,CodEquip)

4FN:ProjEmp (CodProj,CodEmp)

ProjEquip (CodProj,CodEquip)

Page 105: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Problemas da normalização

1. Chaves primárias omitidas ou incorretas

2. Atributos relevantes implicitamente representados

3. Atributos irrelevantes, redundantes ou derivados

©Carlos A. Heuser 105

Page 106: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

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 ou quando a chave primária nele usada difere da usual na organização:

– deve-se proceder como se a chave primária aparecesse no arquivo;

– deve-se inseri-la na forma ÑN.

©Carlos A. Heuser 106

Page 107: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Chaves primárias omitidas ou incorretasexemplo

• Arquivo com dados sobre empregados de uma organização enviado para fins 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.

©Carlos A. Heuser 107

Page 108: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Chaves primáriasomitidas ou incorretas - exemplo

• 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 chave primária normalmente usada na organização.

©Carlos A. Heuser 108

Page 109: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Atributos relevantesimplicitamente 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 aparecesse explicitamente no documento.

©Carlos A. Heuser 109

Page 110: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Atributo implícitoOrdenação

• Exemplo:

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

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

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

©Carlos A. Heuser 110

Page 111: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Atributo implícito - Ordenação

©Carlos A. Heuser 111

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 112: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Atributo implícitoOrdenação

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

• Procedimento correto:

– incluir explicitamente na tabela, já na forma ÑN, a informação que aparece implicitamente no arquivo na forma da ordenação dos registros (coluna Ordem-Cand).

©Carlos A. Heuser 112

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

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

)

Page 113: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Atributo implícito - Ordenação

©Carlos A. Heuser 113

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

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

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

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

)

Page 114: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Atributosirrelevantes, redundantes ou derivados

• Atributos irrelevantes, redundantes ou derivados:

– Devem ser eliminados já quando da passagem a forma não normalizada.

©Carlos A. Heuser 114

Page 115: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de modelos

©Carlos A. Heuser 115

modelorelacional 1

esquema dearquivo/documento 1

modelorelacional 2

esquema dearquivo/documento 2

...

modelo relacional integrado

integração

modelorelacional n

esquema dearquivo/documento n

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

Page 116: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de modelos

• Normalização de cada um dos arquivos/documentos conduz à definição de um conjunto de tabelas.

• Passo seguinte :

– integrar os modelos obtidos para cada arquivo no modelo global do banco de dados.

• Processo é conhecido por:

– integração de visões;

– integração de esquemas .

©Carlos A. Heuser 116

Page 117: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de modelosobjetivos

• Os atributos de uma mesma entidade (ou de um mesmo relacionamento) podem estar armazenados em diferentes arquivos:

– juntar as tabelas em uma única tabela que representa a entidade ou relacionamento em questão.

• Tabelas dentro de um modelo livres de redundâncias.

• Tabelas entre diferentes modelos podem ter redundâncias entre si

– integração elimina estas redundâncias.

©Carlos A. Heuser 117

Page 118: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de modelospassos

1. integração de tabelas com a mesma chave;

2. integração de tabelas com chave contida;

3. verificação de 3FN

©Carlos A. Heuser 118

Page 119: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelascom 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.

©Carlos A. Heuser 119

Page 120: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelas com mesma chave - exemplo

©Carlos A. Heuser 120

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)

Page 121: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelas com mesma chave - exemplo

©Carlos A. Heuser 121

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)

Page 122: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelas com mesma chave - exemplo

©Carlos A. Heuser 122

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)

Page 123: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelascom mesma chave - exemplo

©Carlos A. Heuser 123

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)

Page 124: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de modelosproblemas

• Processo baseia-se na comparação dos nomes de colunas e de tabelas dentro dos diferentes modelos.

• Problema :

– conflitos de nomes:

• Homônimos

• Sinônimos

©Carlos A. Heuser 124

Page 125: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelascom chaves contidas

• 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.

©Carlos A. Heuser 125

Page 126: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelas com chaves contidasExemplo

• Exemplo:

©Carlos A. Heuser 126

Modelo #2:

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

Nota-Disc)

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

Page 127: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelas com chaves contidas

• Exemplo:

• Primeira tabela:

– informa que um aluno cursou uma disciplina.

©Carlos A. Heuser 127

Modelo #2:

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

Nota-Disc)

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

Page 128: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelas com chaves contidas

• Exemplo:

• Primeira tabela:

– informa que um aluno cursou uma disciplina.

• Segunda tabela:

– informa a nota obtida pelo aluno em uma disciplina em um semestre.

©Carlos A. Heuser 128

Modelo #2:

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

Nota-Disc)

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

Page 129: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelascom chaves contidas

• Caso as colunas Cod-Al e Cod-Disc da tabela AlunoDisc

– contenha os mesmo dados que as colunas Cod-Al e Cod-Disc da tabela AlunoDiscSem:

• Informações contidas na tabela AlunoDisc já estão na tabela AlunoDiscSem;

• Tabela AlunoDisc é redundante e pode ser eliminada sem perda de informações.

©Carlos A. Heuser 129

Modelo #2:

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

Nota-Disc)

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

Page 130: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelas com chaves contidas

• Não integrar quando tabela contém dados além da chave primária.

©Carlos A. Heuser 130

Modelo #2:

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

Nota-Disc)

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

Page 131: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelascom chaves contidas

• Garantir que primeira tabela efetivamente contida na segunda.

• Exemplo:

©Carlos A. Heuser 131

Modelo #2:

AlunoDiscSem (Cod-Al,Cod-Disc,SemDisc,Nota-Disc)

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

Page 132: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelascom chaves contidas

• Garantir que primeira tabela efetivamente contida na segunda.

• Exemplo:

©Carlos A. Heuser 132

Modelo #2:

AlunoDiscSem (Cod-Al,Cod-Disc,SemDisc,Nota-Disc)

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

representa o fato de um aluno estar matriculado

em um semestre

Page 133: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Integração de tabelascom chaves contidas

• Garantir que primeira tabela efetivamente contida na segunda.

• Exemplo:

©Carlos A. Heuser 133

Modelo #2:

AlunoDiscSem (Cod-Al,Cod-Disc,SemDisc,Nota-Disc)

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

representa a nota que o aluno obteve em uma

disciplina em um semestre

Page 134: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Volta à 2FN

• A integração de dois modelos 4FN pode conduzir a um modelo que está na 2FN mas não na 3FN.

• Exemplo:

©Carlos A. Heuser 134

Modelo #1:

Departamento (CodDepto, NomeDepto, CodGerenteDepto)

Modelo # 2:

Departamento (CodDepto,LocalDepto,NomeGerenteDepto)

Page 135: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Volta à 2FN

• Integração destes dois modelos resultaria no modelo integrado abaixo mostrado.

• Modelo integrado:

©Carlos A. Heuser 135

Modelo #1:

Departamento (CodDepto, NomeDepto, CodGerenteDepto,

LocalDepto,NomeGerenteDepto)

Page 136: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Volta à 2FN

• Integração destes dois modelos resultaria no modelo integrado abaixo mostrado.

• Modelo integrado:

• Não está na 3FN

©Carlos A. Heuser 136

Modelo #1:

Departamento (CodDepto, NomeDepto, CodGerenteDepto,

LocalDepto,NomeGerenteDepto)

Page 137: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Verificação do modelo ERLimitações da Normalização

• Obtido o modelo relacional normalizado pode ser construído o modelo ER correspondente (regras apresentadas no capítulo 5).

• O processo de normalização não conduz necessariamente a um modelo ER perfeito.

• Normalização apenas elimina:

– campos multivalorados ;

– redundâncias de dados detectadas pelas formas normais descritas.

©Carlos A. Heuser 137

Page 138: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Verificação do modelo ERLimitações da Normalização

• Optamos pela alternativa de decompor tabelas na passagem à 1FN:

– alternativa, apesar de mais simples de tratar na prática, pode levar a imperfeições no modelo.

• Há outras formas normais (Boyce/Codd e a quinta forma normal) .

©Carlos A. Heuser 138

Page 139: Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A. Heuser 3 Modelo ER (conceitual) Modelo relacional Engenharia reversa de BD relacional

Construção do modelo ER

• Último passo da engenharia reversa:

– construção do modelo ER através das regras para engenharia reversa de modelos relacionais;

– verificação do modelo ER obtido, procurando corrigir imperfeições ainda existentes.

©Carlos A. Heuser 139