Descrição dos conceitos básicos normalização de banco de dados

Traduções deste artigo Traduções deste artigo
ID do artigo: 283878 - Exibir os produtos aos quais esse artigo se aplica.
Iniciante: Requer conhecimento da interface do usuário em usuário único computadores.

Para obter uma versão do Microsoft Access 2000 deste artigo, Consulte 209534.
Para um Microsoft Access 95 ou uma versão do Microsoft Access 97 deste artigo, consulte 100139.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo explica a terminologia de normalização de banco de dados para iniciantes. Um entendimento básico desta terminologia é útil quando discutir o design de banco de dados relacional.

Observação: a Microsoft também oferece um WebCast que aborda as Noções básicas de normalização de banco de dados. Para exibir este WebCast, visite o seguinte Site da Microsoft:
http://support.microsoft.com/servicedesks/webcasts/wc060600/wc060600.asp?FR=1

Mais Informações

Descrição de normalização

A normalização é o processo de organizar dados em um banco de dados. Isso inclui criar tabelas e estabelecer relacionamentos entre as tabelas de acordo com regras projetadas para proteger os dados e tornar o banco de dados mais flexível, eliminando a redundância e dependência inconsistente.

Dados redundantes desperdiça espaço em disco e cria problemas de manutenção. Se os dados que existem em mais de um local devem ser alterados, os dados devem ser alterado exatamente da mesma maneira em todos os locais. É uma alteração de endereço do cliente muito mais fácil de implementar se esses dados são armazenados somente na tabela clientes e em nenhum outro lugar no banco de dados.

O que é uma "dependência inconsistente"? Embora seja intuitivo para um usuário procurar na tabela Customers para o endereço de um determinado cliente, pode não fazer sentido para procurar o salário de lá o funcionário que chama no cliente. Salário do funcionário está relacionado ou dependente, o funcionário e, portanto, deve ser movido para a tabela Funcionários. Dependências inconsistentes podem dificultar dados para acesso porque o caminho para Localize que os dados podem estar faltando ou dividido.

Existem algumas regras para normalização de banco de dados. Cada regra é chamada de "formulário normal". Se a primeira regra é observado, o banco de dados é considerado na "primeira forma normalizada". Se o primeiro três regras forem observadas, o banco de dados é considerado no terceiro normal" formulário". Embora outros níveis de normalização são uma forma possível, em terceiro lugar normal é considerado o mais alto nível necessário para a maioria dos aplicativos.

Como com muitas regras formais e especificações, cenários do mundo real nem sempre Permitir conformidade perfeita. Em geral, a normalização requer adicionais tabelas e alguns clientes encontrar complicado. Se você decidir violar uma das as primeiras três regras de normalização, certifique-se de que seu aplicativo antecipa os problemas que podem ocorrer, como dados redundantes e dependências inconsistentes.

Incluem as seguintes descrições exemplos.

Primeira forma normalizada

  • Elimine os grupos de repetição em tabelas individuais.
  • Crie uma tabela separada para cada conjunto de dados relacionados.
  • Identifica cada conjunto de dados relacionados com uma chave primária.
Não use vários campos em uma única tabela para armazenar semelhante dados. Por exemplo, para rastrear um item de estoque que pode vir de dois possíveis fontes, um registro de inventário pode conter campos para código de fornecedor 1 e fornecedor Código 2.

O que acontece quando você adiciona um fornecedor terceiro? Adicionar um campo é não é a resposta; ele requer modificações de programa e a tabela e não acomodar suavemente um número dinâmico de fornecedores. Em vez disso, colocar todos os fornecedores informações em uma tabela separada denominada fornecedores, em seguida, vincule o estoque para fornecedores com uma tecla de número de item, ou fornecedores de estoque com uma chave de código do fornecedor.

Segunda forma normalizada

  • Criar tabelas separadas para conjuntos de valores que se aplicam a vários registros.
  • Relacione essas tabelas com uma chave externa.
Registros não devem depender algo diferente de uma tabela chave primária (uma chave composta, se necessário). Por exemplo, considere um cliente endereço em um sistema de contabilidade. O endereço é necessário para a tabela de clientes mas também por pedidos, remessa, faturas, contas a receber, e Tabelas de coleções. Em vez de armazenar o endereço do cliente como um separado entrada em cada uma dessas tabelas, armazená-lo em um lugar, os clientes tabela ou em um endereços separada da tabela.

Terceira forma normalizada

  • Elimine campos que não dependem da chave.
Valores em um registro que não fazem parte da chave do registro pertence na tabela. Em geral, a qualquer momento o conteúdo de um grupo de campos podem ser aplicadas para mais de um único registro na tabela, considere colocar os campos em uma tabela separada.

Por exemplo, em um recrutamento de funcionário tabela, nome da Universidade e endereço de um candidato podem ser incluídos. Mas você precisa uma lista completa de universidades para correspondências de grupo. Se as informações de Universidade é armazenado na tabela de candidatos, não há nenhuma maneira de universidades lista sem nenhum candidatos atuais. Criar uma tabela separada de universidades e vinculá-lo para o Tabela de candidatos com uma chave de código de universidade.

EXCEÇÃO: Segui-las a terceira forma normalizada, embora, teoricamente, é desejável, nem sempre é prática. Se você tiver uma tabela clientes e você deseja eliminar todas as possíveis interfield dependências, você deve criar tabelas separadas para cidades, códigos POSTAIS, vendas representantes, classes de cliente e outros fatores que podem ser duplicados em vários registros. Em teoria, a normalização vale pursing. No entanto, muitos tabelas pequenas podem degradar o desempenho ou exceder o arquivo aberto e capacidades de memória.

Pode ser mais viável para aplicar a terceira forma normalizada somente aos dados que as alterações freqüentes. Se alguns campos dependentes permanecem, criar seu aplicativo exigir que o usuário verificar todos os campos relacionados quando qualquer um é alterado.

Outros formulários de normalização

Quarto formulário normal, também chamado Boyce Codd Normal formulário (BCNF) e o quinto formulário normal existe, mas raramente são considerados no design prático. Desconsiderando essas regras pode resultar em design de banco de dados menor do que perfeito, mas não deve afetar a funcionalidade.

Normalizando uma tabela de exemplo

Essas etapas demonstram o processo de normalização um fictícia tabela de aluno.
  1. Tabela unnormalized:

    Recolher esta tabelaExpandir esta tabela
    Aluno #SupervisorAdv-RoomClass1Class2Class3
    1022Jones41207-101143-01159-02
    4123Smith216201-01211-02214-01
  2. Primeiro formulário Normal: Não há grupos de repetição

    Tabelas deve ter apenas duas dimensões. Uma vez que um aluno tem várias classes, esses classes devem ser listados em uma tabela separada. Campos Class1, Class3 e Class2 os registros acima são indicações de problemas de design.

    Planilhas costuma-se utilizar a terceira dimensão, mas tabelas não deveriam. Outra maneira de examinar Esse problema é com um relacionamento um-para-muitos, não coloque um lado e o lado muitos na mesma tabela. Em vez disso, crie outra tabela na primeira normal formulário, eliminando o grupo de repetição (classe #), como mostrado abaixo:

    Recolher esta tabelaExpandir esta tabela
    Aluno #SupervisorAdv-RoomClasse #
    1022Jones41207-101
    1022Jones412143-01
    1022Jones412159-02
    4123Smith216201-01
    4123Smith216211-02
    4123Smith216214-01
  3. Segundo formulário Normal: Eliminar dados redundantes

    Observação os classe # valores múltiplos de cada aluno # valor na tabela acima. Classe # não é funcionalmente dependente aluno # (chave primária), portanto, essa relação não está na segunda forma normal.

    As duas tabelas a seguintes demonstram segundo formulário normal:

    Alunos:

    Recolher esta tabelaExpandir esta tabela
    Aluno #SupervisorAdv-Room
    1022Jones412
    4123Smith216


    Registro:

    Recolher esta tabelaExpandir esta tabela
    Aluno #Classe #
    102207-101
    1022143-01
    1022159-02
    4123201-01
    4123211-02
    4123214-01
  4. Terceira forma Normal: Eliminar dados não dependentes Chave

    No último exemplo, é Adv-Room (número do escritório do Supervisor) funcionalmente dependente do atributo de Supervisor. A solução é mover que atributo da tabela Students à tabela de corpo docente, conforme mostrado abaixo:

    Alunos:

    Recolher esta tabelaExpandir esta tabela
    Aluno #Supervisor
    1022Jones
    4123Smith


    Professores:

    Recolher esta tabelaExpandir esta tabela
    NomeSalaDEP.
    Jones41242
    Smith21642

Propriedades

ID do artigo: 283878 - Última revisão: terça-feira, 16 de julho de 2013 - Revisão: 8.1
A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbinfo kbdesign kbdatabase kbhowto kbmt KB283878 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 283878

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com