Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A....
Transcript of Engenharia reversa de arquivos e documentos · Engenharia reversa de BD relacional ©Carlos A....
![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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/1.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/2.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/3.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/4.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/5.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/6.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/7.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/8.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/9.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/10.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/11.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/12.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/13.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/14.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/15.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/16.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/17.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/18.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/19.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/20.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/21.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/22.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/23.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/24.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/25.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/26.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/27.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/28.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/29.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/30.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/31.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/32.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/33.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/34.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/35.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/36.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/37.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/38.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/39.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/40.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/41.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/42.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/43.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/44.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/45.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/46.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/47.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/48.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/49.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/50.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/51.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/52.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/53.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/54.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/55.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/56.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/57.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/58.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/59.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/60.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/61.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/62.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/63.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/64.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/65.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/66.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/67.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/68.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/69.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/70.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/71.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/72.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/73.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/74.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/75.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/76.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/77.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/78.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/79.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/80.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/81.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/82.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/83.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/84.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/85.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/86.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/87.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/88.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/89.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/90.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/91.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/92.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/93.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/94.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/95.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/96.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/97.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/98.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/99.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/100.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/101.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/102.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/103.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/104.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/105.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/106.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/107.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/108.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/109.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/110.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/111.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/112.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/113.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/114.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/115.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/116.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/117.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/118.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/119.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/120.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/121.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/122.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/123.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/124.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/125.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/126.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/127.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/128.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/129.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/130.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/131.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/132.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/133.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/134.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/135.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/136.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/137.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/138.jpg)
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](https://reader031.fdocumentos.com/reader031/viewer/2022021910/5c08044209d3f2922c8bd080/html5/thumbnails/139.jpg)
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