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

Traduções de Artigos Traduções de Artigos
Artigo: 304467 - Ver produtos para os quais este 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 | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como definir relações em um banco de dados do Microsoft Access. Ele inclui os seguintes tópicos:
  • Quais são os relacionamentos da tabela
  • Tipos de relações de tabela
    • Relacionamentos um-para-muitos
    • Relacionamentos muitos-para-muitos
    • Relacionamentos um para um

  • Como definir relações entre tabelas
    • Como definir relações um-para-um ou um-para-muitos
    • Como definir um muitos-para-muitos relacionamentos

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

Mais Informação

Quais são os 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, como o catálogo, título, data de publicação e editor. Há também informações que deseja armazenar sobre o Editor, como o número de telefone do Editor, endereço e CEP. Se você armazenar todas essas informações em títulos de tabela, o número de telefone da editora seria duplicado para cada título que a editora imprime.

Uma solução melhor é armazenar as informações do editor apenas uma vez em uma tabela separada, Editoras. Você poderia então colocar um ponteiro na tabela títulos que faz referência a uma entrada na tabela Editoras.

Para certificar-se de que seus dados não estão fora de sincronia, você pode impor integridade referencial entre as tabelas Títulos e Editoras. Relações de integridade referencial ajudam a garantir que informações de uma tabela corresponde às informações em outro. Por exemplo, cada título na tabela Títulos deve estar associado um editor específico na tabela Editoras. Um título não pode ser adicionado ao banco de dados de um editor que não existe no banco de dados.

Tipos de relações de tabela

Uma relação funciona pela coincidência de dados em colunas de chave, 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 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. Esse 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 editores e títulos têm uma relação um-para-muitos: cada editora produz muitos títulos, mas cada título vem de apenas um editor.

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

No Access, o lado da chave primária de uma relação 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 esse relacionamento definindo uma terceira tabela, chamada tabela de junção, cuja chave primária consiste em chaves externas das tabelas A e B. Por exemplo, a tabela Autores e a Tabela títulos têm uma relação muitos-para-muitos que é definida por uma relação um-para-muitos de cada uma dessas tabelas na tabela AutoresTítulo. A chave primária da tabela AutoresTítulo é a combinação da coluna au_id (tabela autores? s chave primária) e a coluna id_título (tabela de títulos? s chave primária).

Relacionamentos um para um

Em um relacionamento individual, uma linha na tabela A pode ter não mais de uma linha coincidente na tabela B e vice-versa. Um relacionamento individual é criado se 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 em uma tabela. Você pode usar um relacionamento um para um para:
  • Dividir uma tabela com muitas colunas.
  • Isolar parte de uma tabela por motivos de segurança.
  • Armazenar dados de curta duração e que poderiam facilmente excluídos pela simples exclusão da tabela.
  • Armazenar informações que se aplicam somente a um subconjunto da tabela principal.
No Access, o lado da chave primária da relação-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 relações entre tabelas

Quando você cria um relacionamento entre tabelas, os campos relacionados é necessário ter os mesmos nomes. No entanto, campos relacionados devem ter os mesmos dados de tipo, a menos que o campo de chave primária for um campo AutoNumeração. Você pode corresponder 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 de número inteiro longo. Mesmo quando ambos os campos coincidentes são campos número, eles devem ter a mesma configuração da propriedade FieldSize .

Como definir relações um-para-um ou um-para-muitos

