You are on page 1of 4

ACC2000: Conceitos bsicos de normalizao de bases de dados

http://support.microsoft.com/kb/209534/pt

Artigo: 209534 - ltima reviso: tera-feira, 15 de Abril de 2003 - Reviso: 1.0

ACC2000: Conceitos bsicos de normalizao de bases de dados


Este artigo foi publicado anteriormente em PT209534 Inexperiente: Requer conhecimento da interface de utilizador em computadores individuais.

Sumrio

Este artigo explica as noes bsicas da terminologia de normalizao de bases de dados para utilizadores inexperientes. A compreenso bsica desta terminologia pode ser til para a discusso do projecto de uma base de dados relacional. NOTA: A Microsoft tambm disponibiliza uma WebCast que explica as noes bsicas de normalizao de bases de dados. Para visualizar esta WebCast, visite o seguinte Web site da Microsoft: http://support.microsoft.com/servicedesks/webcasts/wc060600/wc060600.asp?fr=1 (http://support.microsoft.com
/?scid=http%3a%2f%2fsupport.microsoft.com%2fservicedesks%2fwebcasts%2fwc060600%2fwc060600.asp%3ffr%3d1)

NOTA: Para

visualizar estas informaes para uma verso anterior do Microsoft Access, consulte o seguinte artigo na Microsoft Knowledge Base: 100139 (http://support.microsoft.com/kb/100139/ ) ACC: Conceitos bsicos de normalizao de bases de dados
Mais Informao

Descrio de normalizao
Normalizao o processo de organizar dados numa base de dados. Este processo envolve a criao de tabelas e o estabelecimentos de relaes entre essas tabelas, de acordo com regras concebidas para proteger os dados e para tornar a base de dados mais flexvel, atravs da eliminao da redundncia e da dependncia inconsistente. Os dados redundantes desperdiam espao em disco e criam problemas de manuteno. Se necessrio alterar dados que existem em mais do que um local, esses dados tm de ser alterados exactamente do mesmo modo em todos os locais. Uma alterao de morada de um cliente muito mais fcil de implementar se esses dados estiverem apenas armazenados na tabela Clientes e em mais nenhum local da base de dados. O que uma "dependncia inconsistente"? Apesar de ser intuitivo para um utilizador procurar o endereo de um determinado cliente na tabela Clientes, poder no fazer sentido procurar, nessa tabela, o salrio do funcionrio que trabalha com esse cliente. O salrio do funcionrio est relacionado com o (ou depende do) funcionrio, pelo que deve ser movido para a tabela Funcionrios. As dependncias inconsistentes podem dificultar o acesso aos dados, visto que o caminho para localizar os dados pode estar em falta ou interrompido. Existem algumas regras para a normalizao de bases de dados. Cada regra chamada "formula normal". Se a primeira regra respeitada, diz-se que a base de dados est na "primeira formula normal". Se as trs primeiras regras so observadas, considera-se que a base de dados est na "terceira formula normal". Apesar de ser possvel existirem outros nveis de normalizao, considera-se que a terceira formula normal corresponde ao nvel mais alto necessrio para a maior parte das aplicaes. Tal como acontece com outras regras e especificaes formais, os cenrios reais nem sempre permitem uma concordncia exacta. De um modo geral, a normalizao requer mais tabelas e alguns clientes acham este procedimento confuso. Se decidir violar uma das trs primeiras regras da normalizao, certifique-se de que a sua aplicao antecipa quaisquer problemas que possam ocorrer, tais como a existncia de dados redundantes e dependncias inconsistentes. As descries seguintes incluem exemplos.

Primeira formula normal


Eliminar grupos repetitivos em tabelas individuais. Criar uma tabela separada para cada conjunto de dados relacionados. Identificar cada conjunto de dados relacionados com uma chave primria. No utilizar mltiplos campos numa s tabela para armazenar dados semelhantes. Por exemplo, para controlar um item de inventrio que pode ser proveniente de duas origens possveis, um registo de inventrio pode conter campos para

1 of 4

25-02-2011 16:24

ACC2000: Conceitos bsicos de normalizao de bases de dados

http://support.microsoft.com/kb/209534/pt

Cdigo de fornecedor 1 e Cdigo de fornecedor 2. O que ir acontecer se adicionar um terceiro fornecedor? Adicionar um campo no a resposta; requer modificaes ao programa e s tabelas e no acomoda suavemente um nmero dinmico de fornecedores. Em vez disso, todas as informaes sobre os fornecedores devem ser colocadas numa tabela chamada Fornecedores; em seguida, o inventrio deve ser ligado ao fornecedores atravs de uma chave de nmero de item ou os fornecedores devem ser ligados ao inventrio atravs de uma chave de cdigo de fornecedor.

Segunda formula normal


Criar tabelas separadas para conjuntos de valores que so aplicveis a mltiplos registos. Relacionar estas tabelas com uma chave externa. Os registos s devem depender da chave primria de uma tabela (uma chave composta, se for necessrio). Por exemplo, vamos tomar em considerao o endereo de um cliente num sistema contabilstico. O endereo requerido pela tabela Clientes, mas tambm pelas tabelas Encomendas, Expedio, Contas a receber e Conjuntos. Em vez de armazenar o endereo do cliente sob a forma de uma entrada separada em cada uma destas tabelas, armazene-o num s local, quer seja na tabela Clientes quer numa tabela Endereos separada.

Terceira formula normal


Eliminar campos que no dependam da chave. Os valores existentes num registo que no fazem parte da chave desse registo no devem estar na tabela. De um modo geral, sempre que o contedo de um grupo de campos pode ser aplicado a mais do que um registo da tabela, deve pensar em colocar esses campos numa tabela separada. Por exemplo, numa tabela Recrutamento de funcionrios possvel incluir o nome e o endereo da universidade dos candidatos. No entanto, necessria uma lista completa de universidades para o envio de mailings. Se as informaes sobre as universidades estiverem armazenadas na tabela Candidatos, no existe nenhuma maneira de listar as universidades sem candidatos actuais. Neste caso, deve ser criada uma tabela Universidades separada e lig-la tabela Candidatos atravs de uma chave de cdigo de universidade. Excepo: A concordncia com a terceira formula normal, apesar de ser teoricamente desejvel, nem sempre prtica. Se tiver uma tabela Clientes e pretender eliminar todas as dependncias possveis entre campos, tem de criar tabelas separadas para cidades, cdigos postais, representantes de vendas, classes de clientes e qualquer outro factor que possa ser duplicado em mltiplos registos. Teoricamente, a normalizao um objectivo a atingir. No entanto, a existncia de muitas tabelas pequenas pode diminuir o desempenho ou exceder as capacidades de nmero de ficheiros abertos e de memria. Pode ser mais prtico aplicar a terceira formula normal apenas aos dados que sejam frequentemente alterados. Se permanecerem alguns campos dependentes, conceba a sua aplicao de modo a requerer que o utilizador verifique todos os campos relacionados quando apenas um campo alterado.

Outras formulas de normalizao


Existe uma quarta formula normal, tambm chamado BCNF (Boyce Codd Normal Form), e uma quinta formula normal, mas so raramente tidos em considerao na concepo prtica de uma base de dados. O facto de estas regras serem ignoradas pode produzir uma base de dados menos perfeita mas no deve afectar o respectivo desempenho.

Normalizar uma tabela de exemplo


Estes passos demonstram o processo de normalizao de uma tabela de estudantes fictcia. 1. Tabela no normalizada: 1022 Chaves 412 101-07 143-01 159-02 4123 Silva 216 201-01 211-02 214-01

2. Primeira formula normal: Eliminar os grupos repetitivos As tabelas s devem ter duas dimenses. Visto que um estudante tem vrias aulas, estas aulas devem ser listadas numa tabela separada. Os campos Aula1, Aula2 e Aula3 dos registos acima apresentados so indicaes de problemas de concepo da tabela.

2 of 4

25-02-2011 16:24

ACC2000: Conceitos bsicos de normalizao de bases de dados

http://support.microsoft.com/kb/209534/pt

As folhas de clculo utilizam frequentemente a terceira dimenso, mas as tabelas no o devem fazer. Outro modo de observar este problema atravs de uma relao um-para-muitos, onde o lado do um e o lado do muitos no so colocados na mesma tabela. Em vez disso, crie outra tabela na Primeira formula normal atravs da eliminao do gripo repetitivo (N. Aula), conforme ilustrado abaixo: 1022 Chaves 412 101-07 1022 Chaves 412 143-01 1022 Chaves 412 159-02 4123 Silva 4123 Silva 4123 Silva 216 201-01 216 211-02 216 214-01

3. Segunda formula normal: Eliminar os dados redundantes Repare nos mltiplos valores de N. aula relativos a cada N. Est. na tabela acima. N. aula no funcionalmente dependente de N. est. (chave primria), pelo que esta relao no se enquadra na segunda formula normal. As duas tabelas seguintes demonstram a segunda formula normal: Estudantes: 1022 Chaves 412 4123 Silva 216

Registo: 1022 101-07 1022 143-01 1022 159-02 4123 201-01 4123 211-02 4123 214-01 4. Terceira formula normal: Eliminar os dados que no dependam da chave No ltimo exemplo, Sala cons. (o nmero da sala do conselheiro) funcionalmente dependente do atributo Cons.. A soluo mover esse atributo da tabela Estudantes para a tabela Faculdade, conforme ilustrado abaixo: Estudantes: 1022 Chaves 4123 Silva

Faculdade: Chaves 412 42 Silva 216 42

Referncias

3 of 4

25-02-2011 16:24

ACC2000: Conceitos bsicos de normalizao de bases de dados

http://support.microsoft.com/kb/209534/pt

FoxPro 2 A Developer's Guide , Hamilton M. Ahlo Jr. et al., pgs. 220-225, M & T Books, 1991 Using Access for Windows , Roger Jennings, pgs. 799-800, Que Corporation, 1993

A informao contida neste artigo aplica-se a: Palavras-chave: kbinfo kbdta kbusage tblothr KB209534

Necessita de mais ajuda?


Contacte um tcnico de suporte por correio electrnico, Internet ou telefone

Suporte Microsoft

2011 Microsoft

4 of 4

25-02-2011 16:24