85
Engenharia Reversa e Normalização Banco de Dados I Prof. Edson Thizon SISTEMAS DE INFORMAÇÃO

Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

  • Upload
    lyxuyen

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Engenharia Reversa e

Normalização

Banco de Dados I

Prof. Edson Thizon

SISTEMAS DE INFORMAÇÃO

Page 2: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Engenharia reversa de modelos relacionais

�Engenharia reversa– parte do modelo de implementação– obtém modelo de especificação

(modelo conceitual)

Page 3: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Engenharia Reversa

Modelo ER(conceitual)

Ciclo de Re-engenharia

De BD

Modelo Relacional(lógico)

Engenharia Reversa deBD Relacional

Projeto lógico deBD relacional

Page 4: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Engenharia reversa de modelo relacional

� Passos:– Identificação da construção ER

correspondente a cada tabela– Definição de relacionamentos 1:M e 1:1– Definição de atributos– Definição de identificadores de entidades e

relacionamentos

Page 5: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Esquema relacionalpara engenharia reversa

Disciplina (CodDisc, NomeDisc)Curso(CodCur, NomeCur)Curriculo(Codcur,CodDisc)

CodCur referencia CursoCodDisc referencia Disciplina

Sala (CodPred, CodSal, Capacidade)CodPred referencia Predio

Predio(CodPred, endereco)Turma(AnoSeme, CodDisc, SiglaTur, Capacidade, CodPred, CodSal)

CodDisc referencia Disciplina(CodPred,CodSal) referencia Sala

Laboratorio(CodPred, CodSal, Equipamento)(CodPred,CodSal) referencia Sala

Page 6: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Identificação da construção ER correspondente a cada tabela

� Uma tabela pode corresponder a:– uma entidade

– um relacionamento M:M– uma entidade especializada

� Fator determinante:– composição da sua chave primária

Page 7: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tipos de tabelas paraidentificação de construção ER

EntidadeDemais casos

EspecializaçãoToda chave primária éuma chave estrangeira

Relacionamento M:MMúltiplas chaves estrangeiras

ConstruConstru çção ER ão ER correspondentecorrespondente

ComposiComposi çção da ão da chave primchave prim ááriaria

Page 8: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Construções identificadasDisciplina (CodDisc, NomeDisc) entidadeCurso(CodCur, NomeCur) entidadeCurriculo(Codcur,CodDisc) relacionamento M:M

CodCur referencia CursoCodDisc referencia Disciplina

Sala (CodPred, CodSal, Capacidade) entidadeCodPred referencia Predio

Predio(CodPred, endereco) entidadeTurma(AnoSeme, CodDisc, SiglaTur, Capacidade, CodPred, CodSal) entidade

CodDisc referencia Disciplina(CodPred,CodSal) referencia Sala

Laboratorio(CodPred, CodSal, Equipamento) especialização(CodPred,CodSal) referencia Sala

Page 9: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Construções identificadas

Page 10: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Identificação de relacionamentos 1:M ou 1:1

� Chave estrangeira que não se enquadra nas regras acima– representa

• relacionamento 1:M• Relacionamento 1:1

� Esquema não informa se é 1:1 ou 1:M

Page 11: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Identificação de relacionamentos 1:M ou 1:1

Disciplina (CodDisc, NomeDisc)Curso(CodCur, NomeCur)Curriculo(Codcur,CodDisc)

CodCur referencia CursoCodDisc referencia Disciplina

Sala (CodPred, CodSal, Capacidade)CodPred referencia Predio

Predio(CodPred, endereco)Turma(AnoSeme, CodDisc, SiglaTur, Capacidade, CodPred, CodSal)

CodDisc referencia Disciplina(CodPred,CodSal) referencia Sala

Laboratorio(CodPred, CodSal, Equipamento)(CodPred,CodSal) referencia Sala

Chaves estrangeiras estão indicadas em vermelho

Page 12: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Identificação de relacionamentos 1:M ou 1:1

Page 13: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Definição de atributos

� Cada coluna não chave estrangeira é– um atributo na entidade/relacionamento

correspondente à tabela

� As colunas chave estrangeira não correspondem a atributos– correspondem a relacionamentos

– já foram tratadas nas etapas anteriores

Page 14: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Definição de atributos

Page 15: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Definição de identificadores de entidades

