You are on page 1of 85

SISTEMAS DE INFORMAO

Engenharia Reversa
e
Normalizao
Banco de Dados I
Prof. Edson Thizon

Engenharia reversa de
modelos relacionais
 Engenharia

reversa

parte do modelo de implementao


obtm modelo de especificao
(modelo conceitual)

Engenharia Reversa
Modelo ER
(conceitual)
Engenharia
Reversa de
BD Relacional

Ciclo de
Re-engenharia
De BD

Modelo Relacional
(lgico)

Projeto lgico de
BD relacional

Engenharia reversa de
modelo relacional


Passos:
Identificao da construo ER
correspondente a cada tabela
Definio de relacionamentos 1:M e 1:1
Definio de atributos
Definio de identificadores de entidades e
relacionamentos

Esquema relacional
para engenharia reversa
Disciplina (CodDisc, NomeDisc)
Curso(CodCur, NomeCur)
Curriculo(Codcur,CodDisc)
CodCur referencia Curso
CodDisc 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

Identificao da construo ER
correspondente a cada tabela


Uma tabela pode corresponder a:


uma entidade
um relacionamento M:M
uma entidade especializada

Fator determinante:
composio da sua chave primria

Tipos de tabelas para


identificao de construo ER
Composio da
chave primria
Mltiplas chaves
estrangeiras

Construo ER
correspondente
Relacionamento M:M

Toda chave primria Especializao


uma chave
estrangeira
Demais casos
Entidade

Construes identificadas
Disciplina (CodDisc, NomeDisc) entidade
Curso(CodCur, NomeCur) entidade
Curriculo(Codcur,CodDisc) relacionamento M:M
CodCur referencia Curso
CodDisc referencia Disciplina
Sala (CodPred, CodSal, Capacidade) entidade
CodPred referencia Predio
Predio(CodPred, endereco) entidade
Turma(AnoSeme, CodDisc, SiglaTur, Capacidade, CodPred, CodSal) entidade
CodDisc referencia Disciplina
(CodPred,CodSal) referencia Sala
Laboratorio(CodPred, CodSal, Equipamento) especializao
(CodPred,CodSal) referencia Sala

Construes identificadas

Identificao de
relacionamentos 1:M ou 1:1


Chave estrangeira que no se enquadra


nas regras acima
representa
relacionamento 1:M
Relacionamento 1:1

Esquema no informa se 1:1 ou 1:M

Identificao de
relacionamentos 1:M ou 1:1
Disciplina (CodDisc, NomeDisc)
Chaves
Curso(CodCur, NomeCur)
estrangeiras
Curriculo(Codcur,CodDisc)
esto indicadas
CodCur referencia Curso
em vermelho
CodDisc 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

Identificao de
relacionamentos 1:M ou 1:1

Definio de atributos


Cada coluna no chave estrangeira


um atributo na entidade/relacionamento
correspondente tabela

As colunas chave estrangeira no


correspondem a atributos
correspondem a relacionamentos
j foram tratadas nas etapas anteriores

Definio de atributos

Definio de identificadores
de entidades


Coluna da chave primria que no chave


estrangeira
corresponde a um atributo identificador da
entidade ou relacionamento

Coluna da chave primria que chave


estrangeira
corresponde a um relacionamento
identificador da entidade

Definio de identificadores
de entidades

Exerccios



Exerccio 5.4 (livro referncia)


Exerccio 5.5 (livro referncia)

Engenharia reversa de
arquivos e documentos

Engenharia reversa de
arquivos e documentos
Modelo ER
(conceitual)

Engenharia
Reversa de
BD Relacional
Modelo Relacional
(lgico)

Esquema de arquivo
Convencional ou
documento

Engenharia
Reversa de
Arquivos
convencionais

Engenharia reversa de
arquivos e normalizao


Entrada:
qualquer conjunto de dados para os quais se
disponha de uma descrio

