Enviar pesquisa
Carregar
Capitulo6 novo
•
Transferir como PPTX, PDF
•
0 gostou
•
283 visualizações
J
jaflutz
Seguir
Vista de apresentação de diapositivos
Denunciar
Compartilhar
Vista de apresentação de diapositivos
Denunciar
Compartilhar
1 de 139
Baixar agora
Recomendados
A lógica aplicada no modelo relacional
A lógica aplicada no modelo relacional
Mailson Queiroz
01 introdução à algebra relacional
01 introdução à algebra relacional
charlesoliveira13
Nsurl + json
Nsurl + json
Elton Mendes
TCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações Web
Vagner Santana
Banco de dados orientados a objetos
Banco de dados orientados a objetos
Raquel Machado
1º trabalho base dados
1º trabalho base dados
essa
Aula 1 introdução a base de dados
Aula 1 introdução a base de dados
Hélio Martins
Aula 9 banco de dados
Aula 9 banco de dados
Jorge Ávila Miranda
Recomendados
A lógica aplicada no modelo relacional
A lógica aplicada no modelo relacional
Mailson Queiroz
01 introdução à algebra relacional
01 introdução à algebra relacional
charlesoliveira13
Nsurl + json
Nsurl + json
Elton Mendes
TCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações Web
Vagner Santana
Banco de dados orientados a objetos
Banco de dados orientados a objetos
Raquel Machado
1º trabalho base dados
1º trabalho base dados
essa
Aula 1 introdução a base de dados
Aula 1 introdução a base de dados
Hélio Martins
Aula 9 banco de dados
Aula 9 banco de dados
Jorge Ávila Miranda
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Gleyciana Garrido
Introducao Base Dados Ii
Introducao Base Dados Ii
guest3118b2
Aula 4 banco de dados
Aula 4 banco de dados
Jorge Ávila Miranda
SGBD
SGBD
Nelson Sousa
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
Rafael Albani
Bases De Dados
Bases De Dados
arturafonsosousa
Mais conteúdo relacionado
Destaque
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Gleyciana Garrido
Introducao Base Dados Ii
Introducao Base Dados Ii
guest3118b2
Aula 4 banco de dados
Aula 4 banco de dados
Jorge Ávila Miranda
SGBD
SGBD
Nelson Sousa
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
Rafael Albani
Bases De Dados
Bases De Dados
arturafonsosousa
Destaque
(6)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Introducao Base Dados Ii
Introducao Base Dados Ii
Aula 4 banco de dados
Aula 4 banco de dados
SGBD
SGBD
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
Bases De Dados
Bases De Dados
Capitulo6 novo
1.
Engenharia reversa de arquivos
e documentos Capítulo 6
2.
Engenharia reversa
de arquivos e documentos Modelo relacional Engenharia reversa de arquivos Esquema de arquivo convencionais convencional ou documento ©Carlos A. Heuser 2
3.
Engenharia reversa
de BD relacional Modelo ER (conceitual) Engenharia reversa de BD relacional (Capítulo 5) Modelo relacional Engenharia reversa de arquivos Esquema de arquivo convencionais convencional ou documento ©Carlos A. Heuser 3
4.
Engenharia reversa
de 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
5.
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
6.
Engenharia reversa
passo #1 • Normalização: – Processo que transforma um esquema de dados qualquer em um modelo relacional. modelo relacional normalização esquema de arquivo/documento ©Carlos A. Heuser 6
7.
Engenharia reversa -
processo • Normalização é executada para todos esquemas de documentos disponíveis. modelo relacional 1 modelo relacional 2 ... modelo relacional n normalização normalização ... normalização esquema de esquema de esquema de arquivo/documento 1 arquivo/documento 2 arquivo/documento n ©Carlos A. Heuser 7
8.
Engenharia reversa -
integração modelo relacional integrado integração modelo relacional 1 modelo relacional 2 ... modelo relacional n normalização normalização ... normalização esquema de esquema de esquema de arquivo/documento 1 arquivo/documento 2 arquivo/documento n ©Carlos A. Heuser 8
9.
Normalização
Objetivo • 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
10.
Normalização
passos esquema Passagem na 3FN a 3FN Passagem a 4FN esquema na 2FN esquema relacional Passagem normalizado a 2FN esquema de esquema arquivo ou na 1FN documento Representação Passagem como tabela a 1FN ÑN esquema não ©Carlos A. Heuser normalizado 10
11.
Documento exemplo para
normalização RELATÓRIO DE ALOCAÇÃO A PROJETO CÓDIGO DO PROJETO: LSC001 TIPO: Novo Desenv. DESCRIÇÃO: Sistema de Estoque CÓDIGO DO NOME CATEGORIA SALÁRIO DATA DE INÍCIO TEMPO EMPREGADO FUNCIONAL NO PROJETO ALOCADO AO PROJETO 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 CÓDIGO DO PROJETO: PAG02 TIPO: Manutenção DESCRIÇÃO: Sistema de RH CÓDIGO DO NOME CATEGORIA SALÁRIO DATA DE INÍCIO TEMPO EMPREGADO FUNCIONAL NO PROJETO ALOCADO AO PROJETO 8191 Mário A1 4 1/05/93 12 4112 João A2 4 4/01/91 24 6126 ©Carlos A. Heuser José B1 9 1/11/92 12 11
12.
Normalização – passo
#1 esquema Passagem na 3FN a 3FN Passagem a 4FN esquema na 2FN esquema relacional Passagem normalizado a 2FN esquema de esquema arquivo ou na 1FN documento Representação Passagem como tabela a 1FN ÑN esquema não ©Carlos A. Heuser normalizado 12
13.
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
14.
Tabela aninhada • Tabela
não-normalizada ou tabela não-primeira-forma-normal: – possui uma ou mais tabelas aninhadas Tabela aninhada ou grupo repetido ou coluna multi-valorada ou coluna não atômica = coluna que ao invés de conter valores atômicos, contém tabelas aninhadas ©Carlos A. Heuser 14
15.
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
16.
Documento exemplo na
forma ÑN CódProj Tipo Descr Emp CodEmp Nome Cat Sal DataIni TempAl LSC001 Novo Sistema 2146 João A1 4 1/11/91 24 Desenv. de 3145 Sílvio A2 4 2/10/91 24 Estoque 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 Manute Sistema 8191 Mário A1 4 1/05/93 12 nção de RH 4112 João A2 4 4/01/91 24 6126 José B1 9 1/11/92 12 ©Carlos A. Heuser 16
17.
Tabela aninhada CódProj Tipo
Descr Emp CodEmp Nome Cat Sal DataIni TempAl LSC001 Novo Sistema 2146 João A1 4 1/11/91 24 Desenv. de 3145 Sílvio A2 4 2/10/91 24 Estoque 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 Manute Sistema 8191 Mário A1 4 1/05/93 12 nção de RH tabela 4112 João A2 4 4/01/91 24 aninhada 6126 José B1 9 1/11/92 12 ©Carlos A. Heuser 17
18.
Tabela ÑN
Esquema Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl) ) ©Carlos A. Heuser 18
19.
Esquema de arquivo
em Pascal 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; ©Carlos A. Heuser 19
20.
Esquema de arquivo
COBOL - parcial 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 ©Carlos A. Heuser 20
21.
Esquema ÑN
para arquivos exemplo Arq-Alunos (Cod-Al, Nome-Al, (Cod-Curso, Sem-ingresso), (Cod-Disc, (Sem-Disc-Cursada, Nota-Disc))) ©Carlos A. Heuser 21
22.
Representação em esquema
nã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
23.
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
24.
Passagem a 1FN
esquema Passagem na 3FN a 3FN Passagem a 4FN esquema na 2FN esquema relacional Passagem normalizado a 2FN esquema de arquivo ou esquema documento na 1FN Representação Passagem como tabela ÑN a 1FN esquema não ©Carlos A. Heuser normalizado 24
25.
Primeira forma normal
(1FN) primeira forma normal (1FN) = diz-se que uma tabela está na primeira forma normal, quando ela não contém tabelas aninhadas ©Carlos A. Heuser 25
26.
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
27.
Passagem à 1FN
– alternativa #1 • Uma tabela na qual os dados das linhas externas à tabela aninhada são repetidos para cada linha da tabela aninhada. ÑN: Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl) ) 1FN: ProjEmp (CodProj, Tipo, Descr, CodEmp, Nome, Cat, Sal, DataIni, TempAl) • Dados do projeto aparecem repetidos para cada empregado do projeto. ©Carlos A. Heuser 27
28.
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 ÑN: Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl) ) 1FN: Proj (CodProj, Tipo, Descr) ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 28
29.
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
30.
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
31.
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
32.
Passagem à 1FN
criar tabela referente a tabela externa ÑN: (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) 1FN: (CodProj, Tipo, Descr) ©Carlos A. Heuser 32
33.
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
34.
Passagem à 1FN
criar tabelas referentes a tabela aninhada ÑN: (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) 1FN: (CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 34
35.
Passagem à 1FN
- passo #3 3. Definir, na 1FN, as chaves primárias das tabelas que correspondem a tabelas aninhadas. ©Carlos A. Heuser 35
36.
Passagem à 1FN
– tabela externa definição de chave primária ÑN: (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) Tabela de nível mais externo: basta transcrever a chave 1FN: primária (CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 36
37.
Passagem à 1FN
– tabelas aninhadas definição de chave primária ÑN: (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) qual é a chave primária desta 1FN: tabela? (CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 37
38.
Passagem à 1FN
– tabelas aninhadas definição de chave primária ÑN: (CodProj, Tipo, Descr, pergunta a ser feita: (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) “um valor de CodEmp (chave da tabela origem) aparece 1FN: uma única ou várias vezes no documento?” (CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 38
39.
Documento exemplo para
normalização RELATÓRIO DE ALOCAÇÃO A PROJETO CÓDIGO DO PROJETO: LSC001 TIPO: Novo Desenv. DESCRIÇÃO: Sistema de Estoque um empregado pode CÓDIGO DO NOME CATEGORIA SALÁRIO DATA DE INÍCIO TEMPO EMPREGADO FUNCIONAL trabalhar em vários NO PROJETO ALOCADO AO PROJETO 2146 João A1 4 projetos 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 CÓDIGO DO PROJETO: PAG02 TIPO: Manutenção DESCRIÇÃO: Sistema de RH CÓDIGO DO NOME CATEGORIA SALÁRIO DATA DE INÍCIO TEMPO EMPREGADO FUNCIONAL NO PROJETO ALOCADO AO PROJETO 8191 Mário A1 4 1/05/93 12 4112 João A2 4 4/01/91 24 6126 ©Carlos A. Heuser José B1 9 1/11/92 12 39
40.
Documento exemplo para
normalização RELATÓRIO DE ALOCAÇÃO A PROJETO CÓDIGO DO PROJETO: LSC001 TIPO: Novo Desenv. um valor de CodEmp DESCRIÇÃO: Sistema de Estoque (chave daNOME CÓDIGO DO tabela origem) CATEGORIA SALÁRIO DATA DE INÍCIO TEMPO aparece várias vezes no EMPREGADO FUNCIONAL NO PROJETO ALOCADO AO PROJETO 2146 documento 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 CÓDIGO DO PROJETO: PAG02 TIPO: Manutenção DESCRIÇÃO: Sistema de RH CÓDIGO DO NOME CATEGORIA SALÁRIO DATA DE INÍCIO TEMPO EMPREGADO FUNCIONAL NO PROJETO ALOCADO AO PROJETO 8191 Mário A1 4 1/05/93 12 4112 João A2 4 4/01/91 24 6126 ©Carlos A. Heuser José B1 9 1/11/92 12 40
41.
Passagem à 1FN
– tabelas aninhadas definição de chave primária ÑN: (CodProj, Tipo, Descr, Um valor de CodEmp (CodEmp, Nome, Cat, Sal, várias vezes: aparece DataIni, TempAl)) É necessário CodProj 1FN: para distinguir as várias aparições (CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 41
42.
Passagem à 1FN
– tabelas aninhadas definição de chave primária ÑN: (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) Caso um empregado trabalhasse em único projeto (um valor de 1FN: CodEmp aparece uma vez ao máximo) (CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 42
43.
Passagem à 1FN
- exemplo Proj: CódProj Tipo Descr LSC001 Novo Desenv. Sistema de Estoque PAG02 Manutenção Sistema de RH ProjEmp: 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 ©Carlos A. Heuser 43
44.
Passagem à 1FN
outro exemplo ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand, Nome-Cand, Escore-Cand) ) ©Carlos A. Heuser 44
45.
Passagem à 1FN
decomposição em tabelas ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand, Nome-Cand, Escore-Cand) ) 1FN: Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) ©Carlos A. Heuser 45
46.
Passagem à 1FN
decomposição em tabelas ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand, Nome-Cand, Escore-Cand) ) 1FN: Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand) ©Carlos A. Heuser 46
47.
Passagem à 1FN
definição da chave primária Ñ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 1FN: Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand) ©Carlos A. Heuser 47
48.
Passagem à 1FN
definição da chave primária ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand, Nome-Cand, Escore-Cand) ) 1FN: Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand) ©Carlos A. Heuser 48
49.
Passagem à 1FN
definição da chave primária ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand, Nome-Cand, Escore-Cand) ) Um valor de Cod-Cand aparece uma única vez. 1FN: Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand) ©Carlos A. Heuser 49
50.
Passagem a 1FN
exemplo Pascal/COBOL Ñ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) ©Carlos A. Heuser 50
51.
Passagem a 1FN
exemplo Pascal/COBOL Ñ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) ©Carlos A. Heuser 51
52.
Passagem às 2FN
e 3FN esquema Passagem na 3FN a 3FN Passagem a 4FN esquema na 2FN esquema relacional Passagem normalizado a 2FN esquema de arquivo ou esquema documento na 1FN Representação Passagem como tabela a 1FN ÑN esquema não normalizado ©Carlos A. Heuser 52
53.
Dependência funcional • Para
entender 2FN e 3FN: – é necessário compreender o conceito de dependência funcional. Em uma tabela relacional, diz-se que uma coluna C2 depende funcionalmente de uma coluna C1 (ou que a coluna C1 determina a coluna C2) quando, em todas linhas da tabela, para cada valor de C1 que aparece na tabela, aparece o mesmo valor de C2. ©Carlos A. Heuser 53
54.
Exemplo de dependência
funcional … Código … Salário … ... E1 ... 10 ... ... E3 ... 10 ... ... E1 ... 10 ... ... E2 ... 5 ... ... E3 ... 10 ... ... E2 ... 5 ... ... E1 ... 10 ... Código Salário ©Carlos A. Heuser 54
55.
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
56.
Dependências funcionais -
exemplos A B C D B 5 2 20 C 4 2 15 B 6 7 20 B 5 2 20 Dependência funcional C 2 2 15 inexistente na tabela: C 4 2 15 A 10 5 18 A B 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 56
57.
Dependências funcionais -
exemplos A B C D B 5 2 20 C 4 2 15 B 6 7 20 B 5 2 20 Dependência funcional C 2 2 15 C 4 2 15 existente na tabela A 10 5 18 A 12 3 18 A D A 10 5 18 B 5 2 20 C 4 2 15 A 10 5 18 C 4 2 15 ©Carlos A. Heuser 57
58.
Dependências funcionais -
exemplos A B C D B 5 2 20 C 4 2 15 B 6 7 20 Uma coluna pode B 5 2 20 depender funcionalmente C 2 2 15 de uma combinação de C 4 2 15 mais de uma coluna A 10 5 18 (A,B) C 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 58
59.
Passagem às 2FN
e 3FN esquema Passagem na 3FN a 3FN Passagem a 4FN esquema na 2FN esquema relacional Passagem normalizado a 2FN esquema de arquivo ou esquema documento na 1FN Representação Passagem como tabela a 1FN ÑN esquema não normalizado ©Carlos A. Heuser 59
60.
Segunda forma normal
- 2FN • Objetiva eliminar um certo tipo de redundância de dados. • Exemplo (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) • 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
61.
Dados redundantes na
1FN ProjEmp: 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 ©Carlos A. Heuser 61
62.
Segunda forma normal
- 2FN 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 ©Carlos A. Heuser 62
63.
Dependência funcional parcial
dependência parcial = uma dependência (funcional) parcial ocorre quando uma coluna depende apenas de parte de uma chave primária composta ©Carlos A. Heuser 63
64.
Dependências parciais 1FN: ProjEmp (CodProj,CodEmp,
Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 64
65.
Dependências não parciais 1FN: ProjEmp
(CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 65
66.
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
67.
Passagem à 2FN
Tabela com uma única coluna na chave 1FN: (CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) 2FN: (CodProj, Tipo, Descr) ©Carlos A. Heuser 67
68.
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
69.
Passagem à 2FN 1FN: ProjEmp
(CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl) ©Carlos A. Heuser 69
70.
Passagem à 2FN 1FN: ProjEmp
(CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl) Tabela que possui chave primária com várias colunas e possui colunas não chave deve ser examinada ©Carlos A. Heuser 70
71.
Passagem à 2FN 1FN: ProjEmp
(CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl) Pergunta a ser feita, para cada coluna não chave: • “a coluna depende de toda a chave ou só de parte” ou • “para identificar um valor da coluna necessita de toda chave ou só de parte dela” ? ©Carlos A. Heuser 71
72.
Passagem à 2FN 1FN: ProjEmp
(CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl) Colunas que dependem de toda a chave permanecem na tabela original 2FN: ProjEmp (CodProj,CodEmp, DataIni, TempAl) ©Carlos A. Heuser 72
73.
Passagem à 2FN 1FN: ProjEmp
(CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl) Colunas que dependem de 2FN: parte da chave vão para uma nova tabela ProjEmp (CodProj,CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat, Sal) ©Carlos A. Heuser 73
74.
2FN resultante
2FN: Proj (CodProj, Tipo, Descr) ProjEmp (CodProj,CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat, Sal) ©Carlos A. Heuser 74
75.
Tabelas na 2FN
- exemplo Proj: CódProj Tipo Descr LSC001 Novo Desenv. Sistema de Estoque PAG02 Manutenção Sistema de RH ©Carlos A. Heuser 75
76.
Tabelas na 2FN
- exemplo Emp: CodEmp Nome Cat Sal ProjEmp: 2146 João A1 4 CódProj CodEmp DataIni TempAl 3145 Sílvio A2 4 LSC001 2146 1/11/91 24 1214 Carlos A2 4 LSC001 3145 2/10/91 24 8191 Mário A1 4 LSC001 6126 3/10/92 18 4112 João A2 4 LSC001 1214 4/10/92 18 6126 José B1 9 LSC001 8191 1/11/92 12 PAG02 8191 1/05/93 12 PAG02 4112 4/01/91 24 PAG02 6126 1/11/92 12 ©Carlos A. Heuser 76
77.
Passagem à 3FN
esquema Passagem na 3FN a 3FN Passagem a 4FN esquema na 2FN esquema relacional Passagem normalizado a 2FN esquema de arquivo ou esquema documento na 1FN Representação Passagem como tabela a 1FN ÑN esquema não normalizado ©Carlos A. Heuser 77
78.
Terceira forma normal
(3FN) • Trata de um outro tipo de redundância. • Exemplo: 2FN: Emp (CodEmp, Nome, Cat, Sal) • 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
79.
Terceira forma normal
(3FN) Emp: 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 79
80.
Dependências funcionais
Emp (CodEmp, Nome, Cat, Sal) ©Carlos A. Heuser 80
81.
Dependências funcionais
Emp (CodEmp, Nome, Cat, Sal) ©Carlos A. Heuser 81
82.
Dependência transitiva
Emp (CodEmp, Nome, Cat, Sal) dependência funcional transitiva ©Carlos A. Heuser 82
83.
Terceira forma normal
3FN 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
84.
Passagem à 3FN
Emp (CodEmp, Nome, Cat, Sal) dependência funcional deve ser eliminada ©Carlos A. Heuser 84
85.
Passagem à 3FN
2FN: Emp (CodEmp, Nome, Cat, Sal) Colunas que dependem da chave permanecem na tabela original 3FN: Emp (CodEmp, Nome, Cat) ©Carlos A. Heuser 85
86.
Passagem à 3FN
Emp (CodEmp, Nome, Cat, Sal) Colunas que dependem de coluna não chave vão para outra tabela 3FN: Cat(Cat, Sal) ©Carlos A. Heuser 86
87.
3FN do exemplo
3FN: Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal) ©Carlos A. Heuser 87
88.
Normalização do exemplo
Ñ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) 3FN: Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal) ©Carlos A. Heuser 88
89.
Tabelas na 3FN
- exemplo Proj: CódProj Tipo Descr LSC001 Novo Desenv. Sistema de Estoque PAG02 Manutenção Sistema de RH ProjEmp: 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 ©Carlos A. Heuser PAG02 6126 1/11/92 12 89
90.
Tabelas na 3FN
- exemplo Emp: CodEmp Nome Cat 2146 João A1 3145 Sílvio A2 1214 Carlos A2 Cat: 8191 Mário A1 4112 João A2 Cat Sal 6126 José B1 A1 4 A2 4 B1 9 ©Carlos A. Heuser 90
91.
Passagem à 4FN
esquema Passagem na 3FN a 3FN Passagem a 4FN esquema na 2FN esquema relacional Passagem normalizado a 2FN esquema de arquivo ou esquema documento na 1FN Representação Passagem como tabela a 1FN ÑN esquema não normalizado ©Carlos A. Heuser 91
92.
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
93.
Exemplo para 4FN
Modelo original PROJETO EQUIPAMENTO nome nome código código UTILIZAÇÃO código nome EMPREGADO ©Carlos A. Heuser 93
94.
Exemplo para 4FN
Requisitos alterados PROJETO EQUIPAMENTO nome Proj-Eq nome código código Proj-Emp código nome EMPREGADO ©Carlos A. Heuser 94
95.
Exemplo – Implementação
do relacionamento PROJETO EQUIPAMENTO nome nome código código UTILIZAÇÃO código nome Utilizacao(CodProj,CodEmp,CodEquip) EMPREGADO ©Carlos A. Heuser 95
96.
Tabela Utilização
com requisitos alterados CodProj CodEmp CodEquip 1 1 1 1 2 1 1 3 1 1 1 2 1 2 2 1 3 2 2 2 2 2 2 4 3 3 1 3 4 1 3 3 3 3 4 3 3 3 5 3 4 5 4 2 5 ©Carlos A. Heuser 96
97.
Tabela Utilização
com requisitos alterados CodProj CodEmp CodEquip 1 1 1 1 2 1 quais são os 1 3 1 empregados que 1 1 2 trabalham no projeto 1? 1 2 2 1 3 2 2 2 2 2 2 4 3 3 1 3 4 1 3 3 3 3 4 3 3 3 5 3 4 5 4 2 5 ©Carlos A. Heuser 97
98.
Tabela Utilização
com requisitos alterados CodProj CodEmp CodEquip 1 1 1 1 2 1 1 3 1 1 1 2 1 2 2quais são os 1 3 2 empregados que 2 2 2trabalham no 2 2 4 projeto 1? 3 3 1 3 4 1 3 3 3 3 4 3 3 3 5 3 4 5 4 2 5 ©Carlos A. Heuser 98
99.
Tabela Utilização
com requisitos alterados CodProj CodEmp CodEquip 1 1 1 1 2 1 1 3 1 1 1 2 quais são os 1 2 2 equipamentos 1 3 2 usados no projeto 1? 2 2 2 2 2 4 3 3 1 3 4 1 3 3 3 3 4 3 3 3 5 3 4 5 4 2 5 ©Carlos A. Heuser 99
100.
Dependência funcional multivalorada
CodProj CodEmp CodEquip 1 1 1 1 2 1 1 3 1 1 1 2 1 2 2 1 3 2 2 2 2 2 2 4 3 3 1 3 4 1 3 3 3 3 4 3 3 3 5 3 4 5 4 2 5 ©Carlos A. Heuser 100
101.
Dependência multivalorada
CodProj CodEmp CodEquip 1 1 1 1 2 1 1 3 1 1 1 2 1 2 2 1 3 2 2 2 2 2 2 4 CodProj CodEmp 3 3 1 3 4 1 3 3 3 3 4 3 3 3 5 3 4 5 4 2 5 ©Carlos A. Heuser 101
102.
Dependência multivalorada
CodProj CodEmp CodEquip 1 1 1 1 2 1 1 3 1 1 1 2 1 2 2 1 3 2 2 2 2 2 2 4 CodProj CodEmp 3 3 1 CodProj CodEquip 3 4 1 3 3 3 3 4 3 3 3 5 3 4 5 4 2 5 ©Carlos A. Heuser 102
103.
4FN
definiçã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
104.
4FN
3FN: Utilizacao(CodProj,CodEmp,CodEquip) 4FN: ProjEmp (CodProj,CodEmp) ProjEquip (CodProj,CodEquip) ©Carlos A. Heuser 104
105.
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
106.
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
107.
Chaves primárias omitidas
ou incorretas exemplo • 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
108.
Chaves primárias
omitidas 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
109.
Atributos relevantes
implicitamente representados • Arquivos convencionais podem conter atributos de forma implícita: – ordenação de registros ou de listas; – ponteiros físicos, etc. • Deve-se proceder como se o atributo aparecesse explicitamente no documento. ©Carlos A. Heuser 109
110.
Atributo implícito
Ordenaçã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
111.
Atributo implícito -
Ordenação ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand, Nome-Cand)) 4FN: Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) Candidatos (Cod-Curso,Cod-Cand,Nome-Cand) ©Carlos A. Heuser 111
112.
Atributo implícito
Ordenaçã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). ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand,Nome-Cand,Ordem-Cand) ) ©Carlos A. Heuser 112
113.
Atributo implícito -
Ordenação ÑN: Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso, (Cod-Cand,Nome-Cand,Ordem-Cand) ) 4FN: Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) Candidatos (Cod-Curso,Cod-Cand,Nome-Cand,Ordem-Cand) ©Carlos A. Heuser 113
114.
Atributos
irrelevantes, redundantes ou derivados • Atributos irrelevantes, redundantes ou derivados: – Devem ser eliminados já quando da passagem a forma não normalizada. ©Carlos A. Heuser 114
115.
Integração de modelos
modelo relacional integrado integração modelo relacional 1 modelo relacional 2 ... modelo relacional n normalização normalização ... normalização esquema de esquema de esquema de arquivo/documento 1 arquivo/documento 2 arquivo/documento n ©Carlos A. Heuser 115
116.
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
117.
Integração de modelos
objetivos • 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
118.
Integração de modelos
passos 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
119.
Integração de tabelas
com 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
120.
Integração de tabelas
com mesma chave - exemplo 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) ©Carlos A. Heuser 120
121.
Integração de tabelas
com mesma chave - exemplo 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) ©Carlos A. Heuser 121
122.
Integração de tabelas
com mesma chave - exemplo 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) ©Carlos A. Heuser 122
123.
Integração de tabelas
com mesma chave - exemplo 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) ©Carlos A. Heuser 123
124.
Integração de modelos
problemas • 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
125.
Integração de tabelas
com 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
126.
Integração de tabelas
com chaves contidas Exemplo • Exemplo: Modelo #1: AlunoDisc (Cod-Al,Cod-Disc) Modelo #2: AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada, Nota-Disc) ©Carlos A. Heuser 126
127.
Integração de tabelas
com chaves contidas • Exemplo: Modelo #1: AlunoDisc (Cod-Al,Cod-Disc) Modelo #2: AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada, Nota-Disc) • Primeira tabela: – informa que um aluno cursou uma disciplina. ©Carlos A. Heuser 127
128.
Integração de tabelas
com chaves contidas • Exemplo: Modelo #1: AlunoDisc (Cod-Al,Cod-Disc) Modelo #2: AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada, Nota-Disc) • 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
129.
Integração de tabelas
com chaves contidas Modelo #1: AlunoDisc (Cod-Al,Cod-Disc) Modelo #2: AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada, Nota-Disc) • 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
130.
Integração de tabelas
com chaves contidas • Não integrar quando tabela contém dados além da chave primária. Modelo #1: AlunoDisc (Cod-Al,Cod-Disc,BolsaSimNao) Modelo #2: AlunoDiscSem (Cod-Al,Cod-Disc, Sem-Disc-Cursada, Nota-Disc) ©Carlos A. Heuser 130
131.
Integração de tabelas
com chaves contidas • Garantir que primeira tabela efetivamente contida na segunda. • Exemplo: Modelo #1: AlunoDisc (Cod-Al, SemDisc) Modelo #2: AlunoDiscSem (Cod-Al,Cod-Disc,SemDisc,Nota-Disc) ©Carlos A. Heuser 131
132.
Integração de tabelas
com chaves contidas • Garantir que primeira tabela efetivamente contida na segunda. • Exemplo: Modelo #1: AlunoDisc (Cod-Al, SemDisc) representa o fato de um Modelo #2: aluno estar matriculado em um semestre AlunoDiscSem (Cod-Al,Cod-Disc,SemDisc,Nota-Disc) ©Carlos A. Heuser 132
133.
Integração de tabelas
com chaves contidas • Garantir que primeira tabela efetivamente contida na segunda. • Exemplo: Modelo #1: AlunoDisc (Cod-Al, SemDisc) Modelo #2: AlunoDiscSem (Cod-Al,Cod-Disc,SemDisc,Nota-Disc) representa a nota que o aluno obteve em uma disciplina em um semestre ©Carlos A. Heuser 133
134.
Volta à 2FN •
A integração de dois modelos 4FN pode conduzir a um modelo que está na 2FN mas não na 3FN. • Exemplo: Modelo #1: Departamento (CodDepto, NomeDepto, CodGerenteDepto) Modelo # 2: Departamento (CodDepto,LocalDepto,NomeGerenteDepto) ©Carlos A. Heuser 134
135.
Volta à 2FN •
Integração destes dois modelos resultaria no modelo integrado abaixo mostrado. • Modelo integrado: Modelo #1: Departamento (CodDepto, NomeDepto, CodGerenteDepto, LocalDepto,NomeGerenteDepto) ©Carlos A. Heuser 135
136.
Volta à 2FN •
Integração destes dois modelos resultaria no modelo integrado abaixo mostrado. • Modelo integrado: Modelo #1: Departamento (CodDepto, NomeDepto, CodGerenteDepto, LocalDepto,NomeGerenteDepto) • Não está na 3FN ©Carlos A. Heuser 136
137.
Verificação do modelo
ER Limitaçõ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
138.
Verificação do modelo
ER Limitaçõ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
139.
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
Baixar agora