� Coluna da chave primária que não é chave estrangeira– corresponde a um atributo identificador da

entidade ou relacionamento

� Coluna da chave primária que é chave estrangeira– corresponde a um relacionamento

identificador da entidade

Page 16: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Definição de identificadores de entidades

Page 17: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Exercícios

� Exercício 5.4 (livro referência)� Exercício 5.5 (livro referência)

Page 18: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Engenharia reversa de arquivos e documentos

Page 19: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Engenharia reversa de arquivos e documentos

Modelo ER(conceitual)

Esquema de arquivoConvencional ou

documento

Modelo Relacional(lógico)

Engenharia Reversa deBD Relacional

Engenharia Reversa deArquivos

convencionais

Page 20: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Engenharia reversa de arquivos e normalização

� Entrada:– 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

Page 21: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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 outro BD

Page 22: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Normalização - Objetivo

� Reagrupar informações para– eliminar redundância de dados

– eliminar estrutura inexistentes no modelo ER (ex.: atributos multivalorados)

Page 23: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Normalização - passos

1. Esquema de arquivo ou documento2. Representação como tabela ÑN3. Passagem à 1FN4. Passagem à 2FN5. Passagem à 3FN6. Passagem à 4FN7. Esquema relacional normalizado

Page 24: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Doc

umen

to -

Exe

mpl

o

Page 25: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Representação na forma de tabela não normalizada

� 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

� Abreviatura: ÑN

Page 26: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tabela aninhada - exemplo

Page 27: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tabela ÑN Esquema

Proj(CodProj, Tipo, Descricao,(CodEmp, Nome, Cat, Sal, Dataini, TempoAl))

Page 28: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Representação em esquema não normalizada

� Nenhuma transformação foi feita no modelo do documento

� Apenas foi usada outra notação� Notação independe do tipo de

documento/arquivo usado como entrada do processo de normalização

Page 29: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Forma normal

� Regra que uma tabela deve obedecer para ser consideradas “bem projetada”

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

� Principais– primeira forma normal (1FN)– segunda forma normal (2FN)

– terceira forma normal (3FN)– quarta forma normal (4FN)

Page 30: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 31: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 1FN alternativas

� construir uma única tabela com redundância de dados

� construir uma tabela para cada tabela aninhada

Page 32: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 1FN alternativas

� Uma tabela na qual os dados das linhas externas à tabela aninhada são repetidos para cada linha da tabela aninhada

� Exemplo– ProjEmp(Codproj, Tipo, Descrição, CodEmp,

Nome, Cat, Sal, Dataini, TempAl)

� Dados do projeto aparecem repetidos para cada empregado do projeto

Page 33: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 1FN uma tabela para cada tabela aninhada

� Cria-se uma tabela referente a própria tabela que está sendo normalizado e uma tabela para cada tabela aninhada

� Exemplo– Proj(CodProj,Tipo, Descr)

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

Page 34: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 1FN alternativas

� Primeira alternativa (tabela única) é mais correta

� Decompor uma tabela em várias tabelas (segunda alternativa)– podem ser perdidas relações entre

informações

Page 35: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 36: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 1FN passo (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

Page 37: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 1FN criar tabela referente a tabela ÑN

ÑN(CodProj, Tipo, Descr

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

1FN(CodProj, Tipo, Descr)

Page 38: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

� Para cada tabela aninhada– criar uma tabela na 1FN composta pelas

seguintes colunas:• a chave primária de cada uma das tabelas na qual a

tabela em questão está aninhada• as colunas da própria tabela aninhada

Passagem à 1FN passo (2)

Page 39: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

� Definir as chaves primárias das tabelas na 1FN que correspondem a tabelas aninhadas

Passagem à 1FN passo (3)

Page 40: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem a 1FN - exemplo

1FN(CodProj, Tipo, Descr)(CodProj, CodEmp, Nome, Cat, Sal, Dataini,

TempAl)

Qual é a chave primária desta tabela?Pergunta a fazer“um valor de CodEmp (chave na tabela origem)Aparece uma vez só no documento ou várias?”Como um valor de CodEmp aparece várias vezes, éNecessário CodProj para distinguir as várias aparições

Page 41: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem a 1FN - exemplo

Page 42: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem a 1FN - exemplo

ÑNArq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,

(CodCand,NomeCand,EscoreCand))

Page 43: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 1FN decomposição em tabelas

ÑNArq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,

(CodCand,NomeCand,EscoreCand))