documentos
arquivos manuais
arquivos convencionais em computador
bancos de dados gerenciados por SGBD no
relacional

Engenharia reversa de arquivos e


normalizao - motivao




Sistemas legados
Raramente documentados
Necessidade de modelo ER
Manuteno
Migrao para outro tipo de BD
Integrao com outro BD

Normalizao - Objetivo


Reagrupar informaes para


eliminar redundncia de dados
eliminar estrutura inexistentes no modelo ER
(ex.: atributos multivalorados)

Normalizao - passos
1.
2.
3.
4.
5.
6.
7.

Esquema de arquivo ou documento


Representao como tabela N
Passagem 1FN
Passagem 2FN
Passagem 3FN
Passagem 4FN
Esquema relacional normalizado

Documento - Exemplo

Representao na forma de
tabela no normalizada



Tabela no normalizada ou
Tabela no-primeira-forma-normal
possui uma ou mais tabelas aninhadas
Tabela aninhada(ou grupo repetido ou coluna
multi-valorada ou coluna no atmica)
coluna que ao invs de conter valores atmicos,
contm tabelas aninhadas

Abreviatura: N

Tabela aninhada - exemplo

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

Representao em esquema
no normalizada





Nenhuma transformao foi feita no


modelo do documento
Apenas foi usada outra notao
Notao independe do tipo de
documento/arquivo usado como entrada do
processo de normalizao

Forma normal


Regra que uma tabela deve obedecer para


ser consideradas bem projetada
H diversas formas normais, cada vez mais
rgidas, para verificar tabelas relacionais
Principais
primeira forma normal (1FN)
segunda forma normal (2FN)
terceira forma normal (3FN)
quarta forma normal (4FN)

Primeira forma normal (1FN)


primeira forma normal (1FN)
=
diz-se que uma tabela est na primeira forma
normal, quando ela no contm tabelas
aninhadas

Passagem 1FN alternativas




construir uma nica tabela com


redundncia de dados
construir uma tabela para cada tabela
aninhada

Passagem 1FN alternativas




Uma tabela na qual os dados das linhas


externas tabela aninhada so repetidos
para cada linha da tabela aninhada
Exemplo
ProjEmp(Codproj, Tipo, Descrio, CodEmp,
Nome, Cat, Sal, Dataini, TempAl)

Dados do projeto aparecem repetidos para


cada empregado do projeto

Passagem 1FN uma tabela


para cada tabela aninhada


Cria-se uma tabela referente a prpria


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)

Passagem 1FN alternativas




Primeira alternativa (tabela nica) mais


correta
Decompor uma tabela em vrias tabelas
(segunda alternativa)
podem ser perdidas relaes entre
informaes

Passagem 1FN alternativas




Para fins prticos


preferimos a segunda alternativa
(decomposio de tabelas)

Quando houver diversas tabelas


aninhadas, eventualmente com diversos
nveis de aninhamento, fica difcil visualizar
a tabela na 1FN na alternativa de tabela
nica

Passagem 1FN passo (1)




Criar uma tabela na 1FN referente a


tabela no normalizada
A chave primria da tabela na 1FN
idntica a chave da tabela N

Passagem 1FN criar tabela


referente a tabela N
N
(CodProj, Tipo, Descr
(CodEmp, Nome, Cat, Sal, DataIni, TempoAl))
1FN
(CodProj, Tipo, Descr)

Passagem 1FN passo (2)




Para cada tabela aninhada


criar uma tabela na 1FN composta pelas
seguintes colunas:
a chave primria de cada uma das tabelas na qual a
tabela em questo est aninhada
as colunas da prpria tabela aninhada

Passagem 1FN passo (3)




Definir as chaves primrias das tabelas na


1FN que correspondem a tabelas
aninhadas

Passagem a 1FN - exemplo


