Você está na página 1de 43

Banco de Dados I

Engenharia Reversa e Normalizao

Oque Engenharia Reversa

Conceito
y A Engenharia Reversa o processo de descobrir os princpios tecnolgicos de um dispositivo/objeto ou de um sistema com a anlise de suas estrutura, funo e operao. y Diretamente falando a Engenharia Reversa geralmente a arte de desmontar para saber como funciona.

Aplicao
y A Engenharia reversa consiste em usar a criatividade para, a partir de uma soluo pronta, retirar todos os possveis conceitos novos ali empregados. y o processo de anlise de um artefato (um aparelho, um componente eltrico, um programa de computador, etc.) e dos detalhes de seu funcionamento, geralmente com a inteno de construir um novo aparelho ou programa que faa a mesma coisa, sem realmente copiar alguma coisa do original. y Objetivamente a engenharia reversa consiste em, por exemplo, desmontar uma mquina para descobrir como ela funciona.

Exemplo

JerryCan(Latas Jerry)
y Criado

pelos Alemes Segunda Guerra Mundial

na

y Copiada pelas foras britnicas

e americanas

Exemplo
y Enquanto a Apple no divulga oficialmente as especificaes de

hardware do iPhone, entusiastas do novo telefone examinam o hardware atravs de tcnicas de engenharia reversa, para descobrir suas especificaes e caractersticas.
Fonte: http://www.pdaexpert.net/noticias/computacao-movel/especificacoes-de-hardware-do-iphone-descobertas/

Engenharia Reversa
y AEngenhariaReversautilizaoprocessode normalizaoparaosobjetivosseguintes: Reagruparinformaesdeformaaeliminar redundnciasdedadosquepossamexistirnos arquivos; Reagruparinformaesdeumaformaquepermitaa obtenodeummodeloER.

Normalizao
y Conjunto deregras que ajudam na definio debancos de dadosque no contenham redundncia desnecessria e que permitam ofcil acesso s informaes y H diferentes nveis denormalizao,deacordo comas condies atendidas y Ahierarquia entre asformas normais indica que uma tabela s pode estar numa formamais avanada se,alm deatender ascondies necessrias,j estiver na forma normalimediatamente anterior y (Ex:s pode estar em 2FNsej estiver em 1FN)

1FN 2FN 3FN 4FN

Normalizao
y Afinalidade dasregras denormalizao evitar anomalias deatualizao nobanco dedados y Anomalias deinsero
y

Evitar arepetio desnecessria dedados(redundncia) Evitar inconsistncias ereduzir oesforo para aatualizao dos dados Evitar aperda deinformaes associadas aumdadoregistro

Anomalias dealterao
y

Anomalias deexcluso
y

Antes Com anomalias

Depois Sem anomalias

Exemplo deAnomalias
y Considere uma nica tabela Vendas para representar asinformaes sobre os negcios deuma loja deCDs:

NOME_CLIENTE Alice Nbrega

COD_CD 215621

MUSICA Bem que se quis

CANTOR Marisa Monte

PRECO R$ 20,00

DATA_COMPRA 21/08/2008

...
Juliano Moreira

...
878650

...
Corcovado

...
Tom Jobim

...
R$ 25,00

...
10/06/2008

Exemplo deAnomalias
y Caso fosse preciso registrar a compra de 5 CDs iguais para um mesmo cliente, as seguintes anomalias seriam observadas: y Anomalia de insero
y

Redundncia em todas as colunas (5 linhas iguais na tabela) A mudana no preo do CD deveria ser feita em todas as linhas correspondentes da tabela S haveria registro dos CDs que fossem comprados; se a nica venda de um CD fosse apagada, no haveria mais informaes sobre aquele CD

y Anomalia de alterao
y

y Anomalia de excluso
y

Dependnciatransitiva
y Dependncia Funcional Transitiva
Um atributo A tem dependncia funcional transitiva da chave primria, se ele possui dependncia funcional em relao a um atributo B que possua dependncia funcional dessa chave.
Ex: Entidade PEDIDO endereo, telefone e nome do vendedor so dependentes transitivos de cdigo do pedido.

Primeira FormaNormal(1FN)
y Conceito: Uma varivel de relao (tabela) est em 1FN se, e somente se, em todo valor vlido dessa varivel de relao, cada tupla contm exatamente um valor para cada atributo; y Os atributos devem ser atmicos (indivisveis), no podem conter tabelas aninhadas; y Atributos compostos ou multivalorados devem ser representados por novas linhas ou novas tabelas.

Exemplo 1FN
y Exemplo:Tabela Controle deFaltas numa Escola y Atabela abaixo no est na 1FN
COD_TURMA BD1032 ALUNO Alice Luna Juliano Camargo Mrcio Andrade PROFESSOR Bruno Pereira SALA 101 CAPACIDADE 50 QTE_FALTAS 02 00 04

...

...

...

...

...

y Osatributos Aluno eQte_Faltas no so atmicos (h mais deumvalorpara cada registro)

Soluo
y Construir uma nica tabela com redundncia de dados
Cria-se uma tabela na qual os dados das linhas externas tabela aninhada so repetidos para cada linha da tabela aninhada.

y Construir uma tabela para cada tabela aninhada


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

Exemplo 1FN
y Atabela abaixo est na 1FN(atributos atmicos)
COD_TURMA BD1032 BD1032 BD1032 ALUNO Alice Luna Juliano Camargo Mrcio Andrade PROFESSOR Bruno Pereira Bruno Pereira Bruno Pereira SALA 101 101 101 CAPACIDADE 50 50 50 QTE_FALTAS 02 00 04

...

...

...

...

...

...

Obteno da 1FN
y Os atributos no contm valores nulos
Do ponto de vista prtico, no h restries quanto existncia de valores nulos em coluna de uma tabela. Valores nulos desconhecidos so comuns, porm valores nulos inaplicveis podem indicar irregularidades no modelo conceitual e talvez meream tabelas distintas, gerando uma especializao.

Obteno da 1FN
y Passos para obteno da 1FN em uma tabela

1. Escolher a chave primria definir as chaves candidatas da tabela. 2. Transformar os atributos compostos em atmicos. 3. Eliminar os atributos multivalorados, gerando uma tabela para cada um dos conjuntos de itens repetitivos. A chave primria de cada tabela ser a concatenao da chave da tabela original com um atributo da nova tabela que identifique cada linha de forma nica. Cada item repetitivo dar origem a uma linha nesta nova tabela. y O prximo passo observar se ela est tambm na 2FN

Segunda FormaNormal (2FN)


y Conceito 1: uma varivel de relao est em 2FN se, e somente se, ela est em 1FN e todo atributo no-chave irredutivelmente dependente da chave primria y Conceito 2: uma varivel de relao est em 2FN se, e somente se, ela est em 1FN e, para tabelas com chave primria composta, cada coluna no-chave depende de toda a chave, e no de apenas uma parte dela y Dica: tabelas em 1FN e com Chave Primria simples esto automaticamente em 2FN

Exemplo 2FN
y A tabela abaixo est na 1FN mas no est na 2FN y Considere a chave composta (Cod_Turma, Nome)
COD_TURMA BD1032 BD1032 BD1032 ALUNO Alice Luna Juliano Camargo Mrcio Andrade PROFESSOR Bruno Pereira Bruno Pereira Bruno Pereira SALA 101 101 101 CAPACIDADE 50 50 50 QTE_FALTAS 02 00 04

...

...

...

...

...

...

y Os atributos Professor, Sala e Capacidade dependem apenas de Cod_Turma (repetio para todos os alunos da turma)

Exemplo 2FN
y Astabelas abaixo esto em 2FN
COD_TURMA BD1032 BD1032 BD1032 ALUNO Alice Luna Juliano Camargo Mrcio Andrade QTE_FALTAS 02 00 04

...
COD_TURMA BD1032 LG1512 JV8796

...
PROFESSOR Bruno Pereira Marina Lucena Ana Barbosa SALA 101 101 101

...
CAPACIDADE 50 50 50

...

...

...

...

Processo para obteno da 2FN


y 1) Identificar as colunas que no participam da chave primria da

tabela. y 2) Para cada uma das colunas identificadas, analisar se existe dependncia parcial da chave primria. Para identificar a dependncia parcial de uma coluna em relao chave, deve-se indagar: Para que o valor da coluna seja determinado, quais as partes da chave que devem ser conhecidas? y 3) Para as colunas dependentes parcialmente da chave: Criar novas tabelas que herdaro a chave parcial e todos os atributos que dependem dessa chave parcial. Essa chave parcial ser a chave primria da tabela. Excluir da tabela original todas as colunas com dependncia parcial da chave.

Obteno da 2FN
y Passos para obteno da 2FNem uma tabela y Deixlaem 1FN y Identificar os atributos que no fazem parteda chave primria da tabela y Paracada umdesses atributos,analisar seseu valor determinado por parteou pela totalidade da chave y Criar novastabelas para os atributos parcialmente dependentes,incluindo aparteda chave correspondente,eretirlosda tabela original

Terceira FormaNormal(3FN)
y Conceito 1:uma varivel derelao est em 3FNse,e somente se,ela est em 2FNetodo atributo nochave dependente deformano transitiva da chave primria y Conceito 2:uma varivel derelao est em 3FNse,e somente se,ela est em 2FNetodo atributo nochave depende apenas da chave,eno deoutros atributos no chave y Dica:tabelas em 2FNecomnenhum ou umatributo alm da chave esto automaticamente em 3FN

Exemplo 3FN
y Atabela abaixo est em 2FN,mas no est em 3FN
COD_TURMA BD1032 LG1512 JV8796 PROFESSOR Bruno Pereira Marina Lucena Ana Barbosa SALA 101 101 101 CAPACIDADE 50 50 50

...

...

...

...

y Oatributo Capacidade depende doatributo Sala,eno da chave Cod_Turma

Processo para obteno da 3FN


y 1) Identificar as colunas que no participam da chave primria da

tabela. y 2) Para cada uma das colunas identificadas, analisar se existe dependncia transitiva da chave primria.
Para identificar a dependncia transitiva de uma coluna deve-se indagar: Qual outra coluna no pertencente chave poderia determinar o valor da coluna em anlise?

y 3) Para as colunas dependentes transitivamente da chave:


Criar novas tabelas que herdaro as colunas com dependncia transitiva e tambm a coluna determinante da transitividade. Essa coluna ser a chave primria da tabela criada. Excluir da tabela original todas as colunas com dependncia transitiva, mantendo a coluna determinante da transitividade. Excluir tambm as colunas derivadas de outras.

Obteno da 3FN
y Passos para obteno da 3FNem uma tabela y Deixlaem 2FN y Identificar os atributos que no participam da chave primria da tabela y Paracada umdesses atributos,analisar seseu valor determinado por algum outro atributo no pertencente chave primria y Criar novastabelas para os atributos que no dependem exclusivamente da chave,incluindo oatributo determinante correspondente,eretirlosda tabela original

Exemplo 3FN
y Astabelas abaixo esto em 3FN
COD_TURMA BD1032 BD1032 BD1032 ALUNO Alice Luna Juliano Camargo Mrcio Andrade QTE_FALTAS 02 00 04

...
COD_TURMA BD1032 LG1512 JV8796 PROFESSOR Bruno Pereira Marina Lucena Ana Barbosa SALA 101 101 101

...

...
SALA 101 201 301 CAPACIDADE 50 40 50

...

...

...

...

...

Regras Gerais Normalizao


y 1FN:Eliminar atributos multivalorados ou compostos y 2FN:Eliminar atributos que dependem apenas de parteda chave primria composta y 3FN:Eliminar atributos que dependem deatributos nochave

Observao
y Aumentar onvel denormalizao contribui para melhorar aqualidade doprojeto dobanco dedados y Geralmentenormalizamosat a3FN.

Exerccio
y Atabela abaixo representa asvendas numa loja deCDs. Considerando asformas normais vistas(1FN,2FNe3FN), indicar quais so atendidas pelo projeto.Caso alguma delas no seja atendida,identifique oproblema eproponha asmudanas necessrias.
Chave composta CLIENTE COD_CD 215621 Alice Nbrega 878650 Tom Jobim

TABELA VENDAS
CANTOR Marisa Monte MUSICA Beija Eu Chocolate Corcovado Sabi DURACAO 2:20 3:05 2:50 2:10 PRECO R$ 20,00 21/03/2003 R$ 25,00 DATA_COMPRA

...

...

...

...

...

...

...

Soluo 1FN
y Atabela Vendas no est na 1FN,pois h vrios atributos no atmicos y Paradeixlaem 1FN, preciso dividir esses atributos em linhas
TABELA VENDAS
CLIENTE Alice Nbrega Alice Nbrega Alice Nbrega Alice Nbrega COD_CD 215621 215621 878650 878650 CANTOR Marisa Monte Marisa Monte Tom Jobim Tom Jobim MUSICA Beija Eu Chocolate Corcovado Sabi DURACAO 2:20 3:05 2:50 2:10 PRECO R$ 20,00 R$ 20,00 R$ 25,00 R$ 25,00 DATA_COMPRA 21/03/2003 21/03/2003 21/03/2003 21/03/2003

...

...

...

...

...

...

...

Soluo 2FN
y Atabela Vendas no est na 2FN,pois h atributos que dependem apenas departeda chave primria composta y Paradeixlaem 2FN, preciso criar uma novatabela
CLIENTE COD_CD 215621 878650 DATA_COMPRA 21/03/2003 21/03/2003

TABELA VENDAS

Alice Nbrega Alice Nbrega

...
COD_CD CANTOR Marisa Monte Marisa Monte Tom Jobim Tom Jobim 215621 215621 878650 878650

...
MUSICA Beija Eu Chocolate Corcovado Sabi

...
DURACAO 2:20 3:05 2:50 2:10 PRECO R$ 20,00 R$ 20,00 R$ 25,00 R$ 25,00

TABELA CDs

Soluo 3FN
y Atabela CDsno est na 3FN,pois h atributos que dependem deatributos nochave y Paradeixlaem 3FN, preciso criar uma novatabela
TABELA CDs
COD_CD 215621 215621 878650 878650 CANTOR Marisa Monte Marisa Monte Tom Jobim Tom Jobim MUSICA Beija Eu Chocolate Corcovado Sabi PRECO R$ 20,00 R$ 20,00 R$ 25,00 R$ 25,00

TABELA MUSICAS
MUSICA Beija Eu Chocolate Corcovado Sabi DURACAO 2:20 3:05 2:50 2:10

Observao
y Veja que astabelas Vendas,CDseMusicas j esto em 3FN,mas ainda apresentam algumas redundncias desnecessrias y Cliente eData_Compra na tabela Vendas y Cod_CD,CantorePreco na tabela CDs y Pararesolveresses problemas,seria necessrio aplicar outras formas normais

Exerccio
y Atabela abaixo representa os pedidos deprodutos desoftware para uma loja eno obedece nenhuma dasformas normais vistas(1FN,2FNe3FN).Indique os passos para deixlaem cada uma dessas formas normais.
TABELA PEDIDOS
NUM_PEDIDO DATA FORNECEDOR CNPJ ENDERECO COD_PRODUTO NOME QUANT PRECO

003 004

20/01/03 27/01/03

CasaSoftware BrasilSoftware

8888 5555

R. Lapa, 77 Al. It, 49

033A 002M 145J 002M 083P 145J

DOS Corel ABC Corel ZAPT ABC

04 01 13 02 10 50

R$ 130 R$ 499 R$ 256 R$ 450 R$ 85 R$ 110

...

...

...

...

...

...

...

...

...

Soluo 1FN
y Paradeixar atabela em 1FN, preciso dividir os atributos no atmicos em linhas y Achave da tabela composta por Num_Pedido eCod_Produto
TABELA PEDIDOS
NUM_PEDIDO DATA FORNECEDOR CNPJ ENDERECO COD_PRODUTO NOME QUANT PRECO

003 003 003 004 004 004

20/01/03 20/01/03 20/01/03 27/01/03 27/01/03 27/01/03

CasaSoftware CasaSoftware CasaSoftware BrasilSoftware BrasilSoftware BrasilSoftware

8888 8888 8888 5555 5555 5555

R. Lapa, 77 R. Lapa, 77 R. Lapa, 77 Al. It, 49 Al. It, 49 Al. It, 49

033A 002M 145J 002M 083P 145J

DOS Corel ABC Corel ZAPT ABC

04 01 13 02 10 50

R$ 130 R$ 499 R$ 256 R$ 450 R$ 85 R$ 110

...

...

...

...

...

...

...

...

...

Soluo 2FN
y Paradeixar atabela em 2FN, preciso criar novas tabelas para os atributos que dependem apenas de parteda chave primria composta y Data,Fornecedor,CNPJeEndereco dependem apenas deNum_Pedido y Nomedepende apenas deCod_Produto y Quantidade ePreco dependem da chave composta

TABELA PEDIDOS
NUM_PEDIDO COD_PRODUTO QUANT PRECO

TABELA PRODUTOS
COD_PRODUTO NOME

003 003 003 004 004 004

033A 002M 145J 002M 083P 145J

04 01 13 02 10 50

R$ 130 R$ 499 R$ 256 R$ 450 R$ 85 R$ 110

033A 002M 145J 083P

DOS Corel ABC ZAPT

TABELA DADOS_PEDIDOS
NUM_PEDIDO DATA FORNECEDOR CNPJ ENDERECO

003 004

20/01/03 27/01/03

CasaSoftware BrasilSoftware

8888 5555

R. Lapa, 77 Al. It, 49

Soluo 3FN
y Paradeixar astabelas em 3FN, preciso criar novas tabelas para os atributos dependentes deatributos nochave y CNPJeEndereco dependem deFornecedor

TABELA PEDIDOS
NUM_PEDIDO COD_PRODUTO QUANT PRECO

TABELA PRODUTOS
COD_PRODUTO NOME

003 003 003 004 004 004

033A 002M 145J 002M 083P 145J

04 01 13 02 10 50

R$ 130 R$ 499 R$ 256 R$ 450 R$ 85 R$ 110

033A 002M 145J 083P

DOS Corel ABC ZAPT

TABELA DADOS_PEDIDOS
NUM_PEDIDO DATA CNPJ

TABELA FORNECEDORES
CNPJ FORNECEDOR ENDERECO

003 004

20/01/03 27/01/03

8888 5555

8888 5555

CasaSoftware BrasilSoftware

R. Lapa, 77 Al. It, 49

Você também pode gostar