1FNcursos(CodCurso,NomeCurso,NumeroVagasCurso)candidatos(CoCurso,CodCand, NomeCand, EscoreCand)

Qual é a chave primária desta tabela?Pergunta a fazer:“um valor de CodCand(chave da tabela origem) apareceuma só vez no documento ou várias?”

Page 44: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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 C1, que aparece na tabela aparece o mesmo valor de C2

Page 45: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Dependência funcional - exemplo

Page 46: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

� Dependência funcional inexistente na tabela: A=>B

� Dependência funcional existente na tabela: A=>D

Dependência funcional - exemplo

Page 47: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Segunda forma normal 2FN

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

� Exemplos(CodProj, CodEmp, Nome, Cat, Sal, Dataini, TempAl)

� Dados referentes a empregados (Nome, Cat e Sal)– redundantes, para os empregados que trabalham em

mais de um projeto

Page 48: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Segunda forma normal 2FN

Page 49: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 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

Page 50: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Dependência parcial

dependência parcial=

uma dependência (funcional) parcial ocorre quando uma coluna depende apenas da parte de uma chave primária composta

Page 51: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Dependências parciais

1FN

Page 52: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 53: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 2FN

� Também– 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

Page 54: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 2FN1FN

2FN

Page 55: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tabelas na 2FN

Page 56: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tabelas na 2FN

Page 57: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Terceira forma normal (3FN)

� Trata de um outro tipo de redundância� Exemplo

– Emp(CodEmp, Nome, Cat, Sal)

� Considerar– 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

Page 58: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Terceira forma normal (3FN)

Page 59: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Dependência transitiva

Page 60: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 61: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Normalização 3FN

Page 62: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tabelas na 3FN

Page 63: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tabelas na 3FN

Page 64: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Passagem à 4FN

� Maioria dos documentos e arquivos– a decomposição até a 3FN é suficiente

� Na literatura aparecem outras formas normais– Forma normal de Boyce/Codd

– 4FN– 5FN

Page 65: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Dependência multivaloradas

Page 66: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Quarta forma normal 4FN

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

Page 67: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Tabelas na 4FN

Page 68: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Problemas da normalização

� Chaves primárias omitidas ou incorretas� Atributos relevantes implicitamente

representados� Atributos irrelevantes, redundantes ou

derivados

Page 69: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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 transferi-la na forma ÑN

Page 70: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 71: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 72: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 73: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 74: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

ÑNArq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,

(CodCand,NomeCand))

4FNcursos(CodCurso,NomeCurso,NumeroVagasCurso)candidatos(CoCurso,CodCand, NomeCand)

Atributo implícito Ordenação

Page 75: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

� 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)

ÑNArq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,

(CodCand,NomeCand, OrdemCand))

Atributo implícito Ordenação

Page 76: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Atributos irrelevantes, redundantes ou derivados

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

Page 77: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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 bando de dados

� Processo é conhecido por– integração de visões

– integração de esquemas

Page 78: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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 de um modelo livres de redundâncias

� Tabelas de diferentes modelos podem ter redundâncias entre si– Integração elimina estas redundâncias

Page 79: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 80: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Integração de tabelas com mesma chave

� Junção de tabelas que possuem a mesma chave primária

� “mesma” chave primária = – domínio e conteúdos das colunas que

compõem a chave primária são iguais

Page 81: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Construção do modelo ER e eliminação de redundâncias

� Integração dos modelo obtidos a partir dos diversos arquivos e documentos normalizados, segue a construção do modelo ER. Nesta construção anterior para transformação de modelos relacionais em modelos ER.

Page 82: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Verificação do modelo ER limitações da normalização

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

� Normalização apenas elimina– campos multivalorados e

– redundância de dados detectadas pelas formas normais descritas

Page 83: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Verificação do modelo ER limitações de 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)

Page 84: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

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

Page 85: Engenharia Reversa e Normalizaçãopaginas.unisul.br/edson.thizon/PDF/aula5_engenhariareversa... · Esquema relacional para engenharia reversa Disciplina (CodDisc , NomeDisc) Curso(CodCur

Referência Bibliográfica

� HEUSER, Carlos Alberto. Projeto de Banco de Dados . 4ª Edição. Ed. Sagra, 2001. (Capítulo 6)