1FN
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat, Sal, Dataini,
TempAl)
Qual a chave primria desta tabela?
Pergunta a fazer
um valor de CodEmp (chave na tabela origem)
Aparece uma vez s no documento ou vrias?
Como um valor de CodEmp aparece vrias vezes,
Necessrio CodProj para distinguir as vrias aparies

Passagem a 1FN - exemplo

Passagem a 1FN - exemplo


N
Arq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,
(CodCand,NomeCand,EscoreCand))

Passagem 1FN
decomposio em tabelas
N
Arq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,
(CodCand,NomeCand,EscoreCand))

1FN
cursos(CodCurso,NomeCurso,NumeroVagasCurso)
candidatos(CoCurso,CodCand, NomeCand, EscoreCand)
Qual a chave primria desta tabela?
Pergunta a fazer:
um valor de CodCand(chave da tabela origem) aparece
uma s vez no documento ou vrias?

Dependncia funcional


Para entender 2FN e 3FN


necessrio compreender o conceito de
dependncia 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

Dependncia funcional - exemplo

Dependncia funcional - exemplo




Dependncia funcional
inexistente na tabela:
A=>B
Dependncia funcional
existente na tabela:
A=>D

Segunda forma normal 2FN




Objetiva eliminar um certo tipo de redundncia 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

Segunda forma normal 2FN

Passagem segunda forma


normal 2FN
segunda forma normal (2FN)
=
uma tabela encontra-se na segunda forma
normal, quando, alm de estar na 1FN,
no contm dependncias parciais

Dependncia parcial
dependncia parcial
=
uma dependncia (funcional) parcial ocorre
quando uma coluna depende apenas da
parte de uma chave primria composta

Dependncias parciais
1FN

Passagem 2FN


Tabela 1FN e que possui apenas uma


coluna como chave primria
no contm dependncias parciais

impossvel uma coluna depender de uma


parte da chave primria, quando a chave
primria no composta por partes
Concluso
toda tabela 1FN que possui apenas uma coluna
como chave primria j est na 2FN

Passagem 2FN


Tambm
Tabela que contenha apenas colunas chave
primria
Impossvel atributo no chave depender de
parte da chave (tabela no tem colunas no
chave)
Tabela sem colunas no chave j est na 2FN

Passagem 2FN
1FN

2FN

Tabelas na 2FN

Tabelas na 2FN

Terceira forma normal (3FN)





Trata de um outro tipo de redundncia


Exemplo
Emp(CodEmp, Nome, Cat, Sal)

Considerar
Salrio (coluna sal) determinado pela
categoria funcional (coluna cat)

Salrio que pago a uma categoria


funcional armazenado tantas vezes
quantos empregados possui a categoria
funcional

Terceira forma normal (3FN)

Dependncia transitiva

Terceira forma normal 3FN


terceira forma normal (3FN)
=
uma tabela encontra-se na terceira forma
normal, quando, alm de estar na 2FN,
no contm dependncias transitivas

Normalizao 3FN

Tabelas na 3FN

Tabelas na 3FN

Passagem 4FN


Maioria dos documentos e arquivos


a decomposio at a 3FN suficiente

Na literatura aparecem outras formas


normais
Forma normal de Boyce/Codd
4FN
5FN

Dependncia multivaloradas

Quarta forma normal 4FN


quarta forma normal (4FN)
=
uma tabela encontra-se na quarta forma normal,
quando, alm de estar na 3FN, no contm mais
de uma dependncia
multi-valorada

Tabelas na 4FN

Problemas da normalizao



Chaves primrias omitidas ou incorretas


Atributos relevantes implicitamente
representados
Atributos irrelevantes, redundantes ou
derivados

Chaves primrias omitidas ou


incorretas


Arquivos convencionais
o conceito de chave primria no obrigatrio
possvel encontrar arquivos que no possuem
chave primria

Quando um arquivo convencional no possui


chave primria ou quando a chave primria
nele usada difere da usual na organizao
deve-se proceder como se a chave primria
aparecesse no arquivo
deve-se transferi-la na forma N