Para criar um um-para-muitos ou um relacionamento um para um, siga estas etapas:
  1. Feche quaisquer tabelas que você tenha aberto. É 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 as relações do banco de dados, a caixa de diálogo Mostrar tabela é exibida automaticamente. Se você deseja adicionar as tabelas que deseja relacionar mas a caixa de diálogo Mostrar tabela não é exibida, clique em Mostrar tabela no menu relações .
  5. Clique duas vezes os nomes das tabelas que você deseja relacionar e feche a caixa de diálogo Mostrar tabela . Para criar um relacionamento entre uma tabela e ela própria, adicione essa 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 a tecla CTRL, clique em cada campo e arraste-os.

    Na maioria dos casos, você pode arrastar o campo de chave primária (que é exibido em negrito) de uma tabela para um campo semelhante (normalmente com o mesmo nome) denominada chave externa na outra tabela.
  7. A caixa de diálogo Editar relacionamentos é exibida. Verifique se os nomes dos campos 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 de 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 deseja relacionar.

    Quando você fechar a caixa de diálogo Editar relacionamentos , o Microsoft Access perguntará se deseja salvar o layout. Se você salvar o layout ou não, os relacionamentos que você criar serã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, siga estas 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 adicione para os tabela novos campos com as mesmas definições que os campos de chave primárias de cada uma das outras duas tabelas. Na tabela de junção, os campos de chave primária funcionam como chaves externas. Você pode adicionar outros campos à tabela de junção, exatamente como você pode a qualquer outra tabela.
  3. Na tabela de junção, defina a chave primária para incluir os campos de chave primários das outras duas tabelas. Por exemplo, em uma tabela de junção AutoresTítulo, a chave primária seria composta dos campos NúmeroDoPedido e CódigoDoProduto.

    Observação: para criar uma chave primária, siga estas etapas:
    1. Abra uma tabela no modo 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 não acidentalmente excluir ou alterar dados relacionados. Você pode definir a integridade referencial quando todas as seguintes condições forem atendidas:
  • O campo correspondente da tabela primária é uma chave primária ou tem um índice exclusivo.
  • Os campos relacionados têm os mesmos dados de tipo. Há duas exceções. Um campo AutoNumeração pode ser relacionado a um campo número com uma configuração de propriedade FieldSize de inteiro longo e um campo AutoNumeração com uma configuração da propriedade FieldSize de código de replicação pode ser relacionado a um campo número com uma configuração de propriedade FieldSize de código de replicação.
  • Ambas as tabelas pertencem ao mesmo banco de dados do Microsoft Access. Se as tabelas forem tabelas vinculadas, devem estar no formato do Microsoft Access e abra o banco de dados no qual elas estão armazenadas para definir a integridade referencial. Integridade referencial não pode ser imposta para tabelas vinculadas de bancos de dados em outros formatos.
As seguintes regras se aplicam quando você usa a integridade referencial:

  • Você não pode inserir um valor no campo de chave estrangeiro 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 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.
  • Você não pode excluir um registro de uma tabela primária se existirem registros correspondentes na tabela relacionada. Por exemplo, você não pode 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 de chave primária na tabela primária se esse registro tiver registros relacionados. Por exemplo, você não pode alterar o ID 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 deseja que o Microsoft Access propague automaticamente a actualização ou eliminação dos registos relacionados. Se você definir essas opções, excluir e atualizar as operações que seriam normalmente impedidas pela integridade referencial, as regras são permitidas. Quando você excluir registros ou altera valores de chave primária na tabela primária, o Microsoft Access faz as alterações necessárias tabelas relacionadas para preservar a integridade referencial.

Se você clicar para selecionar a caixa de seleção Propagar atualização dos campos relacionados quando definir um relacionamento, a qualquer momento 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 ID de cliente na tabela clientes, o campo CódigoDoCliente na tabela Pedidos é atualizado automaticamente para cada um dos pedidos do cliente para que a relação não seja quebrada. O 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, a caixa de seleção Propagar atualização dos campos relacionados não terá efeito, porque você não pode alterar o valor em um campo AutoNumeração.

Se você selecionar 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 clientes, 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 , o 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 os 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 registros do lado esquerdo da operação LEFT JOIN da instrução de SQL da consulta são adicionados aos resultados da consulta, mesmo se não houver valores correspondentes 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 registros do lado direito da operação RIGHT JOIN na instrução de 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 relações no Microsoft Access, clique no tópico "Criando e projetando tabelas" na página de Ajuda do Microsoft Access 2000 no seguinte site da Microsoft:
Ajuda do Microsoft Access 2000
Para obter mais informações sobre relações no Microsoft Access, clique em Ajuda do Microsoft Access sobre oAjuda menu, digite Criar ou modificar relacionamentos no Assistente do Office ou no Assistente de resposta e clique em Pesquisa Para exibir os tópicos retornados.

Propriedades

Artigo: 304467 - Última revisão: 4 de novembro de 2012 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbhowto kbmt 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 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: 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