BD1 - Engenharia Reversa flipbook
Banco de DadosEngenharia ReversaNormalização04/12/2019 1
- Page 2 and 3: Engenharia Reversa• É um process
- Page 4 and 5: Etapas da Engenharia Reversa• Ide
- Page 6 and 7: Identificação do Objeto de Cada T
- Page 8 and 9: Identificação do Objeto de Cada T
- Page 10 and 11: Identificação do Objeto de Cada T
- Page 12 and 13: Identificação do Objeto de Cada T
- Page 14 and 15: Identificação do Objeto de Cada T
- Page 16 and 17: Identificação do Objeto de Cada T
- Page 18 and 19: Identificação do Objeto de Cada T
- Page 20 and 21: Identificação do Objeto de Cada T
- Page 22 and 23: Identificação do Objeto de Cada T
- Page 24 and 25: Identificação do Objeto de Cada T
- Page 26 and 27: Identificação do Objeto de Cada T
- Page 28 and 29: Identificação do Objeto de Cada T
- Page 30 and 31: Definição dos Atributos• Toda c
- Page 32 and 33: Engenharia Reversa - Exercício:•
- Page 34 and 35: Engenharia Reversa - Exercício:•
- Page 36: Copyright © 2019 Nilton Freire San
Banco de Dados
Engenharia Reversa
Normalização
04/12/2019 1
Engenharia Reversa
• É um processo que visa analisar as tabelas de um banco de dados
já implementado e obter, a partir desta análise, o diagrama
Entidade-Relacionamento do sistema.
• Parte de um modelo relacional (esquema lógico).
• Resulta em um modelo E-R (esquema conceitual).
• É um processo inverso ao do projeto lógico.
• Pode ser bastante útil quando:
• o banco de dados foi criado de forma empírica;
• o esquema do banco de dados sofreu modificações que não
foram registradas no modelo conceitual.
Engenharia Reversa 4 de dezembro de 2019 2
Engenharia Reversa
Esquema E-R
(conceitual)
Engenharia
Reversa de
BD relacional
R
E
G
R
A
S
Projeto
Lógico de
BD relacional
Esquema Relacional
(lógico)
Engenharia Reversa 4 de dezembro de 2019 3
Etapas da Engenharia Reversa
• Identificação do objeto correspondente a cada tabela.
• Definição da cardinalidade máxima de cada relacionamento.
• Definição dos atributos de cada entidade e relacionamento.
• Definição de identificadores de cada entidade.
• Definição da cardinalidade mínima de cada relacionamento.
• Construção do diagrama Entidade-Relacionamento.
Engenharia Reversa 4 de dezembro de 2019 4
Identificação do Objeto de Cada Tabela
• Uma tabela pode corresponder a uma entidade ou a um
relacionamento.
• Os fatores determinantes para a identificação são:
• a composição de sua chave primária;
• a posição da(s) chave(s) estrangeira(s) dentro da tabela.
Engenharia Reversa 4 de dezembro de 2019 5
Identificação do Objeto de Cada Tabela
• Tipo #1: A tabela possui a chave primária formada por atributos
próprios e não possui chave estrangeira.
A (a1, a2, a3)
• Corresponde a:
• Tabela que cede chave estrangeira em um relacionamento
1:1, ou;
• Tabela que cede chave estrangeira em um relacionamento
1:N, ou;
• Tabela participante de um relacionamento N:N.
Engenharia Reversa 4 de dezembro de 2019 6
Identificação do Objeto de Cada Tabela
A (a1, a2, a3)
FK
A
1 N1
R
B
a1
a2
a3
b1
b2
b3
FK
FK
A
N
R
N
B
a1
a2
a3
b1
b2
b3
Engenharia Reversa 4 de dezembro de 2019 7
Identificação do Objeto de Cada Tabela
• Tipo #2: A tabela possui a chave primária formada por atributos
próprios e possui chave estrangeira.
B (b1, b2, b3, a1)
[a1] referencia A
• Corresponde a:
• Tabela que recebe chave estrangeira em um relacionamento
1:1, ou;
• Tabela que recebe chave estrangeira em um relacionamento
1:N (lado N).
Engenharia Reversa 4 de dezembro de 2019 8
Identificação do Objeto de Cada Tabela
B (b1, b2, b3, a1)
[a1] referencia A
FK
A
1 1
R
B
a1
a2
a3
b1
b2
b3
A
FK
1 N
R
B
a1
a2
a3
b1
b2
b3
Engenharia Reversa 4 de dezembro de 2019 9
Identificação do Objeto de Cada Tabela
• Tipo #3: A tabela possui uma chave estrangeira que faz parte da
chave primária composta.
B (b1, a1, b2, b3)
[a1] referencia A
• Corresponde a:
• Tabela que recebe chave estrangeira em um relacionamento
identificador.
• Corresponde a uma entidade fraca.
Engenharia Reversa 4 de dezembro de 2019 10
Identificação do Objeto de Cada Tabela
B (b1, a1, b2, b3)
[a1] referencia A
FK/PK
A
1 N
R
B
a1
a2
a3
b1
b2
b3
Engenharia Reversa 4 de dezembro de 2019 11
Identificação do Objeto de Cada Tabela
• Tipo #4: A tabela possui uma chave primária formada por duas
chaves estrangeiras concatenadas.
R (a1, b1)
[a1] referencia A
[b1] referencia B
• Corresponde a:
• Relacionamento com cardinalidade N:N.
Engenharia Reversa 4 de dezembro de 2019 12
Identificação do Objeto de Cada Tabela
R (a1, b1)
[a1] referencia A
[b1] referencia B
FK
FK
A
N
R
N
B
a1
a2
a3
b1
b2
b3
Engenharia Reversa 4 de dezembro de 2019 13
Identificação do Objeto de Cada Tabela
• Tipo #5: A tabela possui duas chaves estrangeiras e uma
delas é a chave primária.
R (a1, b1, r1, r2, r3)
[a1] referencia A
[b1] referencia B
• Corresponde a:
• Relacionamento com cardinalidade 1:1, ou;
• Relacionamento com cardinalidade 1:N.
• Se a cardinalidade for 1:N, a chave estrangeira é proveniente
da tabela do lado N do relacionamento.
Engenharia Reversa 4 de dezembro de 2019 14
Identificação do Objeto de Cada Tabela
R (a1, b1, r1, r2, r3)
[a1] referencia A
[b1] referencia B
A
FK
1 1
R
FK
B
a1
a2
a3
r2
r3
b1
b2
b3
• A chave primária é uma das chaves estrangeiras. Pode ser
proveniente de qualquer uma das tabelas relacionadas.
Engenharia Reversa 4 de dezembro de 2019 15
Identificação do Objeto de Cada Tabela
R (a1, b1)
[a1] referencia A
[b1] referencia B
A
FK
1 N
R
FK
B
a1
a2
a3
b1
b2
b3
• A chave primária será a chave estrangeira proveniente da tabela
do lado N do relacionamento.
Engenharia Reversa 4 de dezembro de 2019 16
Identificação do Objeto de Cada Tabela
• Tipo #6: A tabela possui a chave primária igual a uma chave
estrangeira.
B (a1, b1, b2, b3)
[a1] referencia A
• Corresponde a:
• Entidade especializada.
Engenharia Reversa 4 de dezembro de 2019 17
Identificação do Objeto de Cada Tabela
B (a1, b1, b2, b3)
[a1] referencia A
A
a1
a2
a3
B
C
b1
b2
b3
c1
c2
c3
Engenharia Reversa 4 de dezembro de 2019 18
Identificação do Objeto de Cada Tabela
• Tipo #7: A tabela possui uma chave estrangeira que faz
referência à chave primária da própria tabela.
A (a1, a2, a3, a4)
[a4] referencia A
• Corresponde a:
• Auto-relacionamento de cardinalidade 1:1, ou;
• Auto-relacionamento de cardinalidade 1:N.
Engenharia Reversa 4 de dezembro de 2019 19
Identificação do Objeto de Cada Tabela
A (a1, a2, a3, a4)
[a4] referencia A
A
1 1
R
a1
a2
a3
A
1 N
R
a1
a2
a3
Engenharia Reversa 4 de dezembro de 2019 20
Identificação do Objeto de Cada Tabela
• Tipo #8: A tabela possui a chave primária composta, formada por
duas chaves estrangeiras que fazem referência à mesma tabela.
R (r1, r2)
[r1] referencia A
[r2] referencia A
• Corresponde a:
• Auto-relacionamento de cardinalidade N:N.
Engenharia Reversa 4 de dezembro de 2019 21
Identificação do Objeto de Cada Tabela
R (r1, r2)
[r1] referencia A
[r2] referencia A
A
N
R
N
a1
a2
a3
Engenharia Reversa 4 de dezembro de 2019 22
Identificação do Objeto de Cada Tabela
• Tipo #9: A tabela possui a chave primária composta, formada
por três chaves estrangeiras.
R (a1, b1, c1)
[a1] referencia A
[b1] referencia B
[c1] referencia C
• Corresponde a:
• Relacionamento ternário. As três tabelas que participam do
relacionamento tem cardinalidade máxima igual a N.
Engenharia Reversa 4 de dezembro de 2019 23
Identificação do Objeto de Cada Tabela
R (a1, b1, c1)
[a1] referencia A
[b1] referencia B
[c1] referencia C
FK
FK
A
N
R
N
B
a1
a2
a3
N
FK
b1
b2
b3
C
b1
b2
b3
Engenharia Reversa 4 de dezembro de 2019 24
Identificação do Objeto de Cada Tabela
• Tipo #10: A tabela possui três chaves estrangeiras e duas delas
formam a chave primária da tabela.
R (a1, b1, c1)
[a1] referencia A
[b1] referencia B
[c1] referencia C
• Corresponde a:
• (1) Relacionamento ternário. Uma das três tabelas que
participam do relacionamento tem cardinalidade máxima
igual a 1.
Engenharia Reversa 4 de dezembro de 2019 25
Identificação do Objeto de Cada Tabela
R (a1, b1, c1)
[a1] referencia A
[b1] referencia B
[c1] referencia C
FK
FK
A
N
R
N
B
a1
a2
a3
1
FK
b1
b2
b3
C
c1
c2
c3
Engenharia Reversa 4 de dezembro de 2019 26
Identificação do Objeto de Cada Tabela
• Tipo #10: A tabela possui três chaves estrangeiras e duas delas
formam a chave primária da tabela.
R (a1, b1, c1)
[a1] referencia A
[b1] referencia B
[c1] referencia C
• Corresponde a:
• (2) Entidade associativa que recebe chave estrangeira de uma
terceira tabela.
Engenharia Reversa 4 de dezembro de 2019 27
Identificação do Objeto de Cada Tabela
R (a1, b1, c1)
[a1] referencia A
[b1] referencia B
[c1] referencia C
FK
FK
A
N
R
N
B
a1
a2
a3
R
N
FK
b1
b2
b3
c1
c2
c3
C
1
Engenharia Reversa 4 de dezembro de 2019 28
Definição da Cardinalidade
• Em muitos casos o esquema relacional não informa com precisão
as cardinalidades do relacionamento.
• Nesses casos, além de analisar a semântica do relacionamento:
• para definir a cardinalidade máxima é necessário verificar nas
tabelas se as chaves estrangeiras admitem repetição de
dados. Se permitir, a cardinalidade é de 1:N, se não, é de 1:1.
• para definir a cardinalidade mínima é necessário verificar a
possibilidade da existência de valores nulos nas chaves
estrangeiras das tabelas relacionadas. Se a chave estrangeira
puder ser nula, a cardinalidade mínima da tabela do lado que
cede a chave estrangeira é igual a zero, senão, é igual a um.
Engenharia Reversa 4 de dezembro de 2019 29
Definição dos Atributos
• Toda coluna da tabela que não seja chave estrangeira, é definida
como sendo um atributo da entidade ou do relacionamento
correspondente à tabela.
• As chaves estrangeiras não correspondem a atributos no
diagrama E-R. Elas representam os relacionamentos entre as
tabelas, existentes apenas no modelo lógico.
• O diagrama E-R deverá ser construído, portanto, sem a existência
de chaves estrangeiras nas entidades.
Engenharia Reversa 4 de dezembro de 2019 30
Definição dos Identificadores
• Toda coluna que faz parte da chave primária e não é chave
estrangeira, corresponde a um atributo identificador da entidade
ou relacionamento.
• Toda coluna que faz parte da chave primária e é chave
estrangeira, corresponde a um identificador externo da entidade,
existente através de um relacionamento identificador.
• O diagrama E-R deverá ser construído, portanto, sem a existência
de identificadores externos nas entidades.
Engenharia Reversa 4 de dezembro de 2019 31
Engenharia Reversa – Exercício:
• Construir o diagrama E-R a partir do esquema relacional abaixo:
DISCIPLINA (CodDisc, NomeDisc)
CURSO (CodCr, NomeCr)
CURRÍCULO (CodCr, CodDisc, ObrOpc)
[CodCr] referencia CURSO
[CodDisc] referencia DISCIPLINA
PRÉDIO (CodPr, Endereço)
SALA (CodPr, CodSl, Capacidade)
[CodPr] referencia PRÉDIO
TURMA (Anosem, CodDisc, SiglaTur, Capacidade, CodPr, CodSl)
[CodDisc] referencia DISCIPLINA
[CodPr, CodSl] referencia SALA
LABORATÓRIO (CodPr, CodSl, Equipam)
[CodPr, CodSl] referencia SALA
Engenharia Reversa 4 de dezembro de 2019 32
Engenharia Reversa – Exercício:
• As tabelas correspondem aos seguintes objetos:
• DISCIPLINA - entidade que cede chave estrangeira.
• CURSO - entidade que cede chave estrangeira.
• CURRÍCULO - Relacionamento N:N entre as entidades CURSO e
DISCIPLINA, com atributos.
• PRÉDIO - entidade que cede chave estrangeira.
• SALA - entidade que recebe chave estrangeira em um relacionamento
identificador com PRÉDIO.
• TURMA - entidade que recebe chave estrangeira em um
relacionamento identificador com DISCIPLINA outra chave estrangeira
em um relacionamento com SALA.
• LABORATÓRIO - entidade especializada de SALA.
Engenharia Reversa 4 de dezembro de 2019 33
Engenharia Reversa – Exercício:
• Diagrama Entidade-Relacionamento resultante:
DISCIPLINA
N
CURRIC
N
CURSO
1
R1
N
TURMA
N 1 N 1
R2
SALA
R3
PRÉDIO
p
LABORAT
Engenharia Reversa 4 de dezembro de 2019 34
Engenharia Reversa – Exercício:
• Descrição das entidades resultantes:
DISCIPLINA (CodDisc, NomeDisc)
CURSO (CodCr, NomeCr)
PRÉDIO (CodPr, Endereço)
SALA (CodSl, Capacidade)
TURMA (Anosem, SiglaTur, Capacidade)
LABORATÓRIO (Equipam)
CURRÍCULO (ObrOpc) - relacionamento
Engenharia Reversa 4 de dezembro de 2019 35
Copyright © 2019 Nilton Freire Santos.
Todos os direitos reservados.
Normalização 04/12/2019 36