Normalização 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 • documentos • “lay-out” de relatório ou tela • arquivos convencionais de computador • Bancos de Dados gerenciados por SGBD não Relacional. - Motivação: • sistemas legados • Documentação (necessidade de Modelo E-R) Manutenção, Integração com outros BD Unidade I Banco de Dados I Normalização 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 Representação como Tabela ÑN Representação como Tabela ÑN Descrição de Arquivo Existente Descrição de Arquivo Existente Descrição de Arquivo Existente Unidade I Banco de Dados I Normalização 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 Unidade I Banco de Dados I Normalização DESCRIÇÃO DE DOCUMENTO EXEMPLO Unidade I Banco de Dados I Normalização 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)) Unidade I Banco de Dados I Normalização ProjEmp CodProj Tipo Descr LSC001 LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 PAG02 Sistema de Estoque Sistema de Estoque Sistema de Estoque Sistema de Estoque Sistema de Estoque Sistema de RH Sistema de RH Sistema de RH Novo Desenvolv Novo Desenvolv Novo Desenvolv Novo Desenvolv Novo Desenvolv Manutenção Manutenção Manutenção CodEmp Nome Cat Sal DataIni TempoAl 2146 3145 6126 1214 8191 8191 4112 6126 João Silvio José Carlos Mário Mário João José A1 A2 B1 A2 A1 A1 A2 B1 4 4 9 4 4 4 4 9 01/01/1991 02/10/1991 03/10/1992 04/10/1992 01/11/1992 01/11/1992 04/01/1991 03/10/1992 24 24 18 18 12 12 24 18 Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) Unidade I Banco de Dados I Normalização 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 Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) Unidade I Banco de Dados I Normalização Passagem à Primeira Forma Normal (1FN) ProjEmp (CodProj, Tipo, Descr, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) ProjEmp CodProj Tipo Descr LSC001 LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 PAG02 Sistema Sistema Sistema Sistema Sistema Sistema Sistema Sistema Novo Desenvolv Novo Desenvolv Novo Desenvolv Novo Desenvolv Novo Desenvolv Manutenção Manutenção Manutenção CodEmp Nome Cat Sal DataIni TempoAl de de de de de de de de Estoque Estoque Estoque Estoque Estoque RH RH RH 2146 3145 6126 1214 8191 8191 4112 6126 João Silvio José Carlos Mário Mário João José A1 A2 B1 A2 A1 A1 A2 B1 4 4 9 4 4 4 4 9 01/01/1991 02/10/1991 03/10/1992 04/10/1992 01/11/1992 01/11/1992 04/01/1991 03/10/1992 24 24 18 18 12 12 24 18 Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) Proj CodProj Tipo LSC001 PAG02 Descr Novo Desenvolv Sistema de Estoque Manutenção Sistema de RH Unidade I ProjEmp CodProj CodEmp LSC001 LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 PAG02 2146 3145 6126 1214 8191 8191 4112 6126 Nome Cat Sal João Silvio José Carlos Mário Mário João José A1 A2 B1 A2 A1 A1 A2 B1 4 4 9 4 4 4 4 9 DataIni TempoAl 01/01/1991 02/10/1991 03/10/1992 04/10/1992 01/11/1992 01/11/1992 04/01/1991 03/10/1992 24 24 18 18 12 12 24 18 Banco de Dados I Normalização 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 A B C D João Silvio José Carlos Mário Mário João José Programador Analista DBA Analista Programador Programador Analista DBA 5.000,00 8.000,00 10.000,00 8.000,00 5.000,00 5.000,00 8.000,00 10.000,00 1/1/1991 2/10/1991 3/10/1992 4/10/1992 1/11/1992 1/11/1992 4/1/1991 3/10/1992 B C B B C C A A Unidade I 5 4 6 5 2 4 10 12 2 2 7 2 2 2 5 3 20 15 20 20 15 15 18 18 (A,B) -> A -> C D Banco de Dados I Normalização 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) Unidade I Banco de Dados I Normalização Passagem à Segunda Forma Normal (2FN) Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) Proj CodProj Tipo LSC001 PAG02 Descr Novo Desenvolv Sistema de Estoque Manutenção Sistema de RH ProjEmp CodProj CodEmp LSC001 LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 PAG02 2146 3145 6126 1214 8191 8191 4112 6126 Nome Cat Sal João Silvio José Carlos Mário Mário João José A1 A2 B1 A2 A1 A1 A2 B1 4 4 9 4 4 4 4 9 Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat, Sal) CodProj CodEmp DataIni TempoAl LSC001 LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 PAG02 1/1/1991 2/10/1991 3/10/1992 4/10/1992 1/11/1992 1/11/1992 4/1/1991 3/10/1992 Unidade I 2146 3145 6126 1214 8191 8191 4112 6126 24 24 18 18 12 12 24 18 CodEmp Nome 2146 3145 6126 1214 8191 4112 João Silvio José Carlos Mário João DataIni TempoAl 01/01/1991 02/10/1991 03/10/1992 04/10/1992 01/11/1992 01/11/1992 04/01/1991 03/10/1992 Cat Sal A1 A2 B1 A2 A1 A2 4 4 9 4 4 4 24 24 18 18 12 12 24 18 Banco de Dados I Normalização 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) Unidade I Banco de Dados I Normalização Passagem à Terceira Forma Normal (3FN) Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat, Sal) CodProj CodEmp DataIni TempoAl LSC001 LSC001 LSC001 LSC001 LSC001 PAG02 PAG02 PAG02 1/1/1991 2/10/1991 3/10/1992 4/10/1992 1/11/1992 1/11/1992 4/1/1991 3/10/1992 2146 3145 6126 1214 8191 8191 4112 6126 LSC001 PAG02 CodEmp Nome 24 24 18 18 12 12 24 18 Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal) Unidade I Proj CodProj Tipo 2146 3145 6126 1214 8191 4112 João Silvio José Carlos Mário João 2146 3145 6126 1214 8191 4112 Novo Desenvolv Sistema de Estoque Manutenção Sistema de RH Cat Sal A1 A2 B1 A2 A1 A2 4 4 9 4 4 4 Emp CodEmp Nome João Silvio José Carlos Mário João Descr Cat A1 A2 B1 A2 A1 A2 Cat Cat Sal A1 A2 B1 4 4 9 Banco de Dados I Normalização Normalização do exemplo ÑN Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) 1FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) 2FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat, Sal) 3FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempoAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal) Unidade I Banco de Dados I