Você está na página 1de 66

Aula VII Engenharia Reversa de Arquivos e Normalizao

Engenharia Reversa de Arquivos e Documentos

Engenharia Reversa de BD Relacional

Engenharia reversa de arquivos e normalizao


Entrada do processo: 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 outros BDs.

Engenharia reversa passo #1


Normalizao: Processo que transforma um esquema de dados qualquer em um modelo relacional.

Engenharia reversa - processo


Normalizao executada para todos esquemas de documentos disponveis.

Engenharia reversa - integrao


Normalizao executada para todos esquemas de documentos disponveis.

Normalizao Objetivo
Reagrupar informaes para: eliminar redundncias de dados. Reagrupar informaes para: eliminar estruturas inexistentes no modelo ER (atributos multivalorados).

Normalizao passos

Documento exemplo para normalizao

Normalizao passo #1

Tabela no normalizada
Tabela no-normalizada ou tabela noprimeira-forma-normal: possui uma ou mais tabelas aninhadas

Tabela no normalizada
Abreviatura: N

Tabela aninhada

Tabela N Esquema

Representao em esquema no normalizado


Nenhuma transformao feita no modelo do documento. Apenas 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 considerada bem projetada. H diversas formas normais, cada vez mais rgidas, para verificar tabelas relacionais. Aqui tratadas:
primeira forma normal (1FN), segunda forma normal (2FN), terceira forma normal (3FN), quarta forma normal (4FN).

Passagem a 1FN

Primeira forma normal (1FN)

Passagem 1FN - alternativas


Para chegar a 1FN h duas alternativas: 1. Construir uma nica tabela com redundncia de dados. 2. Construir uma tabela para cada tabela aninhada.

Passagem 1FN alternativa #1


Uma tabela na qual os dados das linhas externas tabela aninhada so repetidos para cada linha da tabela aninhada.

Dados do projeto aparecem repetidos para cada


empregado do projeto.

Passagem 1FN -alternativa #2


Cria-se: 1. uma tabela referente a prpria tabela que est sendo normalizada e 2. uma tabela para cada tabela aninhada

Passagem 1FN - alternativas


Primeira alternativa (tabela nica) pode ser a primeira opo de escolha. Quando houver diversas tabelas aninhadas, eventualmente com diversos nveis de aninhamento, fica difcil visualizar a tabela na 1FN na alternativa de tabela nica. Assim, a preferncia pode ser a segunda alternativa (decomposio de tabelas)

Passagem 1FN passo #1


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 externa

Passagem 1FN passo #2


2. Para cada tabela aninhada: criar uma tabela composta pelas seguintes colunas: a) a chave primria de cada uma das tabelas na qual a tabela em questo est aninhada; b) as colunas da prpria tabela aninhada.

Passagem 1FN criar tabelas referentes a tabela aninhada

Passagem 1FN - passo #3


3. Definir, na 1FN, as chaves primrias das tabelas que correspondem a tabelas aninhadas.

Passagem 1FN tabelas aninhadas definio de chave primria

Passagem 1FN tabelas aninhadas definio de chave primria

Documento exemplo para normalizao

Passagem 1FN tabelas aninhadas definio de chave primria

Passagem 1FN tabelas aninhadas definio de chave primria

Passagem 1FN - exemplo

Passagem 1FN outro exemplo

Passagem 1FN decomposio em tabelas

Passagem 1FN decomposio em tabelas

Passagem 1FN definio da chave primria

Passagem 1FN definio da chave primria

Passagem s 2FN e 3FN

Dependncia funcional
Para entender 2FN e 3FN: necessrio compreender o conceito de dependncia funcional

Exemplo de dependncia funcional

Dependncias funcionais - exemplos

Dependncias funcionais - exemplos

Passagem s 2FN e 3FN

Segunda forma normal - 2FN


Objetiva eliminar um certo tipo de redundncia de dados. Exemplo:

Dados referentes a empregados (Nome, Cat e Sal) so redundantes, para os empregados que trabalham em mais de um projeto.

Dados redundantes na 1FN

Segunda forma normal - 2FN

Dependncia funcional parcial

Dependncias parciais

Dependncias no parciais

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 Tabela com uma nica coluna na chave

Passagem 2FN
Idem para: 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

Passagem 2FN

Passagem 2FN

Passagem 2FN

Passagem 2FN

2FN resultante

Tabelas na 2FN - exemplo

Tabelas na 2FN - exemplo

Exerccio
Considere o esquema relacional abaixo: ItemVenda (NumeroNF, NumProd, DescricaoProd, DataVenda, CodReg, CodEmp, QtdeItem, PrecoItem, NomeEmp) O significado das colunas acima a seguinte:
NumeroNF Nmero da nota fiscal NumProd Cdigo do produto DescricaoProd Descrio do produto DataVenda Data da venda CodReg Registradora onde ocorreu a venda CodEmp Cdigo do empregado QtdeItem Quantidade do pedido do produto PrecoItem Preo do item NomeEmp Nome do empregado

Normalize a tabela acima at 2a Forma Normal.

Exerccio
No contexto de um sistema de controle acadmico, considere a tabela abaixo: Matricula (CodAluno, CodTurma, CodDisciplina, NomeDisciplina, NomeAluno, CodLocalNascAluno, NomeLocalNascAluno) O significado das colunas acima a seguinte:
CodAluno Cdigo do aluno matriculado CodTurma Cdigo da turma na qual o aluno est matriculado (Cdigo o identificador de turma) CodDisciplina Cdigo que identifica a disciplina da turma NomeDisciplina Nome de uma disciplina da turma NomeAluno Nome do aluno matriculado CodLocalNascAluno Cdigo da localidade em que nasceu o aluno NomeLocalNascAluno Nome da Localidade em que nasceu o aluno

Normalize a tabela acima at 2a Forma Normal.

Passagem 3FN