ENGENHARIA REVERSA DE ARQUIVOS - Processo que permite a obtenção de um Modelo Lógico Relacional a partir de um Banco de Dados não Relacional. - Entrada: qualquer conjunto de dados para os quais se disponha uma descrição - Motivação: documentos lay-out de relatório ou tela arquivos convencionais de computador Bancos de Dados gerenciados por SGBD não Relacional. sistemas legados Documentação (necessidade de Modelo E-R) Manutenção, Integração com outros BD
NORMALIZAÇÃO - Base teórica para a Engenharia Reversa de Arquivos e que se destina a eliminar a redundância de dados de arquivos. MER Transformação em MER Modelo Relacional Integrado Integração de Modelos Modelo Relacional Normalizado Modelo Relacional Normalizado Modelo Relacional Normalizado Normalização Normalização Normalização Representação como Tabela ÑN Descrição de Arquivo Existente Representação como Tabela ÑN Descrição de Arquivo Existente Representação como Tabela ÑN Descrição de Arquivo Existente
NORMALIZAÇÃO DESCRIÇÃO DE DOCUMENTO, ARQUIVO OU DE SGBD NÃO RELACIONAL ESQUEMA DE TABELA RELACIONAL NÃO NORMALIZADA 1ª FORMA NORMAL 2ª FORMA NORMAL 3ª FORMA NORMAL ESQUEMA RELACIONAL NORMALIZADO
DESCRIÇÃO DE DOCUMENTO EXEMPLO
REPRESENTAÇÃO NA FORMA DE TABELA NÃO NORMALIZADA Possui uma ou mais tabelas aninhadas (grupo repetido, coluna multivalorada ou coluna não atômica) Abreviatura: NÑ Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl))
ProjEmp CodProj Tipo Descr CodEmp Nome Cat Sal DataIni TempoAl LSC001 Novo Desenvolv Sistema de Estoque 2146 João A1 4 01/01/1991 24 LSC001 Novo Desenvolv Sistema de Estoque 3145 Silvio A2 4 02/10/1991 24 LSC001 Novo Desenvolv Sistema de Estoque 6126 José B1 9 03/10/1992 18 LSC001 Novo Desenvolv Sistema de Estoque 1214 Carlos A2 4 04/10/1992 18 LSC001 Novo Desenvolv Sistema de Estoque 8191 Mário A1 4 01/11/1992 12 PAG02 Manutenção Sistema de RH 8191 Mário A1 4 01/11/1992 12 PAG02 Manutenção Sistema de RH 4112 João A2 4 04/01/1991 24 PAG02 Manutenção Sistema de RH 6126 José B1 9 03/10/1992 18 Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl))
Passagem à Primeira Forma Normal (1FN) Primeira Forma Normal (1FN) = quando não contém tabelas aninhadas, ou seja, todos os atributos possuem valores singulares e indivisíveis (atômicos) Construir uma tabela para cada tabela aninhada ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl)
Passagem à Primeira Forma Normal (1FN) ProjEmp (CodProj, Tipo, Descr, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) ProjEmp CodProj Tipo Descr CodEmp Nome Cat Sal DataIni TempoAl LSC001 Novo Desenvolv Sistema de Estoque 2146 João A1 4 01/01/1991 24 LSC001 Novo Desenvolv Sistema de Estoque 3145 Silvio A2 4 02/10/1991 24 LSC001 Novo Desenvolv Sistema de Estoque 6126 José B1 9 03/10/1992 18 LSC001 Novo Desenvolv Sistema de Estoque 1214 Carlos A2 4 04/10/1992 18 LSC001 Novo Desenvolv Sistema de Estoque 8191 Mário A1 4 01/11/1992 12 PAG02 Manutenção Sistema de RH 8191 Mário A1 4 01/11/1992 12 PAG02 Manutenção Sistema de RH 4112 João A2 4 04/01/1991 24 PAG02 Manutenção Sistema de RH 6126 José B1 9 03/10/1992 18 ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) Proj ProjEmp CodProj Tipo Descr CodProCodEmp Nome Cat Sal DataIni TempoAl LSC001 Novo Desenvolv Sistema de Estoque LSC001 2146 João A1 4 01/01/1991 24 PAG02 Manutenção Sistema de RH LSC001 3145 Silvio A2 4 02/10/1991 24 LSC001 6126 José B1 9 03/10/1992 18 LSC001 1214 Carlos A2 4 04/10/1992 18 LSC001 8191 Mário A1 4 01/11/1992 12 PAG02 8191 Mário A1 4 01/11/1992 12 PAG02 4112 João A2 4 04/01/1991 24 PAG02 6126 José B1 9 03/10/1992 18
Passagem à Segunda Forma Normal (2FN) 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 as linhas da tabela, para cada valor de C1, aparece o mesmo valor para C2. Nome Cargo Sal DataIni João Programador 5.000,00 1/1/1991 Silvio Analista 8.000,00 2/10/1991 José DBA 10.000,00 3/10/1992 Carlos Analista 8.000,00 4/10/1992 Mário Programador 5.000,00 1/11/1992 Mário Programador 5.000,00 1/11/1992 João Analista 8.000,00 4/1/1991 José DBA 10.000,00 3/10/1992 A B C D B 5 2 20 C 4 2 15 (A,B) -> C B 6 7 20 A -> D B 5 2 20 C 2 2 15 C 4 2 15 A 10 5 18 A 12 3 18
Passagem à Segunda Forma Normal (2FN) Segunda Forma Normal (2FN) = quando além de estar na 1FN, todos os atributos devem depender da PK como um todo, ou seja, não contém dependências parciais Dependência parcial = ocorre quando uma coluna depende apenas de parte de uma chave primária composta ProjEmp(CodProj, CodEmp, Nome, Cat, Sal, DataIni,TempoAl)
Passagem à Segunda Forma Normal (2FN) ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) Proj ProjEmp CodProj Tipo Descr CodProCodEmp Nome Cat Sal DataIni TempoAl LSC001 Novo Desenvolv Sistema de Estoque LSC001 2146 João A1 4 01/01/1991 24 PAG02 Manutenção Sistema de RH LSC001 3145 Silvio A2 4 02/10/1991 24 LSC001 6126 José B1 9 03/10/1992 18 LSC001 1214 Carlos A2 4 04/10/1992 18 LSC001 8191 Mário A1 4 01/11/1992 12 PAG02 8191 Mário A1 4 01/11/1992 12 ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat, Sal) PAG02 4112 João A2 4 04/01/1991 24 PAG02 6126 José B1 9 03/10/1992 18 CodProj CodEmp DataIni TempoAl CodEmp Nome Cat Sal LSC001 2146 1/1/1991 24 2146 João A1 4 LSC001 3145 2/10/1991 24 3145 Silvio A2 4 LSC001 6126 3/10/1992 18 6126 José B1 9 LSC001 1214 4/10/1992 18 1214 Carlos A2 4 LSC001 8191 1/11/1992 12 8191 Mário A1 4 PAG02 8191 1/11/1992 12 4112 João A2 4 PAG02 4112 4/1/1991 24 PAG02 6126 3/10/1992 18
Passagem à Terceira Forma Normal (3FN) Terceira Forma Normal (3FN) = quando além de estar na 2FN não contém dependências transitivas, ou seja, nenhum atributo pode depender de outro atributo não PK Dependência transitiva = Quando existe ao mesmo tempo a dependência da chave primária e de coluna (ou colunas) não chave. DEPENDÊNCIA TRANSITIVA Empregado(CodEmp, Nome, Cat, Sal)
Passagem à Terceira Forma Normal (3FN) ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat, Sal) Proj CodProj Tipo LSC001 PAG02 CodProj CodEmp DataIni TempoAl CodEmp Nome Cat Sal LSC001 2146 1/1/1991 24 2146 João A1 4 LSC001 3145 2/10/1991 24 3145 Silvio A2 4 LSC001 6126 3/10/1992 18 6126 José B1 9 LSC001 1214 4/10/1992 18 1214 Carlos A2 4 LSC001 8191 1/11/1992 12 8191 Mário A1 4 PAG02 8191 1/11/1992 12 4112 João A2 4 PAG02 4112 4/1/1991 24 PAG02 6126 3/10/1992 18 Descr Novo Desenv Sistema de Estoque Manutenção Sistema de RH ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal) Emp Cat CodEmp Nome Cat Cat Sal 2146 João A1 A1 4 3145 Silvio A2 A2 4 6126 José B1 B1 9 1214 Carlos A2 8191 Mário A1 4112 João A2
Normalização do exemplo ÑN Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) 1FN ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) 2FN ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat, Sal) 3FN ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal)