Sei sulla pagina 1di 47

(Normalizao / Engenharia reversa)

Prof. Gilberto Iraj Mller


ltima atualizao 3/4/2011

Banco de Dados I

Engenharia Reversa

Engenharia Reversa
Normalizao
Processo que transforma um esquema de dados qualquer em um modelo relacional

Normalizao executada para todos esquemas de documentos disponveis

Normalizao
Objetivos
Eliminar redundncias de dados Eliminar estruturas inexistentes (atributos multivalorados) Eliminar anomalias
Insero Deleo Alterao

Normalizao
Esquema de normalizao

Normalizao
Documento Exemplo

Normalizao
Primeiro passo

Tabela no-normalizada Tabela no-primeira-forma-normal Possui uma ou mais tabelas aninhadas Utilizaremos a notao N

Tabela aninhada
Coluna que, ao invs de conter valores atmicos, contm
tabelas aninhadas Grupo repetido Coluna multi-valorada Coluna no-atmica

Normalizao
Exemplo de tabela N com tabela aninhada

Esquema
Proj(CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl))

Normalizao
H diversas formas normais, cada vez
mais rgidas, para verificar tabelas relacionais: primeira forma normal (1FN), segunda forma normal (2FN), terceira forma normal (3FN), forma normal de Boyce-Codd (FNBC), quarta forma normal (4FN), quinta forma normal (5FN).

Normalizao
Representao grfica da normalizao

Normalizao
Conceito para cada forma normal

Normalizao (1FN)

Normalizao (1FN)
Primeira forma normal (1FN)
Uma tabela est na primeira forma normal, quando ela no
contm tabelas aninhadas No possui colunas multi-valoradas (apenas colunas simples e indivisveis)

Existem duas maneiras:


Construir uma tabela nica com redundncia de dados
a correta Construir uma tabela para cada tabela aninhada Podem ser perdidas as relaes entre os dados (iremos utilizar
essa notao para entender o esquema de normalizao)

Normalizao (1FN)
Exemplo de 1FN utilizando uma tabela
nica com redundncia de dados

Normalizao (1FN)
Exemplo de 1FN utilizando uma tabela
para cada tabela aninhada considerando sua chave primria, bem como as colunas de cada tabela

Normalizao (1FN)
Utilizando o segundo mtodo, obtemos:

Normalizao (1FN)
Tabelas aps a 1FN

Normalizao (1FN)
Exerccio 5.1

Exerccio 5.2

Normalizao (2FN e 3FN)


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

Normalizao (2FN e 3FN)

Dependncia funcional

Observe o conjunto: Existe uma dependncia entre os valores dos conjuntos, que pode ser expressa pela funo f(CPF)=nome. Ou seja, nome funo do CPF, ou seja, se existir um nmero de CPF, ser encontrado o nome da pessoa correspondente. Esta dependncia expressa no Modelo Relacional da seguinte maneira: CPF -> NOME Com um nmero de CPF possvel encontrar o nome da pessoa, ou ainda: nome depende funcionalmente do CPF.

Normalizao (2FN e 3FN)


Dependncia funcional
Separao A -> BC, ento, A -> B e A -> C

Exemplo: Com o CPF, encontra-se o nome e o endereo, ou seja, posso encontrar somente o nome ou somente o endereo

Normalizao (2FN e 3FN)


Dependncia funcional
Acumulao A -> B, ento, AC -> B

Exemplo: Com o CPF, encontra-se o endereo, ento, com o CPF mais a idade, encontra-se o endereo tambm.

Normalizao (2FN e 3FN)


Dependncia funcional
Transitividade A -> B e B -> C, ento, A -> C

Exemplo: CPF -> CodCidade e CodCidade -> NomeCidade, ento, CPF -> NomeCidade

Normalizao (2FN e 3FN)


Dependncia funcional
Pseudo-Transitividade A -> B e BC -> D, ento, AC -> D

Exemplo: CPF -> CodFuncionrio e CodFuncionario, ms -> SalrioFuncio, ento, CPF, ms -> SalrioFuncio

Normalizao (2FN e 3FN)


Dependncia funcional parcial
Uma dependncia (funcional) parcial ocorre
quando uma coluna depende apenas de parte de uma chave primria composta

Normalizao (2FN)

Normalizao (2FN)
Segunda forma normal (2FN)
Uma tabela encontra-se na segunda forma
normal, quando, alm de estar na 1FN, no contm dependncias parciais.

Normalizao (2FN)
Dependncia Funcional Parcial

Dependncia Funcional

Normalizao (2FN)
Passagem 2FN

Tabelas com apenas uma coluna de chave primria ou todas


as colunas fazem parte da chave primria j est na 2FN

Normalizao (2FN)
Tabelas aps a 2FN

Normalizao (3FN)

Normalizao (3FN)
Terceira forma normal (3FN)
Uma tabela encontra-se na terceira forma normal, quando, alm de estar na 2FN, no contm dependncias transitivas.

Normalizao (3FN)

Normalizao (3FN)

Normalizao (3FN)

Exemplo Normalizado

Exemplo Normalizado
Tabelas aps a 3FN

Normalizao
Para a maioria dos documentos e
arquivos: A decomposio at a 3FN suficiente Na literatura, aparecem outras formas
normais:
FNBC (Forma normal de Boyce/Codd). Utiliza a
Chave candidata. Substitui a 3FN (no abordaremos!) 4FN 5FN

Normalizao (4FN)
Dever estar na 3FN e as dependncias
multivaloradas dependem da chave

3FN ou FNBC

Normalizao (4FN)
Resoluo intuitiva

Normalizao (5FN)
De forma simplificada, pode-se dizer que uma relao
est em quinta forma normal quando seu contedo no pode ser reconstitudo a partir de vrias outras tabelas

Se um vendedor vende um certo tipo de veculo e ele representa o

fabricante daquele tipo de veculo, ento ele vende aquele tipo de veculo para aquele fabricante (regra de simetria), a relao acima pode ser decomposta em trs outras relaes, e portanto no est na 5NF.

Normalizao (5FN)
Transformando em 5FN,
teremos:

As relaes ao lado no
podem ser decompostas, estando assim na 5NF. Para recompor a mesma informao sero necessrios as trs relaes.

Normalizao (4FN e 5FN)


A 5NF trata de fatos multivalorados
dependentes, enquanto que a 4NF trata de fatos independentes

A 4NF decompe uma relao aos pares

(substitui uma relao por duas de suas projees em pares), enquanto que a 5NF utilizada quando uma decomposio aos pares no possvel, como no caso anterior (a relao foi decomposta em trs outras, sem perdas)

Desnormalizao
Juno de tabelas de forma a melhorar o
desempenho ao acesso dos dados

Exemplo: Data warehouse Realiza consultas de forma transparente; isto

, ele no precisa saber o nome de tabelas de ndices, ou tabelas intermedirias, resultantes da normalizao

Normalizao
Exerccio 5.3. Normalizar
N paciente (nro_paciente, nome_paciente, nro_quarto, descrio_quarto, nro_cmodos_quarto, (cod_mdico, nome_mdico, fone_mdico)) N aluno (nro_aluno, nome_aluno, nro_crditos, nro_depto, nome_depto, (nro_curso, descrio_curso, ano_ingresso))

Normalizao
Exerccio 5.4. Normalizar
Congresso: rea: DB25 Advances in Database Systems GT3.1 Database Systems GT3.3 Database Conceptual Modeling Cd. Artigo 1 2 3 4 5 Congresso: rea: Cd. Artigo 1 Ttulo Integrao em BD Segurana Dinmica Mtodos de agrupamento Otimizao eDesempenho DB O.O. Assunto Cd. Autor Nome autor Wen-Suan Li Chris Clit N.B. Idris W.A. Gray R. Chuch Raymond Ng Jiawey Han Kurt Brown Janet Wiene

BDs Hete-rogneos 2 BDs Hete-rogneos 4 21 BDs Espaciais 7 32 12 Otimizao 14 36 Orientao a objeto 1

OO03 Objected Oriented Modeling GT4.6 Engenharia de Software Ttulo Assunto Cd. Autor 2 Nome autor Wen-Suan Li

Aspectos temporais Modelagem temporal

Referncias Bibliogrficas

HEUSER, Carlos Alberto. Projeto de Banco de Dados. Porto Alegre: Sagra Luzzatto, 2001. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistemas de Banco de Dados. 3. Ed. So Paulo: Makron Books, 1999. DATE, C. J. Introduo aos Sistemas de Bancos de Dados . Rio de Janeiro: Campus, 2004. Professor Marco A. Casanova. http://www.inf.puc-rio.br/~casanova/ Professora Ligia Flvia Antunes Batista. Material sobre Normalizao

Potrebbero piacerti anche