DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 283878 - Última revisão: segunda-feira, 29 de Janeiro de 2007 - Revisão: 6.2

 
Principiante: Requer conhecimentos da interface do utilizador em computadores individuais.

Para obter uma versão de Microsoft Access 2000 deste artigo, consulte 209534  (http://support.microsoft.com/kb/209534/EN-US/ ) .
Para o Microsoft Access 95 ou uma versão de Microsoft Access 97 deste artigo, consulte 100139  (http://support.microsoft.com/kb/100139/EN-US/ ) .

Nesta página

Sumário

Este artigo explica terminologia de normalização de base de dados para os principiantes. Uma compreensão básica desta terminologia é útil quando estiverem a debater a estrutura de uma base de dados relacional.

Nota : a Microsoft também disponibiliza uma WebCast que explica os princípios básicos de normalização de base 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)

Mais Informação

Descrição de normalização

Normalização é o processo de organizar dados numa base de dados. Isto inclui criar tabelas e estabelecer relações entre essas tabelas, de acordo com regras concebidas para proteger os dados e para tornar a base de dados mais flexível eliminando redundância e dependência inconsistente.

Dados redundantes desperdiçam espaço em disco e criam problemas de manutenção. Se devem ser alterados dados em mais do que um local, os dados devem ser alterados exactamente da mesma forma em todas as localizações. Uma alteração de endereço do cliente é muito mais fácil de implementar se esses dados estiver armazenados apenas numa tabela clientes e nowhere pessoa na base de dados.

O que é uma "dependência inconsistente"? Enquanto é intuitivo para um utilizador procura na tabela clientes para o endereço de um determinado cliente, poderá não fazer sentido procurar existe o salário do funcionário que as chamadas na qual o cliente. Salário o empregado relacionadas com o, ou dependentes, o empregado e que assim deve ser movido para a tabela de empregados. As dependências inconsistentes podem dificultar dados para acesso porque o caminho para localizar os dados pode estar em falta ou interrompido.

Existem algumas regras de normalização de base de dados. Cada regra é chamada "forma normal". Se a primeira regra é respeitada, diz-se a base de dados que está a ser "primeira forma normal". Se as três primeiras regras são observadas, a base de dados é considerada na "terceira forma normal". Apesar de outros níveis de normalização serem possíveis, terceira forma normal é considerada o nível mais elevado necessário para a maioria das aplicações.

Como com várias regras formais e especificações, cenários reais não são sempre permitida para conformidade com. Em geral, normalização requer tabelas adicionais e alguns clientes localizar este complicado. Se decidir violar uma das três primeiras regras da normalização, certifique-se de que a aplicação antecipa quaisquer problemas que poderá ocorrer, tais como dados redundantes e dependências inconsistentes.

As descrições seguintes incluem exemplos.

Primeira forma normal

  • Elimine grupos de repetição em tabelas individuais.
  • Crie uma tabela separada para cada conjunto de dados relacionados.
  • Identificar cada conjunto de dados relacionados com uma chave primária.
Não utilize vários campos numa única tabela para armazenar dados semelhantes. Por exemplo, para controlar um item de inventário que pode vir de duas origens possíveis, um registo de inventário pode de conter campos para fornecedor código 1 e 2 do código de fornecedor.

O que acontece quando adicionar um terceiro fornecedor? Adicionar um campo não é a resposta; requer modificações do programa e tabela e não bom acomodar um número dinâmico de fornecedores. Em vez disso, coloque todas as informações de fornecedor numa tabela separada denominada fornecedores e inventário de ligação a fornecedores com uma chave de número de produto ou fornecedores para inventário com uma chave de código do fornecedor.

Segundo forma normal

  • Crie tabelas separadas para conjuntos de valores que se aplicam a vários registos.
  • Relacione estas tabelas com uma chave externa.
Registos não devem depender diferente de chave primária de uma tabela (uma chave composta, se necessário). Por exemplo, considere o endereço do cliente num sistema de gestão de contas. O endereço é necessário pela tabela clientes, mas também pelas tabelas Encomendas, envio, facturas, contas a receber e colecções. Em vez de armazenar o endereço do cliente como uma entrada separada em cada uma destas tabelas, guarde-lo num local, ou de clientes da tabela ou de um endereços separada tabela.

Terceira forma normal

  • Elimine campos que não dependam da chave.
Valores de um registo que não fazem parte da chave do registo não pertencem na tabela. Em geral, sempre que o conteúdo de um grupo de campos pode aplicar para mais do que um único registo na tabela, deverá considerar colocar esses campos numa tabela separada.

Por exemplo, num Recrutamento de funcionários tabela, um candidato Universidade nome e endereço poderão ser incluídos. Mas necessita de uma lista completa de universidades para mensagens de correio de grupo. Se Universidade informações são armazenadas na tabela candidatos, não existe nenhuma forma de lista de universidades com sem candidatos actuais. Criar uma tabela Universidades separada e ligue-o à tabela de candidatos com uma chave de código de universidade.

EXCEPÇÃO de: Respeite ao formulário normal em terceiro lugar, enquanto teoricamente desejável, nem sempre é prático. Se tiver uma tabela clientes e pretender eliminar todas as possíveis dependências interfield, tem de criar tabelas separadas para cidades, códigos postais, representantes de vendas, classes de cliente e qualquer outro factor que pode ser duplicado em múltiplos registos. Em teoria, normalização vale pursing. No entanto, muitas tabelas pequenas podem diminuir o desempenho ou exceder ficheiros abertos e capacidades de memória.

Poderá ser possível aplicar a terceira forma normal apenas aos dados que altera frequentemente. Se permanecerem alguns campos dependentes, crie a aplicação requerem que o utilizador verificar que todos os campos relacionados quando é alterado algum.

Outros formulários de normalização

Quarta forma normal, também designado por BCNF (Boyce Codd Normal forma) e quinta forma normal existem, mas raramente são considerados na concepção prática. Disregarding estas regras pode resultar na estrutura de base de dados menos perfeita, mas não deverá afectar a funcionalidade.

Normalizar uma tabela de exemplo

Estes passos demonstram o processo de normalização de uma tabela de estudantes fictícia.
  1. Unnormalized tabela:

    Reduzir esta tabelaExpandir esta tabela
    Estudante #ClassificaçãoSala de avançadoAula1Aula2Aula3
    1022João41207 10101 143159-02
    4123Silva216201-0102 21101 214
  2. Primeira forma normal: Sem repetição grupos

    Tabelas devem ter apenas duas dimensões. Uma vez que um estudante tem várias classes, estas classes deverão ser listadas numa tabela separada. Os campos Aula1, Aula2 e Aula3 dos registos acima são indicações de problemas de estrutura.

    Folhas de cálculo utilizam frequentemente a terceira dimensão, mas tabelas não devem. Outra forma de observar este problema com uma relação um-para-muitos, não coloque um lado e o lado do muitos na mesma tabela. Em vez disso, crie outra tabela na primeira forma normal através da eliminação do grupo de repetição (classe #), conforme é ilustrado abaixo:

    Reduzir esta tabelaExpandir esta tabela
    Estudante #ClassificaçãoSala de avançadoClasse #
    1022João41207 101
    1022João41201 143
    1022João412159-02
    4123Silva216201-01
    4123Silva21602 211
    4123Silva21601 214
  3. Segundo forma normal: Eliminar dados redundantes

    Repare nos múltiplos classe # valores para cada aluno # valor na tabela acima. Classe # não é funcionalmente depende Student # (chave primária), pelo que esta relação não está no formulário segundo normal.

    Duas tabelas seguintes demonstram segundo formulário normal:

    Alunos:

    Reduzir esta tabelaExpandir esta tabela
    Estudante #ClassificaçãoSala de avançado
    1022João412
    4123Silva216


    Registo:

    Reduzir esta tabelaExpandir esta tabela
    Estudante #Classe #
    102207 101
    102201 143
    1022159-02
    4123201-01
    412302 211
    412301 214
  4. Terceira forma normal: Eliminar dados não dependentes na chave

    Do último exemplo é funcionalmente dependente o atributo de classificação do avançado-sala (número de escritório de classificação). A solução é mover esse atributo da tabela estudantes para a tabela corpo docente, conforme é ilustrado abaixo:

    Alunos:

    Reduzir esta tabelaExpandir esta tabela
    Estudante #Classificação
    1022João
    4123Silva


    Faculdades:

    Reduzir esta tabelaExpandir esta tabela
    NomeSalaDept.
    João41242
    Silva21642

A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbmt kbinfo kbdesign kbdatabase kbhowto KB283878 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 283878  (http://support.microsoft.com/kb/283878/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft