ACC2000: Definindo relacionamentos entre tabelas em um banco de dados do Microsoft Access

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

Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve como definir relações em um banco de dados Microsoft Access. Ela inclui os seguintes tópicos:
  • O que são relacionamentos da tabela
  • Tipos de relações entre tabelas
    • Relacionamentos um-para-muitos
    • Relacionamentos muitos-para-muitos
    • Relacionamentos one-To-One

  • Como definir relacionamentos entre tabelas
    • Como definir um relacionamentos um-para-muitos ou One-To-One
    • Como definir um muitos-para-muitos relacionamentos

  • Integridade referencial
  • Atualizações em cascata e exclusões
  • Tipos de associação

Mais Informações

O que são relacionamentos da tabela

Em um banco de dados relacional, as relações permitem evitar dados redundantes. Por exemplo, se você estiver criando um banco de dados que irá controlar informações sobre livros, você pode ter uma tabela chamada títulos que armazena informações sobre cada livro, tais como o livro? s título, data de publicação e o publisher. Há também informações que deseja armazenar sobre o Editor, como número de telefone do Editor, endereço e CEP. Se você armazenar todas as essas informações nos títulos de tabela, o publisher? s telefone deve ser duplicado para cada título que o publisher imprime.

Uma solução melhor é armazenar as informações do Editor apenas uma vez em uma tabela separada, editores. Em seguida, você deve colocar um ponteiro na tabela títulos que faz referência a uma entrada na tabela Editores.

Para garantir que seus dados não esteja fora de sincronia, você pode impor integridade referencial entre as tabelas títulos e editores. Relações de integridade referencial ajudam a garantir que informações em uma tabela correspondem às informações no outro. Por exemplo, cada título na tabela títulos deve estar associado com um editor específico na tabela Editores. É possível adicionar um título para o banco de dados para um editor que não existe no banco de dados.

Tipos de relações entre tabelas

Uma relação funciona pela coincidência de dados em colunas de chaves, normalmente colunas com o mesmo nome em ambas as tabelas. Na maioria dos casos, a relação coincide com a chave primária de uma tabela, que fornece um identificador exclusivo para cada linha, com uma entrada na chave externa na outra tabela. Por exemplo, vendas podem ser associadas com os títulos específicos vendidos criando uma relação entre a coluna id_título da tabela títulos (a chave primária) e a coluna id_título da tabela de vendas (a chave externa).

Existem três tipos de relacionamentos entre tabelas. O tipo de relação criada depende de como as colunas relacionadas são definidas.

Relacionamentos um-para-muitos

Um relacionamento um-para-muitos é o tipo mais comum de relacionamento. Nesse tipo de relação, uma linha na tabela A pode ter muitas linhas coincidentes na tabela B, mas uma linha na tabela B pode ter somente uma linha coincidente na tabela a. Por exemplo, as tabelas títulos e editores têm um relacionamento um-para-muitos: cada editora produz muitos títulos, mas cada título é proveniente de apenas um editor.

Um relacionamento um-para-muitos é criado quando somente um das colunas relacionadas é uma chave primária ou tem uma restrição exclusiva.

No Access, o lado da chave primário de um relacionamento um-para-muitos é indicado por um símbolo de chave. O lado da chave externa de uma relação é indicado por um símbolo de infinito.

Relacionamentos muitos-para-muitos

Em um relacionamento muitos-para-muitos, uma linha na tabela A pode ter muitas linhas coincidentes na tabela B e vice-versa. Você cria tal um relacionamento definindo uma terceira tabela, chamada tabela de junção, cuja chave primária consiste nas chaves externas da tabela e tabela B. Por exemplo, a tabela de autores e da tabela títulos têm um relacionamento muitos-para-muitos definido por uma relação um-para-muitos de cada uma dessas tabelas para a tabela AutoresTítulo. A chave primária da tabela AutoresTítulo é a combinação da coluna id_au (a tabela autores? s chave primária) e a coluna id_título (da tabela títulos? s chave primária).

Relacionamentos one-To-One

Em um relacionamento um-para-um, uma linha na tabela A pode ter mais de uma linha coincidente na tabela B e vice-versa. Um relacionamento um-para-um é criado quando ambas as colunas relacionadas são chaves primárias ou têm restrições exclusivas.

Esse tipo de relacionamento não é comum porque a maioria das informações assim relacionadas estaria tudo em uma tabela. Você pode usar uma relação um-para-um:
  • Divida uma tabela com muitas colunas.
  • Isole parte de uma tabela por motivos de segurança.
  • Armazenar dados de curta duração e podem facilmente ser excluídos por simplesmente excluir a tabela.
  • Armazenar informações que se aplica somente a um subconjunto da tabela principal.
No Access, o lado da chave primário de um relacionamento um-para-um é indicado por um símbolo de chave. O lado da chave externa é também indicado por um símbolo de chave.

Como definir relacionamentos entre tabelas

Quando você cria um relacionamento entre tabelas, os campos relacionados não precisará ter os mesmos nomes. No entanto, os campos relacionados devem ter o mesmo tipo a menos que o campo de chave primária seja um campo AutoNumeração de dados. Você pode coincidir um campo AutoNumeração com um campo número somente se a propriedade FieldSize de ambos os campos correspondentes for o mesmo. Por exemplo, você pode coincidir um campo AutoNumeração e um campo número se a propriedade FieldSize de ambos os campos é inteiro longo. Mesmo quando ambos os campos coincidentes são campos número, precisam ter a mesma configuração da propriedade FieldSize .

Como definir um relacionamentos um-para-muitos ou One-To-One

Para criar um um-para-muitos ou um relacionamento um-para-um, siga estas etapas:
  1. Feche todas as tabelas que você tenha aberto. Não é possível criar ou modificar relacionamentos entre tabelas abertas.
  2. Pressione F11 para alternar para a janela banco de dados.
  3. No menu Ferramentas , clique em relacionamentos .
  4. Se ainda não tiver definido todos os relacionamentos em seu banco de dados, a caixa de diálogo Mostrar tabela será exibida automaticamente. Se você quiser adicionar as tabelas que você deseja relacionar mas a caixa de diálogo Mostrar tabela não é exibida, clique em Mostrar tabela , no menu relacionamentos .
  5. Clique duas vezes em nomes das tabelas que você deseja relacionar e feche a caixa de diálogo Mostrar tabela . Para criar uma relação entre uma tabela e ela própria, adicione a tabela duas vezes.
  6. Arraste o campo que você deseja relacionar de uma tabela para o campo relacionado na outra tabela. Para arrastar vários campos, pressione CTRL, clique em cada campo e, em seguida, arraste-os.

    Na maioria dos casos, você arrasta o campo de chave primário (que é exibido em negrito) de uma tabela para um campo semelhante (normalmente com o mesmo nome) denominado chave externa na outra tabela.
  7. A caixa de diálogo Editar relacionamentos é exibida. Verifique se os nomes de campo exibidos nas duas colunas estão corretos. Você pode alterá-las se necessário.

    Defina as opções de relacionamento se necessário. Se você precisar obter informações sobre um item específico na caixa de diálogo Editar relacionamentos , clique no botão ponto de interrogação e, em seguida, clique no item. Essas opções serão explicadas detalhadamente mais adiante neste artigo.
  8. Clique em criar para criar o relacionamento.
  9. Repita as etapas 5 a 8 para cada par de tabelas que você deseja relacionar.

    Quando você fechar a caixa de diálogo Editar relacionamentos , o Microsoft Access perguntará se deseja salvar o layout. Se você salva o layout ou não, os relacionamentos que você cria são salvas no banco de dados.

    Observação: Você pode criar relações em consultas, bem como tabelas. No entanto, a integridade referencial não é imposta com consultas.

Como definir um muitos-para-muitos relacionamentos

Para criar uma relação muitos-para-muitos, execute as seguintes etapas:
  1. Crie as duas tabelas que terão um relacionamento muitos-para-muitos.
  2. Crie uma terceira tabela, chamada tabela de junção e em seguida, adicione a tabela de junção novos campos com as mesmas definições que os campos de chaves primária de cada uma das outras duas tabelas. Na tabela de junção, os campos de chaves primária funcionam como chaves externas. Você pode adicionar outros campos à tabela de junção, exatamente como você pode fazer qualquer outra tabela.
  3. Na tabela de junção, defina a chave primária para incluir os campos de chaves primária das outras duas tabelas. Por exemplo, em uma tabela de junção AutoresTítulo, a chave primária deve ser composta de campos NúmeroDoPedido e CódigoDoProduto.

    Observação : para criar uma chave primária, execute estas etapas:
    1. Abra uma tabela no modo de design.
    2. Selecione o campo ou campos que você deseja definir como chave primária. Para selecionar um campo, clique no seletor de linha para o campo desejado.

      Para selecionar vários campos, mantenha pressionada a tecla CTRL e, em seguida, clique no seletor de linha para cada campo.
    3. Clique em Chave primária na barra de ferramentas.

      Observação: Se você desejar que a ordem dos campos em uma chave primária de vários campos seja diferente da ordem desses campos na tabela, clique em índices na barra de ferramentas para exibir a caixa de diálogo índices e, em seguida, reordenar os nomes de campo para o índice denominado ChavePrimária .
  4. Defina um relacionamento um-para-muitos entre cada uma das duas tabelas primárias e a tabela de junção.

Integridade referencial

A integridade referencial é um sistema de regras que o Microsoft Access utiliza para garantir que os relacionamentos entre registros de tabelas relacionadas sejam válidos e que você não acidentalmente excluir ou alterar dados relacionados. Você pode definir a integridade referencial quando todas as condições a seguir forem atendidas:
  • O campo coincidente da tabela primária é uma chave primária ou tem um índice exclusivo.
  • Os campos relacionados têm o mesmo tipo de dados. Há duas exceções. Um campo AutoNumeração pode ser relacionado a um campo número com uma configuração da propriedade FieldSize como inteiro longo e um campo AutoNumeração com uma configuração da propriedade FieldSize como código de replicação pode ser relacionado a um campo número com uma configuração da propriedade FieldSize como do código de replicação.
  • Ambas as tabelas pertencem ao mesmo banco de dados Microsoft Access. Se as tabelas forem tabelas vinculadas, elas precisarão estar no formato do Microsoft Access e você deve abrir o banco de dados no qual elas estão armazenadas para definir a integridade referencial. A integridade referencial não pode ser imposta para tabelas vinculadas de bancos de dados em outros formatos.
As seguintes regras se aplicam quando você utiliza a integridade referencial:

  • Você não pode inserir um valor no campo de chave externo da tabela relacionada que não existe na chave primária da tabela primária. No entanto, você pode inserir um valor nulo na chave externa, especificando que os registros não estão relacionados. Por exemplo, você não pode ter um pedido atribuído a um cliente que não existe, mas você pode ter um pedido atribuído a ninguém inserindo um valor nulo no campo CódigoDoCliente.
  • Não é possível excluir um registro de uma tabela primária se existirem registros correspondentes na tabela relacionada. Por exemplo, não é possível excluir um registro de funcionário da tabela Funcionários se houver pedidos atribuídos ao funcionário na tabela Pedidos.
  • Você não pode alterar um valor na tabela primária, de chave primária se esse registro tiver registros relacionados. Por exemplo, você não pode alterar a identificação do funcionário na tabela Funcionários se houver pedidos atribuídos a esse funcionário na tabela Pedidos.

Atualizações em cascata e exclusões

Para relacionamentos nos quais a integridade referencial é imposta, você pode especificar se desejar que o Microsoft Access automaticamente propagar atualização ou exclusão em cascata registros relacionados. Se você definir essas opções, excluir e atualizar as operações que normalmente devem ser impedidas pela integridade referencial, as regras são permitidas. Quando você excluir registros ou alterar valores de chave primária em uma tabela primária, o Microsoft Access faz as alterações necessárias tabelas relacionadas para preservar a integridade referencial.

Se você clicar para marcar a caixa de seleção Propagar atualização dos campos relacionados quando você definir um relacionamento, a qualquer momento em que você alterar a chave primária de um registro na tabela primária, o Microsoft Access atualizará automaticamente a chave primária para o novo valor em todos os registros relacionados. Por exemplo, se você alterar o código de um cliente na tabela Customers, o campo CódigoDoCliente na tabela Pedidos é automaticamente atualizado para cada um dos pedidos desse cliente, para que a relação não seja quebrada. Microsoft Access propaga atualizações sem exibir qualquer mensagem.

Observação: Se a chave primária na tabela primária for um campo AutoNumeração, marcando a caixa de seleção Propagar atualização dos campos relacionados não tem efeito, porque você não pode alterar o valor em um campo AutoNumeração.

Se você marcar a caixa de seleção Propagar exclusão dos registros relacionados quando você definir um relacionamento, sempre que você excluir registros na tabela primária, o Microsoft Access excluirá automaticamente registros relacionados na tabela relacionada. Por exemplo, se você excluir um registro de cliente da tabela Customers, todos os pedidos do cliente são automaticamente excluídos da tabela Pedidos (Isso inclui registros na tabela Detalhes do pedido relacionada aos registros de pedidos). Quando você excluir registros de um formulário ou folha de dados com a caixa de seleção Propagar exclusão dos registros relacionados marcada, Microsoft Access avisa que registros relacionados também podem ser excluídos. No entanto, quando você exclui registros utilizando uma consulta exclusão, o Microsoft Access exclui automaticamente os registros em tabelas relacionadas sem exibir um aviso.

Tipos de associação

Existem três tipos de associação, da seguinte maneira:

opção 1 define uma associação interna. Uma associação interna é uma associação na qual registros de duas tabelas são combinados em resultados de uma consulta somente se os valores nos campos associados atenderem a uma condição especificada. Em uma consulta, a associação padrão é uma associação interna que seleciona registros somente se os valores nos campos associados coincidirem.

opção 2 define uma associação externa esquerda. Uma associação externa esquerda é uma associação em que todos os registos do lado esquerdo da operação LEFT JOIN na instrução SQL da consulta são adicionados aos resultados da consulta, mesmo se não houver valores coincidentes no campo associado da tabela à direita.

opção 3 define uma associação externa direita. Uma associação externa direita é uma associação em que todos os registos do lado direito da operação RIGHT JOIN na instrução SQL da consulta são adicionados aos resultados da consulta, mesmo se não houver valores coincidentes no campo associado da tabela à esquerda.

Referências

Para obter informações adicionais sobre relacionamentos no Microsoft Access, clique o tópico "Criando e Projetando tabelas" na página de Ajuda do Microsoft Access 2000 no seguinte site da Microsoft:
Microsoft Access 2000 Help
Para obter mais informações sobre relações no Microsoft Access, clique em Ajuda do Microsoft Access no menu Ajuda , digite criar ou modificar relacionamentos no Assistente do Office ou no Assistente de resposta e, em seguida, clique em Pesquisar para exibir os tópicos retornados.

Propriedades

ID do artigo: 304467 - Última revisão: terça-feira, 29 de junho de 2004 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbhowto KB304467 KbMtpt
Traduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 304467

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