Chaves primrias omitidas ou


incorretas - exemplo


Arquivo com dados sobre empregados de


uma organizao enviado para fins de
fiscalizao a um rgo governamental
Identificador de empregado usado na
organizao omitido, j que este
irrelevante para o rgo fiscalizador

Chaves primrias omitidas


ou incorretas - exemplo


Outra situao
uso de uma chave alternativa, ao invs da
chave primria usual do arquivo

No caso mencionado acima


se o rgo governamental fosse a receita
federal
arquivo poderia ter como chave primria o
CIC do empregado, ao invs da chave
primria normalmente usada na organizao

Atributos relevantes
implicitamente representados


Arquivos convencionais podem conter


atributos de forma implcita
ordenao de registros ou de listas
ponteiros fsicos, etc.

Deve-se proceder como se o atributo


aparecesse explicitamente no documento

Atributo implcito Ordenao




Exemplo
arquivo contm registros referentes a cursos
em um concurso vestibular
para cada curso, h um grupo repetido
aninhado, com as informaes dos
candidatos ao curso em questo
Informaes dos candidatos ordenadas por
classificao no concurso

Atributo implcito Ordenao


N
Arq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,
(CodCand,NomeCand))

4FN
cursos(CodCurso,NomeCurso,NumeroVagasCurso)
candidatos(CoCurso,CodCand, NomeCand)

Atributo implcito Ordenao




Informao da classificao dos candidatos


em um curso foi perdida no processo de
normalizao
Procedimento correto
Incluir explicitamente na tabela, j na forma N,
a informao que aparece implicitamente no
arquivo na forma da ordenao dos registros
(coluna Ordem-Cand)

N
Arq-candidato(CodCurso,NomeCurso,NumeroVagasCurso,
(CodCand,NomeCand, OrdemCand))

Atributos irrelevantes,
redundantes ou derivados


Devem ser eliminados j quando da


passagem a forma no normalizada

Integrao de modelos


Normalizao de cada um dos


arquivos/documentos
conduz definio de um conjunto de tabelas

Passo seguinte
integrar os modelos obtidos para cada arquivo
no modelo global do bando de dados

Processo conhecido por


integrao de vises
integrao de esquemas

Integrao 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
questo




Tabelas de um modelo livres de


redundncias
Tabelas de diferentes modelos podem ter
redundncias entre si
Integrao elimina estas redundncias

Integrao de modelos - passos




(1) Integrao de tabelas com a mesma


chave
(2) Integrao de tabelas com chave
contida
(3) verificao de 3FN

Integrao de tabelas com


mesma chave


Juno de tabelas que possuem a


mesma chave primria
mesma chave primria =
domnio e contedos das colunas que
compem a chave primria so iguais

Construo do modelo ER e
eliminao de redundncias


Integrao dos modelo obtidos a partir


dos diversos arquivos e documentos
normalizados, segue a construo do
modelo ER. Nesta construo anterior
para transformao de modelos
relacionais em modelos ER.

Verificao do modelo ER
limitaes da normalizao


O processo de normalizao no conduz


necessariamente a um modelo ER
perfeito
Normalizao apenas elimina
campos multivalorados e
redundncia de dados detectadas pelas
formas normais descritas

Verificao do modelo ER
limitaes de normalizao


Optamos pela alternativa de decompor


tabelas na passagem 1FN
alternativa, apesar de mais simples de tratar
na prtica, pode levar a imperfeies no
modelo

H outras formas normais (Boyce/Codd e


a quinta forma normal)

Construo do modelo ER


ltimo passo da engenharia reversa


construo do modelo ER atravs das regras
para engenharia reversa de modelos
relacionais
verificao do modelo ER obtido, procurando
corrigir imperfeies ainda existentes

Referncia Bibliogrfica


HEUSER, Carlos Alberto. Projeto de


Banco de Dados. 4 Edio. Ed. Sagra,
2001. (Captulo 6)

You might also like