Professional Documents
Culture Documents
Engenharia Reversa Processo de abstrao que parte de um modelo de implementao e resulta em um modelo conceitual que descreve abstratamente a implementao em questo.
I. Engenharia Reversa de Modelos Relacionais
Engenharia Reversa de Arquivos e Documentos Permite obter um modelo lgico relacional a partir de um banco de dados no relacional Para isso, pode ser usado qualquer conjunto de dados que tenham alguma descrio documentos, arquivos manuais, arquivos convencionais, bancos de dados gerenciados por SGBDs no relacionais
Exemplo
Type reg_aluno record Cod_al: integer; nome_al: string; 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; Arq_aluno = file of reg_aluno;
Exemplo
FD Arq_alunos 01 Reg_al. 03 Cod_al 03 Nome_al 03 Ingr_Cursos OCCURS 1 to 10 05 Cod_curso 05 Sem_ingresso 03 Disc_curso_al OCCURS 0 to 200 05 Cod_disc 05 Sem_cursado OCCURS 1 to 20 07 Sem_Disc_cursada 07 Nota_Disc
Quando Realizar Eng. Reversa de Arquivos? H situaes no ciclo de vida de um sistema onde um modelo conceitual/lgico pode ser necessrio
Documentao Aprendizado do sistema por parte de pessoas que no participaram da concepo Migrao do banco ou dos arquivos para a plataforma relacional Modelo conceitual/lgico acelera o processo de migrao Integrao de modelos Validao do projeto relacional
Como?
1.
Parte-se das descries dos arquivos que compem o sistema existente As descries so representadas como tabelas no normalizadas Utiliza-se a tcnica de normalizao para:
Reagrupar informaes de forma a eliminar redundncias de dados dos arquivos Reagrupar informaes de uma forma que permita a obteno de um modelo ER
2.
3.
4.
Depois de normalizados, os esquemas relacionais so integrados A partir da (usando as regras de eng. Reversa de BD relacional), gera-se o modelo ER.
5.
(1) Eliminar redundncias de dados de arquivos (2) Garantir que as dependncias entre os dados faam sentido
Armazenando dados logicamente relacionados em uma tabela Obtendo maior desempenho nas consultas
Documento Exemplo
Sistema de Gerncia de Projetos Relatrio de Alocao a Projeto Cdigo do Projeto: LSC001 Descrio: Sistema de Estoque
CdigoEmp Nome 2146 3145 6126 1214 8191 Joo Slvio Jos Carlos Mrio Categoria A1 A2 B1 A2 A1 Salrio DataIncio 4 4 9 4 4 1/11/91 2/10/91 3/10/92 4/10/92 1/11/92 tempoProj 24 24 18 18 12
Documento Exemplo
Relatrio de Alocao a Projeto Cdigo do Projeto: PAG02 tipo: Manuteno Descrio: Sistema de RH
CdigoEmp Nome 8191 4112 6126 Mrio Joo Jos Categoria A1 A2 B1 Salrio DataIncio 4 4 9 1/05/93 4/01/91 1/11/92 tempoProj 12 24 12
PAG02
Manut.
Sistema de RH
Tabela No-Normalizada (N): PROJ (CodProj, Tipo, Desc, (CodEmp, Nome, Sal, Cat, DataIni, TempAl))
Tabela aninhada:
grupo repetido ou coluna no atmica ou coluna multi-valorada uma coluna que ao invs de conter valores atmicos, contm tabelas aninhadas (outras tabelas ou grupos).
Exemplos de Tabelas Aninhadas Aluno (CodAluno, NomeAluno, (CodCurso, SemestIngres) Lista de Disciplinas -> (CodDisc, Lista de Semestres -> (SemestDiscCursada, Nota)))
Lista de curso->
Cliente ClienteID 123 456 789 Nome Rachel Ingram Telefone 555-861-2025 555-403-1659 James Wright 555-776-4100 Maria Fernandez 555-808-9633
Normalizao
Forma Normal
uma regra que deve ser obedecida por uma tabela para que seja considerada bem projetada
Normalizao Passagem Primeira Forma Normal (1FN) Primeira Forma Normal (1FN) = Uma tabela est na primeira forma normal, quando ela NO CONTM tabelas aninhadas
Crie uma tabela na 1FN referente tabela no normalizada e que contenha apenas as colunas com valores atmicos, isto , sem tabelas aninhadas;
A chave primria dessa tabela idntica chave da tabela no normalizada;
2.
Para cada tabela aninhada, crie uma tabela na 1FN composta pelas seguintes colunas:
A chave primria da tabela na qual essa tabela esteja aninhada; As colunas da prpria tabela.
Etapa de Normalizao para 1FN Proj(CodProj, Tipo, Descr) ProjEmp(CodProj, CodEmp, Nome, Cat, Sal, DtInicio) ** nomes das tabelas podem ser definidos no final
10
Dados do Exemplo
Proj
CodProj LSC001 PAG02 Tipo Novo Desenv. Manuteno Descr Sistema de Estoque Sistema de RH
ProjEmp
CodProj LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 CodEmp Nome 2146 3145 6126 8191 8191 4112 Joo Slvio Jos Mrio Mrio Joo Cat A1 A2 B1 A1 A1 A2 Sal 4 4 9 4 4 4 DataIni 1/11/91 2/10/91 3/10/92 1/11/92 1/15/93 4/01/91 TemAI 24 24 18 12 12 24
11
Tomar como chave primria da tabela na 1FN a chave da tabela N Verificar se esta chave primria suficiente para identificar as linhas da tabela na 1FN
Caso seja insuficiente, a chave primria da tabela na 1FN a concatenao com a da tabela na forma N Pode-se verificar se outras colunas so necessrias para identificar as linhas da tabela na 1FN, compondo assim a chave primria na 1FN.
2.
Voltando ao Exemplo Etapa de Normalizao para 1FN PKs: Proj(CodProj, Tipo, Descr) ProjEmp(CodProj, CodEmp, Nome, Cat, Sal, DtInicio)
12
Dependncia Funcional
A coluna C2 depende funcionalmente de uma coluna C1 quando em todas as linhas da tabela, para cada valor de C1 que aparece na tabela, aparece o mesmo valor de C2. ...
Cdigo E1 E3 E1 E2 E3 E2 E1
...
Salrio 10 10 10 5 10 5 10
A
B C B B C C A A A B C A C
B
5 4 6 5 2 4 10 12 10 5 4 10 4
C
2 2 7 2 2 2 5 3 5 2 2 5 2
D
20 15 20 20 15 15 18 18 18 20 15 18 15
E
X C A Y B K K F F C X R S
Dependncias Funcionais
A (A,B) (A,B) C A D
D C
13
Normalizao
Uma dependncia (funcional) parcial ocorre quando uma coluna depende apenas de parte de uma chave primria composta Passagem Segunda Forma Normal (2FN)
Segunda Forma Normal (2FN) = Diz-se que uma tabela est na segunda forma normal, quando, alm de estar na 1FN, cada coluna no chave depende da chave primria completa, ou seja, NO CONTM dependncias parciais.
Exemplo
CodProj LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 CodEmp Nome 2146 3145 6126 8191 8191 4112 Joo Slvio Jos Mrio Mrio Joo Cat A1 A2 B1 A1 A1 A2 Sal 4 4 9 4 4 4 DataIni 1/11/91 2/10/91 3/10/92 1/11/92 1/15/93 4/01/91 TemAI 24 24 18 12 12 24
14
Toda tabela que est na 1FN e que possui apenas uma coluna como chave-primria j est na 2FN
Uma tabela que contenha apenas colunas chave primria j est na 2FN
Exemplo
Proj
CodProj LSC001 PAG02 Tipo Novo Desenv. Manuteno Descr Sistema de Estoque Sistema de RH
E esta ??
15
Passagem da 1FN para a 2FN Copie para a 2FN cada tabela que tenha chave primria simples ou que no tenha colunas alm da chave Para cada tabela com chave primria composta e com pelo menos uma coluna no chave
Criar na 2FN uma tabela com as chaves primrias da tabela na 1FN Para cada coluna no chave, verificar:
Passagem da 1FN para a 2FN A coluna depende de toda a chave ou apenas de parte dela?
Toda a chave: criar a coluna na tabela com a chave completa na 2FN Apenas de parte:
criar, caso no exista, uma tabela na 2FN que tenha como chave primria a parte da chave que determinante da coluna em questo Criar a coluna dependente dentro da tabela na 2FN
16
Tabelas na 2FN
Proj(CodProj, Tipo, Descr) ProjEmp(CodProj, CodEmp, DtInicio, TemAI) Empreg(CodEmp, Nome, Cat, Sal)
Dados do Exemplo
Projeto
CodProj LSC001 PAG02 Tipo Novo Desenv. Manuteno Descr Sistema de Estoque Sistema de RH
ProjEmp
CodProj LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 CodEmp 2146 3145 6126 8191 8191 4112 DataIni 1/11/91 2/10/91 3/10/92 1/11/92 1/15/93 4/01/91 TemAI 24 24 18 12 12 24
Empregado
CodEmp 2146 3145 6126 8191 4112 Nome Joo Slvio Jos Mrio Joo Cat A1 A2 B1 A1 A2 Sal 4 4 9 4 4
17
Normalizao
Uma dependncia (funcional) transitiva ocorre quando uma coluna, alm de depender da chave primria da tabela, depende de outra coluna ou conjunto de colunas da tabela. Passagem Terceira Forma Normal (3FN)
Terceira Forma Normal (3FN) = Uma tabela est na terceira forma normal, quando, alm de estar na 2FN, NO CONTM dependncias transitivas.
Normalizao
<<Dependncia Transitiva ou indireta>>
Cat A1 A2 B1 A2
Sal 4 4 9 4
** Quando uma tabela tem menos que duas colunas no chaves, no pode haver dependncia transitiva.
18
Passagem da 2FN para 3FN O processo de passagem 3FN consiste em dividir tabelas de forma a eliminar as dependncias transitivas
1. Copie para o esquema na 3FN cada tabela que tenha menos que duas colunas no chaves; 2. Para tabelas com duas ou mais colunas no chaves:
a. Crie uma tabela no esquema da 3FN com a chave primria da tabela em questo;
19
Passagem da 2FN para 3FN b. Para cada coluna no chave, verificar: ela depende de alguma outra coluna no chave?
Caso a coluna dependa apenas da chave primria, copie a coluna para a tabela correspondente na 3FN;
Tabelas na 3FN
Projeto(CodProj, Tipo, Descr) ProjEmp(CodProj, CodEmp, DtInicio, TempAI) Empregado(CodEmp, Nome, Cat) Categoria(Cat, Sal)
20
Dados do Exemplo
Projeto
CodProj LSC001 PAG02 Tipo Novo Desenv. Manuteno Descr Sistema de Estoque Sistema de RH
Empregado
CodEmp 2146 Nome Joo Slvio Jos Mrio Joo Cat A1 A2 B1 A1 A2
ProjEmp
CodProj LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 CodEmp 2146 3145 6126 8191 8191 4112 DataIni 1/11/91 2/10/91 3/10/92 1/11/92 1/15/93 4/01/91 TemAI 24 24 18 12 12 24
Categoria
Cat A1 A2 B1 Sal 4 4 9
Enfim... muito comum, no processo de normalizao enxergamos todas as formas normais ao mesmo tempo.
Ao separarmos as tabelas aninhadas, j conseguimos ver as dependncias parciais e transitivas, tudo ao mesmo tempo. Mas, cuidado!
prefervel seguir as etapas passo a passo para garantir que nada fique faltando. importante mostrar cada forma normal!!
21