Você está na página 1de 7

Normalizao de dados

Normalizao de dados
A normalizao de dados uma srie de passos que se seguem no projeto de um banco de dados, que permitem um armazenamento consistente e um eficiente acesso aos dados em bancos de dados relacionais. Esses passos reduzem a redundncia de dados e as chances dos dados se tornarem inconsistentes. No entanto, muitos SGBDs relacionais no tm separao suficiente entre o projeto lgico da base de dados e a implementao fsica do banco de dados, e isso tem como consequncia que as consultas feitas a um banco de dados totalmente normalizado tm um mau desempenho. Nestes casos, usa-se por vezes a desnormalizao para melhorar o desempenho, com o custo de menores garantias de consistncia.

Panormica informal
Diz-se que uma tabela num banco de dados relacional est numa certa forma normal se satisfaz certas condies. O trabalho original de Edgar F. Codd definiu trs dessas formas, mas existem hoje outras formas normais geralmente aceitas. Damos aqui uma curta panormica informal das mais comuns. Cada forma normal listada abaixo representa uma condio mais forte que a precede na lista. Para a maioria dos efeitos prticos, considera-se que as bases de dados esto normalizadas se aderirem terceira forma normal. Primeira Forma Normal (ou 1FN) requer que todos os valores de colunas em uma tabela sejam atmicos (ex., um nmero um tomo, enquanto uma lista ou um conjunto no o so). A normalizao para a primeira forma normal elimina grupos repetidos, pondo-os cada um em uma tabela separada, conectando-os com uma chave primria ou estrangeira. Segunda Forma Normal (ou 2FN) requer que no haja dependncia funcional no-trivial de um atributo que no seja a chave, em parte da chave candidata. Terceira Forma Normal (ou 3FN) requer no haver dependncias funcionais no-triviais de atributos que no sejam chave, em qualquer coisa exceto um superconjunto de uma chave candidata. Forma Normal de Boyce-Codd (ou BCNF) requer que no exista nenhuma dependncia funcional no-trivial de atributos em algo mais do que um superconjunto de uma chave candidata. Neste estgio, todos os atributos so dependentes de uma chave, de uma chave inteira e de nada mais que uma chave (excluindo dependncias triviais, como AA). Quarta Forma Normal (ou 4FN) requer que no exista nenhuma dependncia multi-valorada no-trivial de conjuntos de atributo em algo mais de que um superconjunto de uma chave candidata. Quinta Forma Normal (ou 5FN ou PJ/NF) requer que no exista dependncias de joins no triviais que no venham de restries chave. Domain-Key Normal Form (ou DK/NF) requer que todas as restries sigam os domnios e restries chave.

Viso Formal
Antes de falar sobre normalizao, necessrio utilizar alguns termos a partir do modelo relacional e defini-los na teoria de conjuntos. Estas definies muitas vezes sero simplificaes de seus significados originais, uma vez que somente alguns aspectos do modelo relacional so levados em considerao na normalizao. As notaes bsicas utilizadas no modelo relacional so nomes de relacionamentos e nomes de atributos, representados por cadeias de caracteres tais como Pessoas e Nomes; geralmente so utilizadas variveis como r, s, t, e a, b, c para o conjunto dados definido sobre eles. Outra notao bsica o conjunto de valores atmicos que contm valores tais como nmeros e cadeias de caracteres. A primeira definio de interesse a noo de tupla, que formaliza a noo de linha ou registro em uma tabela:

Normalizao de dados Def. Uma tupla uma funo parcial de nomes de atributos para valores atmicos. Def. Um cabealho um conjunto finito de nomes de atributos. Def. A projeo de uma tupla t em um conjunto finito de atributos A t[A] = { (a, v): (a, v) t, a A }. A prxima definio a de relao na qual formaliza-se o teor de uma tabela como ele definido no modelo relacional. Def. Uma relao uma tupla (H, B) sendo H, o cabealho, um cabealho e B, o corpo, um conjunto de tuplas em que possuem todas o domnio H. Como uma relao corresponde definitivamente com aquela que usualmente chamada de extenso de um predicado em lgica de primeira ordem exceto que aqui ns identificamos os locais no predicado com nomes de atributos. Geralmente no modelo relacional um esquema de banco de dados dito consistir-se de um conjunto de nomes relao, os cabealhos que so associados com esses nomes e as restries que devem manter toda instncia do esquema de banco de dados. Para normalizao ns nos concentraremos nas restries que indicam relaes individuais, isto , as restries relacionais. O propsito destas restries descrever o universo relacional, ou seja, o conjunto de todas as relaes que so permitidas para serem associadas com certos nomes de relao. Def. Um universo relacional U sobre um cabealho H um conjunto no vazio de relaes com o cabealho H. Def. Um esquema relacional (H, C) consiste de um cabealho H e um predicado C(R) que definido por todas as relaes R com o cabealho H. Def. Uma relao satisfaz o esquema relacional (H, C) se possuir o cabealho H e satisfizer C.

Restries Chave e Dependncias Funcionais


A restrio relacional mais importante a restrio de Chave. Ela relaciona cada registro (tupla) a um (ou mais) valor ndice. Def. Uma Chave um atributo que identifica um registro(tupla).

Objetivos de normalizao
Um objetivo bsico da primeira forma normal, definida por Codd em 1970, era permitir dados serem questionados e manipulados usando uma "sub-linguagem de dados universal" atrelada lgica de primeira ordem. Questionando e manipulando dados em uma estrutura de dados no normalizada, como a seguinte representao no-1NF de transaes de clientes de carto de crdito, envolve mais complexidade que realmente necessrio: Cliente Joo Wilson Mrcio Transao _Tr. ID____Date____________Amt.
12890 12904 14 de outubro de 2003 15 de outubro de 2003 -87 -50

12898

14 de outubro de 2003

-21

Normalizao de dados

12907 14920 15003

15 de outubro de 2003 20 de novembro de 2003 27 de novembro de 2003

-18 -70 -60

Para cada cliente corresponde um grupo repetitivo de transaes. A anlise automatizada de transao envolve dois estgios: 1. Desempacotar um ou mais grupos de clientes de transaes permitindo transaes individuais serem agrupadas para exame, e 2. Derivar o resultado de uma consulta em resultados do primeiro estgio. Por exemplo, para encontrar a soma monetria de todas as transaes que ocorreram em outubro de 2003 para todos os clientes, o sistema necessitaria saber primeiro que precisa desempacotar o grupo de transaes para cada cliente, ento somar a quantidade de todas as transaes de outubro de 2003. Um das vises mais importantes de Codd foi que a complexidade desta estrutura poderia sempre ser removida completamente, levando a um poder e flexibilidade muito maior na forma de efetuar consultas. A normalizao equivalente da estrutura acima seria assim:

Transaes de clientes de carto de crdito


Cliente ID da transao Joo Joo 12890 12904 Data 14 de outubro de 2003 15 de outubro de 2003 14 de outubro de 2003 15 de outubro de 2003 Valor -87 -50 -21 -18

Wilson 12898 Mrcio 12907 Mrcio 14920 Mrcio 15003

20 de novembro de 2003 -70 27 de novembro de 2003 -60

Agora cada linha representa uma transao individual, e um SGBD pode obter a resposta, simplesmente encontrando todas as linhas com data de outubro, somando ento os valores.

Formas Normais
Primeira Forma Normal
Definio Uma tabela est na 1FN, se e somente se, no possuir atributos multivalorados. (note que relacionamentos, como definidos acima, esto necessariamente na 1FN) Uma relao est na 1FN quando todos os atributos da relao estiverem baseados em um domnio simples, no contendo grupos ou valores repetidos[]. Definir relaes NFNF como transformar relaes NFNF (tambm chamadas relaes UNF) em relaes 1FN como transformar as restries chave de relaes aninhadas como transformar as dependncias funcionais de relaes aninhadas Passagem 1FN Gerar uma nica tabela com colunas simples Chave primria: id de cada tabela aninhada

Normalizao de dados Exemplo Projetos(codp, tipo, descrio, code, nome, categ, salrio, data_incio, tempo_aloc) Outra forma de identificar se a tabela no est na 1FN verificando se existe tabela aninhadas, ou seja, mais de um registro para uma chave primria. Observe o exemplo: Considere um Pedido nmero 00001, para este pedido se observarmos o formulrio em papel teremos muitos campos a considerar, contudo usaremos apenas alguns para facilitar o entendimento. PEDIDOS = {COD_PEDIDO + CLIENTE + VENDEDOR + ATENDENTE + PRODUTO + QUANT + VALOR} Neste momento devemos idealizar o pedido nmero: 00001 e efetuar os seguintes testes: {COD_PEDIDO | CLIENTE | VENDEDOR | ATENDENTE | PRODUTO | QUANT | VALOR} {00001 | "DOUGLAS TYBEL"| "MARCO"| "JOAO" | "TENIS " | "1" | "50.00"} {00001 | "DOUGLAS TYBEL"| "MARCO"| "JOAO" | "SANDALIA" | "2" | "80.00"} {00001 | "DOUGLAS TYBEL"| "MARCO"| "JOAO" | "CARTEIRA" | "1" | "35.00"} Observe que para os dados do pedido 00001 lanados acima, apenas os atributos que esto em negrito SO NICOS, pois no se diferem. Os demais atributos mudam, no cumprindo a 1FN onde os atributos devem ser atmicos, quer dizer nicos. Para testarmos um dos atributos e ter certeza que este atmico, podemos efetuar uma pergunta conforme o exemplo abaixo: Podemos ter outro cliente para o pedido 00001 ? = No. Podemos ter apenas 1 cliente por pedido, sendo assim este atributo atmico nico para 1 pedido. Podemos ter outro vendedor para o pedido 00001 ? = No. Podemos ter apenas 1 vendedor por pedido. Podemos ter outro produto para o pedido 00001 ? = Sim. Podemos ter vrios produtos para um pedido, sendo assim, os campos aninhados devem ser extrados para outra tabela. Problemas Redundncia; Anomalias de Atualizao.

Segunda Forma Normal


Definio Uma relao est na 2FN se, e somente se, estiver na 1FN e cada atributo no-chave for dependente da chave primria inteira, isto , cada atributo no-chave no poder ser dependente de apenas parte da chave. No caso de tabelas com chave primria composta, se um atributo depende apenas de uma parte da chave primria, ento esse atributo deve ser colocado em outra tabela. Passagem 2FN Gerao de novas tabelas com DFs completas. Anlise de dependncias funcionais: tipo e descrio dependem de codp; nome, categ e salrio dependem de code; data_incio e tempo_aloc dependem de toda a chave. Resultado Projetos(codp, tipo, descrio) Empregados(code, nome, categ, salrio)

Normalizao de dados ProjEmp(codp, code, data_incio, tempo_aloc) Concluses Maior independncia de dados (no h mais repetio de empregados por projeto, por exemplo); Redundncias e anomalias: dependncias funcionais indiretas.

Terceira Forma Normal


Definio Uma relao R est na 3FN, se estiver na 2FN e cada atributo no-chave de R no possuir dependncia transitiva, para cada chave candidata de R. Passagem 3FN Gerao de novas tabelas com DF diretas Anlise de dependncias funcionais entre atributos no chave: salrio depende funcionalmente de categ. Resultado Projetos(codp, tipo, descrio) Empregados(code, nome, categ) Categorias(categ, salrio) ProjEmp(codp, code, data_incio, tempo_aloc) Concluses Maior independncia de dados; 3FN gera representaes lgicas finais na maioria das vezes; Redundncias e anomalias: dependncias funcionais multivaloradas.

Forma Normal De Boyce-Codd


Definio Uma tabela est na BCNF se e somente se estiver na 3FN e todo atributo no chave depender funcionalmente diretamente da chave primria, ou seja, no h dependncias entre atributos no chave. Exemplo Como transformar da 3NF para BCNF Nem sempre pode ser alcanada preservando a dependncia.

Quarta Forma Normal


Definio Uma tabela est na 4FN, se e somente se, estiver na 3FN e no existirem dependncias multivaloradas. Exemplo (base de dados sobre livros)
Relao no normalizada: Livros(nrol, (autor), ttulo, (assunto), editora, cid_edit, ano_public)

1FN: Livros(nrol, autor, assunto, ttulo, editora, cid_edit, ano_public) 2FN: Livros(nrol, ttulo, editora, cid-edit, ano_public) AutAssLiv(nrol, autor, assunto)

Normalizao de dados 3FN: Livros(nrol, ttulo, editora, ano_public) Editoras(editora, cid-edit) AutAssLiv(nrol, autor, assunto) Na 3FN, a base de dados ainda apresenta os seguintes problemas: Redundncia para representar todas as informaes; Representao no-uniforme (repete alguns elementos ou posies nulas). Passagem 4FN Gerao de novas tabelas, eliminando dependncias multivaloradas; Anlise de dependncias multivaloradas entre atributos: autor, assunto Dependncia multivalorada de nrol. Resultado Livros(nrol, ttulo, editora, ano_public) Editoras(editora, cid-edit) AutLiv(nrol, autor) AssLiv(nrol, assunto)

Quinta Forma Normal


Est ligada noo de dependncia de juno. Se uma relao decomposta em vrias relaes e a reconstruo no possvel pela juno das outras relaes, dizemos que existe uma dependncia de juno. Existem tabelas na 4FN que no podem ser divididas em duas relaes sem que se altere os dados originais. Exemplo: Sejam as relaes R1(CodEmp, CodPrj) e R2(CodEmp, Papel) a decomposio da relao ProjetoRecurso(CodEmp, CodPrj, Papel). exemplo Da 4FN para a 5NF Explanao de que a ltima forma normal pode ser alcanada com projees

Forma Normal Chave-Domnio


Definio

Outras dependencias
dependncias encapsuladas dependencias como blocos em lgica de primeira ordem

Fontes e Editores da Pgina

Fontes e Editores da Pgina


Normalizao de dados Fonte: http://pt.wikipedia.org/w/index.php?oldid=35952797 Contribuidores: Alchimista, Andrepedro, Bjverde, Bons, Cartola, Cassiomfernandes, Celia Duarte, Colaborador Z, Douglas Tybel, Dwandarti, E2mb0t, FelipeVargasRigo, Fredmaranhao, GRS73, Gbouzon, Get It, Hyju, Jcmo, Jorge, Joo Carvalho, Leandromartinez, Lechatjaune, Lijealso, Lleandro, Lusitana, Lpton, Manuel Anastcio, Marcos Elias de Oliveira Jnior, Mcbaras, Mr.gildo, OS2Warp, Osias, PauloColacino, Profvalente, QuarkAWB, Rei-artur, Reynaldo, Rui Silva, Stego, Stuckkey, Teles, 233 edies annimas

Licena
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/