Guia para relações de tabelas

Guia para relações de tabelas

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Um dos objetivos de um bom design de banco de dados é eliminar a redundância de dados (dados duplicados). Para alcançar esse objetivo, divida os dados em várias tabelas baseadas em assunto para que cada fato seja representado apenas uma vez. Depois, forneça ao Access uma maneira de reunir as informações divididas novamente . Isso é feito colocando campos em comum em tabelas que sejam relacionadas. Para seguir esta etapa corretamente, entretanto, é necessário compreender as relações entre as tabelas e depois especificar essas relações em seu banco de dados.

Neste artigo

Introdução

Tipos de relações de tabela

Por que criar relações de tabelas?

Noções básicas sobre integridade referencial

Exibir relações de tabelas

Criar uma relação de tabelas

Excluir uma relação de tabela

Alterar uma relação de tabelas

Impor a integridade referencial

Introdução

Depois de criar uma tabela para cada assunto em seu banco de dados, você deverá fornecer ao Access uma maneira de reunir essas informações novamente quando necessário. Isso é feito colocando campos em comum em tabelas que são relacionadas e definindo relações entre as tabelas. Você pode então criar consultas, formulários e relatórios que exibem informações de várias tabelas de uma só vez. Por exemplo, o formulário mostrado aqui inclui informações retiradas de várias tabelas:

Formulário Pedidos exibindo de uma só vez informações relacionadas de cinco tabelas

1. As informações desse formulário são originárias da tabela Clientes...

2. ...da tabela Pedidos...

3. ...da tabela Produtos...

4. ...e da tabela Detalhes do Pedido.

O nome do cliente na caixa Cobrar é recuperado da tabela Clientes; os valores de Código do Pedido e Data do Pedido vêm da tabela Pedidos; o nome do Produto vem da tabela Produtos; os valores de Preço Unitário e Quantidade vêm da tabela Detalhes do Pedido. Essas tabelas são vinculadas umas as outras de várias formas para trazer as informações de todas para o formulário.

No exemplo anterior, os campos das tabelas precisam estar coordenados de forma que mostrem informações sobre o mesmo pedido. Tal coordenação é realizada usando relações de tabelas. Uma relação de tabelas funciona pela correspondência de dados em campos chave — frequentemente, um campo com o mesmo nome em ambas as tabelas. Na maioria dos casos, esses campos correspondentes são a chave primária de uma tabela, que fornece um identificador exclusivo para cada registro, e uma chave estrangeira na outra tabela. Por exemplo, funcionários podem ser associados a pedidos pelos quais são responsáveis criando uma relação de tabelas entre os campos IDFuncionário nas tabelas Funcionários e Pedidos.

IDFuncionário usado como chave primária na tabela Funcionários e como chave estrangeira na tabela Pedidos.

1. IDFuncionário aparece em ambas as tabelas — como uma chave primária ...

2.   ...e como uma chave estrangeira.

Início da página

Tipos de relações de tabelas

Há três tipos de relações de tabela no Access.

  • Uma relação um-para-muitos

    Vamos usar como exemplo um banco de dados de acompanhamento de pedidos que inclua uma tabela Clientes e uma tabela Pedidos. Um cliente pode fazer qualquer número de pedidos. Assim, para qualquer cliente representado na tabela Clientes, pode haver vários pedidos representados na tabela Pedidos. A relação entre a tabela Clientes e a tabela Pedidos é uma relação um-para-muitos.

    Para representar uma relação um-para-muitos no seu design de banco de dados, tome a chave primária do lado "um" da relação e adicione-a como um campo ou campos adicionais à tabela no lado "muitos" da relação. Neste caso, por exemplo, você adiciona um novo campo — o campo ID da tabela Clientes — à tabela Pedidos e a nomeia ID do Cliente. O Access poderá então usar o número do ID do Cliente na tabela Pedidos para localizar o cliente correto para cada pedido.

  • Um relacionamento muitos-para-muitos

    Agora, vamos ver a relação entre uma tabela Produtos e uma tabela Pedidos. Um único pedido pode incluir mais de um produto. Por outro lado, um único produto pode constar em vários pedidos. Assim, para todos os registros da tabela Pedidos, pode haver vários registros na tabela Produtos. Além disso, para cada registro na tabela Produtos, pode haver muitos registros na tabela Pedidos. Essa relação é denominada relação muitos-para-muitos. Observe que para detectar relações muitos-para-muitos existentes entre as tabelas é importante considerar ambos os lados da relação.

    Para representar uma relação muitos-para-muitos, você deve criar uma terceira tabela, geralmente chamada de tabela de junção, que divide a relação muitos-para-muitos em duas relações um-para-muitos. Insira a chave primária de cada uma das duas tabelas na terceira tabela. Como resultado, a terceira tabela registra cada ocorrência, ou instância, da relação. Por exemplo, a tabela Pedidos e a tabela Produtos possuem uma relação muitos-para-muitos que é definida criando-se duas relações um-para-muitos com a tabela Detalhes do Pedido. Um pedido pode ter muitos produtos, e cada produto pode aparecer em muitos pedidos.

  • Uma relação um-para-um

    Em uma relação um-para-um, cada registro na primeira tabela pode ter somente um registro correspondente na segunda tabela, e cada registro na segunda tabela pode ter somente um registro correspondente na primeira tabela. Essa relação não é comum porque, geralmente, as informações relacionadas dessa maneira são armazenadas na mesma tabela. Você poderia usar uma relação um-para-um para dividir uma tabela com muitos campos, isolar parte de uma tabela por motivos de segurança ou armazenar informações que se apliquem apenas a um subconjunto da tabela principal. Quando você identifica esse tipo de relação, ambas as tabelas devem compartilhar um campo em comum.

Início da página

Por que criar relações de tabelas?

Você pode criar relações de tabelas explicitamente usando a janela Relações ou arrastando um campo do painel Lista de Campos. O Access usa relações de tabelas para decidir como unir tabelas quando você precisar usá-las em um objeto de banco de dados. Há vários motivos que justificam a criação de relações de tabelas antes da criação de outros objetos do banco de dados, como formulários, consultas e relatórios.

  • As relações de tabelas informam os designs de consulta

    Para trabalhar com registros de mais de uma tabela, você geralmente deve criar uma consulta que una as tabelas. A consulta faz a correspondência dos valores no campo de chave primária da primeira tabela com um campo de chave estrangeira na segunda tabela. Por exemplo, para retornar linhas que listem todos os pedidos de cada cliente, construa uma consulta que una a tabela Clientes à tabela Pedidos com base no campo ID do Cliente. Na janela Relações, você pode especificar manualmente os campos para junção. Entretanto, se você já tiver uma relação definida entre as tabelas, o Access fornecerá a junção padrão, com base na relação de tabelas existente. Além disso, se você usar um dos assistentes de consulta, o Access usará as informações coletadas das relações de tabelas já definidas para lhe oferecer opções fundamentadas e para preencher previamente as configurações de propriedade com valores padrão adequados.

  • As relações de tabelas informam os designs de formulário e relatório

    Quando você cria um formulário ou relatório, o Access usa as informações coletadas das relações de tabelas já definidas para lhe oferecer opções fundamentadas e para preencher previamente as configurações de propriedade com valores padrão adequados.

  • As relações de tabelas são a base através da qual você pode garantir a integridade referencial para ajudar a evitar registros órfãos no banco de dados. Um registro órfão é um registro com uma referência a outro registro que não existe — por exemplo, um registro de pedido que faça referência a um registro de cliente que não existe.

    Quando você cria um banco de dados, divide as informações em tabelas, cada uma das quais tendo uma chave primária. Depois, adiciona chaves estrangeiras a tabelas relacionadas que façam referência a essas chaves primárias. Esses pares chave estrangeira-chave primária formam a base das relações de tabelas e consultas de várias tabelas. É importante, entretanto, que essas referências chave estrangeira-chave primária permaneçam sincronizadas. A integridade referencial ajuda a garantir que as referências permaneçam sincronizadas.

Início da página

Noções básicas sobre integridade referencial

Ao criar um banco de dados, você divide as informações dele em várias tabelas baseadas em assunto para minimizar a redundância de dados. Então, fornece ao Access uma maneira de reunir os dados novamente colocando campos em comum em tabelas relacionadas. Por exemplo, para representar uma relação um-para-muitos, você pega a chave primária da tabela "um" e a adiciona como campo adicional na tabela "muitos". Para reunir os dados novamente, o Access pega o valor na tabela "muitos" e procura o valor correspondente na tabela "um". Dessa forma, os valores na tabela "muitos" fazem referência aos valores correspondentes na tabela "um".

Suponha que você tenha uma relação um-para-muitos entre Expedidores e Pedidos e você deseje excluir um Expedidor. Se o expedidor que você deseja excluir tiver pedidos na tabela Pedidos, esses pedidos se tornarão "órfãos" quando você excluir o registro Expedidor. Os pedidos ainda conterão um código de expedidor, mas ele não será mais válido, porque o registro ao qual ele faz referência não existe mais.

O objetivo da integridade referencial é evitar órfãos e manter as referências em sincronia para que essa situação hipotética nunca ocorra.

Imponha a integridade referencial habilitando-a para uma relação de tabelas (consulte Impor a integridade referencial para obter instruções passo a passo). Depois da imposição, o Access rejeitará qualquer operação que viole a integridade referencial dessa relação de tabelas. Isso significa que o Access rejeitará tanto as atualizações que alterem o destino de uma referência quanto as exclusões que removam o destino de uma referência. Entretanto, é possível que você tenha uma necessidade perfeitamente válida de alterar a chave primária de um transportador que tenha pedidos na tabela Pedidos. Nesses casos, o que realmente precisa ser feito é que o Access atualize automaticamente todas as linhas afetadas como parte de uma única operação. Dessa forma, o Access garantirá que a atualização seja concluída, de maneira que o banco de dados não fique inconsistente, com algumas linhas atualizadas e outras não. Por esse motivo, o Access fornece suporte para a opção Propagar atualização dos campos relacionados. Quando você impuser a integridade referencial e escolher a opção Propagar atualização dos campos relacionados e, em seguida, atualizar uma chave primária, o Access atualizará automaticamente todos os campos que façam referência à chave primária.

É possível também que você venha a ter uma necessidade válida de excluir uma linha e todos os registros relacionados — por exemplo, um registro Transportador e todos os pedidos relacionados a ele. Por isso, o Access fornece suporte para a opção Propagar exclusão dos registros relacionados. Quando você impõe a integridade referencial e escolhe a opção Propagar exclusão dos registros relacionados e depois exclui um registro no lado da chave primária da relação, o Access automaticamente exclui todos os registros que fazem referência à chave primária.

Início da página

Exibir relações de tabelas

Para exibir as relações de tabelas, clique em Relações na guia Ferramentas de Banco de Dados. A janela Relações é aberta e exibe todas as relações existentes. Se nenhuma relação de tabelas tiver sido definida e você estiver abrindo a janela Relações pela primeira vez, o Access solicitará que você adicione uma tabela ou consulta à janela.

Abrir a janela Relações

  1. Clique em Arquivo e em Abrir.

  2. Selecione e abra o banco de dados.

  3. Na guia Ferramentas de Banco de Dados, no grupo Relações, clique em Relações.

    Se o banco de dados contiver relações, a janela Relações será exibida. Se o banco de dados não contiver relações e você estiver abrindo a janela Relações pela primeira vez, a caixa de diálogo Mostrar Tabela será exibida. Clique em Fechar para fechar a caixa de diálogo.

  4. Na guia Design, no grupo Relações, clique em Todas as Relações.

    Isso exibirá todas as relações definidas no banco de dados. Observe que as tabelas ocultas (tabelas para as quais a caixa de seleção Oculta na caixa de diálogo Propriedades da tabela está marcada) e suas relações não serão mostradas, a menos que a caixa de seleção Mostrar Objetos Ocultos esteja marcada na caixa de diálogo Opções de Navegação.

Uma relação de tabelas é representada por uma linha de relação traçada entre tabelas na janela Relações. Uma relação que não impõe integridade referencial aparece como uma linha fina entre os campos em comum que dão suporte à relação. Quando você seleciona a relação clicando na respectiva linha, a linha fica mais espessa para indicar que está selecionada. Se você impuser a integridade referencial para essa relação, a linha aparecerá mais espessa em cada extremidade. Além disso, o número 1 aparecerá sobre a parte espessa da linha em um lado da relação e o símbolo de infinito () aparecerá sobre a parte espessa da linha no outro lado.

Quando a janela Relações está ativa, você pode selecionar entre os seguintes comandos na Faixa de Opções:

Na guia Design, no grupo Ferramentas:

  • Editar Relações    Abre a caixa de diálogo Editar Relações. Quando você seleciona uma linha de relação, pode clicar em Editar Relações para alterar a relação da tabela. Você também pode clicar duas vezes na linha da relação.

  • Limpar Layout    Remove todas as tabelas e relações da exibição na janela Relações. Observe que esse comando só oculta as tabelas e relações — ele não as exclui.

  • Relatório de Relações    Cria um relatório que exibe as tabelas e relações no banco de dados. O relatório mostra somente as tabelas e as relações que não estão ocultas na janela Relações.

Na guia Design, no grupo Relações:

  • Mostrar Tabela    Abre a caixa de diálogo Mostrar Tabela para que você possa selecionar tabelas e consultas para exibição na janela Relações.

  • Ocultar Tabela    Oculta a tabela selecionada na janela Relações.

  • Mostrar Relações Diretas    Exibe todas as relações e tabelas relacionadas da tabela selecionada na janela Relações, se ainda não estiverem exibidas.

  • Todas as Relações    Exibe todas as relações e tabelas relacionadas do banco de dados na janela Relações. Observe que as tabelas ocultas (tabelas para as quais a caixa de seleção Oculta na caixa de diálogo Propriedades da tabela está marcada) e suas relações não serão mostradas a menos que Mostrar Objetos Ocultos esteja marcada na caixa de diálogo Opções de Navegação.

  • Fechar    Fecha a janela Relações. Se você tiver feito alterações no layout da janela Relações, será perguntado se deseja salvá-las.

Início da página

Criar uma relação de tabelas

Você pode criar uma relação de tabelas usando a janela Relações ou arrastando um campo para uma folha de dados a partir do painel Lista de Campos. Quando você cria uma relação entre tabelas, os campos em comum não precisam ter os mesmos nomes, embora seja frequente que tenham. Em vez disso, esses campos devem ter o mesmo tipo de dados. Se o campo da chave primária for um campo Numeração Automática, entretanto, o campo da chave estrangeira poderá ser um campo Número se a propriedade FieldSize de ambos for a mesma. Por exemplo, você pode fazer a correspondência entre um campo Numeração Automática e um campo Número se a propriedade FieldSize de ambos for Inteiro Longo. Quando os dois campos em comum forem campos Número, eles deverão ter a mesma configuração da propriedade FieldSize.

Criar uma relação de tabelas usando a janela Relações

  1. Clique em Arquivo e em Abrir.

  2. Selecione e abra o banco de dados.

  3. Na guia Ferramentas de Banco de Dados, no grupo Relações, clique em Relações.

  4. Se você ainda não definiu nenhuma relação, a caixa de diálogo Mostrar Tabela aparecerá automaticamente. Se não aparecer, na guia Design, no grupo Relações, clique em Mostrar Tabela.

    A caixa de diálogo Mostrar Tabela exibe todas as tabelas e consultas no banco de dados. Para ver somente as tabelas, clique em Tabelas. Para ver somente as consultas, clique em Consultas. Para ver tabelas e consultas, clique em Ambas.

  5. Selecione uma ou mais tabelas ou consultas e, em seguida, clique em Adicionar. Quando concluir a adição de tabelas e consultas à janela Relações, clique em Fechar.

  6. Arraste um campo (normalmente a chave primária) de uma tabela para o campo comum (a chave estrangeira) na outra tabela. Para arrastar vários campos, pressione a tecla CTRL, clique em cada campo e arraste-os.

    A caixa de diálogo Editar Relações é exibida.

  7. Verifique se os nomes dos campos mostrados são os campos em comum da relação. Se o nome de um campo estiver incorreto, clique no nome do campo e selecione um novo campo na lista.

    Para impor a integridade referencial para essa relação, marque a caixa de seleção Impor Integridade Referencial. Para obter mais informações sobre integridade referencial, consulte as seções Noções básicas sobre integridade referencial e Impor a Integridade Referencial.

  8. Clique em Criar.

    A linha da relação é traçada entre as duas tabelas. Se você marcou a caixa de seleção Impor Integridade Referencial, a linha aparecerá mais grossa em cada extremidade. Além disso, novamente apenas se você marcou a caixa de seleção Impor Integridade Referencial, o número 1 aparecerá sobre a parte grossa da linha em um lado da relação e o símbolo de infinito (8) aparecerá sobre a parte grossa da linha no outro lado.

    Observações : 

    • Para criar uma relação um-para-um    Os dois campos em comum (geralmente os campos de chave primária e chave estrangeira) devem ter um índice exclusivo. Isso significa que a propriedade Indexado desses campos deve ser definida como Sim (duplicação não autorizada). Se ambos os campos tiverem um índice exclusivo, o Access criará uma relação um-para-um.

    • Para criar uma relação um-para-muitos    O campo no lado "um" (normalmente a chave primária) da relação deve ter um índice exclusivo. Isso significa que a propriedade Indexado desse campo deve ser definida como Sim (duplicação não autorizada). O campo no lado "muitos" não deve ter um índice exclusivo. Ele pode ter um índice, mas deve permitir duplicatas. Isso significa que a propriedade Indexado desse campo deve ser definida como Não ou Sim (duplicação autorizada). Quando um campo um tiver um índice exclusivo e o outro não, o Access criará uma relação um-para-muitos.

Criar uma relação de tabelas usando o painel Lista de Campos

Você pode adicionar um campo a uma tabela existente aberta no modo Folha de Dados arrastando-o a partir do painel Lista de Campos. O painel Lista de Campos mostra os campos disponíveis nas tabelas relacionadas e também os campos disponíveis em outras tabelas. Quando você arrasta um campo de uma "outra" tabela (não relacionada) e, em seguida, conclui o Assistente de Pesquisa, uma nova relação um-para-muitos é criada automaticamente entre a tabela no painel Lista de Campos e a tabela para a qual você arrastou o campo. Essa relação, criada pelo Access, não impõe integridade referencial por padrão. Para impor a integridade referencial, você deve editar a relação. Consulte a seção Alterar uma relação de tabelas para obter mais informações.

Abrir uma tabela no modo Folha de Dados

  1. Na guia Arquivo, clique em Abrir.

  2. Na caixa de diálogo Abrir, selecione e abra o banco de dados.

  3. No Painel de Navegação, clique com o botão direito do mouse na tabela à qual você deseja adicionar o campo e criar a relação, e clique em Abrir.

Abrir o painel Lista de campos

  • Pressione ALT+F8.

    O painel Lista de campos é exibido.

O painel Lista de Campos mostra todas as outras tabelas em seu banco de dados, agrupadas em categorias. Quando você trabalha com uma tabela no modo Folha de Dados, o Access exibe campos em uma destas duas categorias no painel Lista de Campos: Campos disponíveis nas tabelas relacionadas e Campos disponíveis em outras tabelas. A primeira categoria lista todas as tabelas que possuem uma relação com a tabela com a qual você está trabalhando. A segunda categoria lista todas as tabelas com as quais sua tabela não tem relação.

No painel Lista de Campos, ao clicar no sinal de adição (+) ao lado do nome da tabela, você vê uma lista de todos os campos disponíveis nessa tabela. Para adicionar um campo a sua tabela, arraste o campo desejado do painel Lista de Campos para a tabela no modo Folha de Dados.

Adicionar um campo e criar uma relação no painel Lista de Campos

  1. No painel Lista de Campos, em Campos disponíveis em outras tabelas, clique no sinal de mais (+) ao lado de um nome de tabela para exibir a lista de campos nessa tabela.

  2. Arraste o campo desejado do painel Lista de Campos para a tabela aberta no modo Folha de Dados.

  3. Quando a linha de inserção for exibida, solte o campo na posição.

    O Assistente de Pesquisa será iniciado.

  4. Siga as instruções para concluir o Assistente de Pesquisa.

    O campo aparecerá na tabela no modo Folha de Dados.

Quando você arrasta um campo de uma "outra" tabela (não relacionada) e conclui o Assistente de Pesquisa, uma nova relação um-para-muitos é criada automaticamente entre a tabela na Lista de Campos e a tabela para a qual você arrastou o campo. Essa relação, criada pelo Access, não impõe integridade referencial por padrão. Para impor a integridade referencial, você deve editar a relação. Consulte a seção Alterar uma relação de tabelas para obter mais informações.

Início da Página

Excluir uma relação de tabelas

Para remover uma relação de tabelas, você deve excluir a linha da relação na janela Relações. Posicione cuidadosamente o cursor de forma que ele aponte para a linha da relação e, em seguida, clique na linha. A linha da relação aparecerá mais espessa quando for selecionada. Com a linha da relação selecionada, pressione DELETE. Observe que quando você remove uma relação, também remove o suporte para integridade referencial dessa relação, se ela estiver habilitada. Como resultado, o Access não impedirá mais automaticamente a criação de registros órfãos no lado "muitos" de uma relação.

  1. Na guia Ferramentas de Banco de Dados, no grupo Relações, clique em Relações.

    A janela Relações será exibida. Se você ainda não definiu nenhuma relação e essa for a primeira vez que você estiver abrindo a janela Relações, a caixa de diálogo Mostrar Tabela aparecerá. Se a caixa de diálogo aparecer, clique em Fechar.

  2. Na guia Design, no grupo Relações, clique em Todas as Relações.

    Todas as tabelas que tiverem relações serão exibidas, mostrando as linhas de relação.

  3. Clique na linha do relacionamento que você deseja excluir. A linha da relação aparecerá mais grossa quando for selecionada.

  4. Pressione a tecla DELETE.

    –ou–

Clique com o botão direito do mouse e, em seguida, clique em Excluir.

  • O Access pode exibir a mensagem Você tem certeza de que deseja excluir permanentemente de seu banco de dados a relação selecionada?. Se essa mensagem de confirmação aparecer, clique em Sim.

Observação : Se alguma das tabelas empregadas na relação de tabelas estiver em uso, talvez por outra pessoa ou processo, ou em um objeto de banco de dados aberto (como um formulário), você não poderá excluir a relação. Você deverá primeiro fechar todos os objetos abertos que usem essas tabelas antes de poder remover a relação.

Início da página

Alterar uma relação de tabelas

Você pode alterar uma relação de tabelas selecionando-a na janela Relações e, em seguida, editando-a. Posicione cuidadosamente o cursor de forma que ele aponte para a linha da relação e, em seguida, clique na linha para selecioná-la. A linha da relação aparecerá mais espessa quando for selecionada. Com a linha da relação selecionada, clique nela duas vezes ou clique em Editar Relações no grupo Ferramentas da guia Design. A caixa de diálogo Editar Relações é exibida.

Faça suas alterações na caixa de diálogo Editar Relações

  1. Na guia Ferramentas de Banco de Dados, no grupo Relações, clique em Relações.

    A janela Relações será exibida. Se você ainda não definiu nenhuma relação e essa for a primeira vez que você estiver abrindo a janela Relações, a caixa de diálogo Mostrar Tabela aparecerá. Se a caixa de diálogo aparecer, clique em Fechar.

  2. Na guia Design, no grupo Relações, clique em Todas as Relações.

    Todas as tabelas que tiverem relações serão exibidas, mostrando as linhas de relação.

  3. Clique na linha do relacionamento que você deseja alterar. A linha da relação aparecerá mais grossa quando for selecionada.

  4. Clique duas vezes na linha da relação.

  5. Faça suas alterações e clique em OK.

    A caixa de diálogo Editar Relações permite alterar uma relação de tabelas. Especificamente, você pode alterar as tabelas ou as consultas em qualquer lado da relação, ou os campos em qualquer um dos lados. Você também pode definir o tipo de junção ou impor a integridade referencial e escolher uma opção em cascata. Para obter mais informações sobre o tipo de junção e como defini-lo, consulte a seção Definir o tipo de junção. Para obter mais informações sobre como impor a integridade referencial e escolher uma opção em cascata, consulte a seção Impor integridade referencial.

Definir o tipo de junção

Quando você define uma relação de tabelas, os fatos sobre a relação informam seus designs de consulta. Por exemplo, se você definir uma relação entre duas tabelas e, em seguida, criar uma consulta que empregue essas tabelas, o , Access selecionará automaticamente os campos correspondentes padrão com base nos campos especificados na relação. Você pode substituir esses valores padrão iniciais na consulta, mas os valores fornecidos pela relação frequentemente provarão ser os corretos. Como a correspondência e a reunião de dados de mais de uma tabela é algo que você fará com frequência em todos os bancos de dados, exceto nos mais simples, a configuração de padrões com a criação de relações pode economizar tempo e ser benéfica.

Uma consulta de várias tabelas combina informações de mais de uma tabela, correspondendo valores em campos em comum. A operação que faz a correspondência e a combinação é chamada de junção. Por exemplo, suponha que você queira exibir pedidos de clientes. Você cria uma consulta que une a tabela Clientes e a tabela Pedidos no campo ID do Cliente. O resultado da consulta contém informações do cliente e informações do pedido apenas das linhas em que uma correspondência for encontrada.

Um dos valores que você pode especificar para cada relação é o tipo da junção. O tipo da junção informa ao Access quais registros incluir no resultado de uma consulta. Por exemplo, considere novamente uma consulta que una a tabela Clientes e a tabela Pedidos nos campos em comum que representam o ID do Cliente. Usando o tipo de junção padrão (chamado de junção interna), a consulta retorna somente as linhas de Cliente e as linhas de Pedido em que os campos em comum (também chamados de campos unidos) sejam iguais.

Entretanto, suponha que você deseja incluir todos os Clientes — mesmo aqueles que ainda não fizeram nenhum pedido. Para isso, você deve alterar o tipo da junção de interna para o que é chamado de junção externa esquerda. Uma junção externa esquerda retorna todas as linhas da tabela do lado esquerdo da relação e somente as linhas correspondentes da tabela à direita. Uma junção externa direita retorna todas as linhas à direita e somente as linhas correspondentes à esquerda.

Observação : Nesse caso, "esquerda" e "direita" refere-se à posição das tabelas na caixa de diálogo Editar Relações, não na janela Relações.

Você deve pensar sobre o resultado que desejará com mais frequência de uma consulta que associa as tabelas nessa relação e, em seguida definir o tipo de junção de acordo.

Definir o tipo de junção

  1. Na caixa de diálogo Editar Relações, clique em Tipo de Junção.

    A caixa de diálogo Propriedades da Junção aparece.

  2. Clique em sua escolha e, em seguida, clique em OK.

A tabela a seguir (usando as tabelas Clientes e Pedidos) mostra as três opções que são exibidas na caixa de diálogo Propriedades da Junção, o tipo de junção utilizado e se todas as linhas ou as linhas correspondentes são incluídas para cada tabela.

Opção

Junção relacional

Tabela da esquerda

Tabela da direita

1. Somente incluir as linhas quando os campos associados de ambas as tabelas forem iguais.

Junção interna

Linhas correspondentes

Linhas correspondentes

2. Incluir TODOS os registros de 'Clientes' e somente os registros de 'Pedidos' quando os campos associados forem iguais.

Junção externa esquerda

Todas as linhas

Linhas correspondentes

3. Incluir TODOS os registros de 'Pedidos' e somente os registros de 'Clientes' quando os campos associados forem iguais.

Junção externa direita

Linhas correspondentes

Todas as linhas

Quando você escolher a opção 2 ou a opção 3, uma seta será mostrada na linha da relação. Essa seta apontará para o lado da relação que mostra somente as linhas correspondentes.

Fazer alterações na caixa de diálogo Propriedades da Junção

  1. Na guia Ferramentas de Banco de Dados, no grupo Relações, clique em Relações.

    A janela Relações será exibida. Se você ainda não definiu nenhuma relação e essa for a primeira vez que você estiver abrindo a janela Relações, a caixa de diálogo Mostrar Tabela aparecerá. Se a caixa de diálogo aparecer, clique em Fechar.

  2. Na guia Design, no grupo Relações, clique em Todas as Relações.

    Todas as tabelas que têm relações serão exibidas, mostrando linhas de relações.

  3. Clique na linha do relacionamento que você deseja alterar. A linha da relação aparecerá mais grossa quando for selecionada.

  4. Clique duas vezes na linha da relação.

    A caixa de diálogo Editar Relações é exibida.

  5. Clique em Tipo de Junção.

  6. Na caixa de diálogo Propriedades da Junção, clique em uma opção e, em seguida, clique em OK.

  7. Faça quaisquer alterações adicionais na relação e clique em OK.

Início da Página

Impor integridade referencial

A finalidade do uso da integridade referencial é evitar registros órfãos e manter as referências sincronizadas, para que você não tenha nenhum registro que faça referência a outros registros que não existam mais. Você impõe a integridade referencial habilitando-a para uma relação de tabelas. Depois de imposta, o Access rejeita qualquer operação que violaria a integridade referencial dessa relação de tabelas. O Access rejeita atualizações que alterem o destino de uma referência e também exclusões que removam o destino de uma referência. Para que o Access propague atualizações e exclusões referenciais de forma que todas as linhas relacionadas sejam alteradas de acordo, consulte a seção Definir as opções de propagação.

Ativar ou desativar a integridade referencial

  1. Na janela Relações, clique na linha da relação que você deseja alterar. A linha da relação aparecerá mais grossa quando for selecionada.

  2. Clique duas vezes na linha da relação.

A caixa de diálogo Editar Relações é exibida.

  1. Marque a caixa de seleção Impor Integridade Referencial.

  2. Faça quaisquer alterações adicionais na relação e clique em OK.

Depois de impor a integridade referencial, as seguintes regras serão aplicadas:

  • Não será possível inserir um valor no campo de chave estrangeira de uma tabela relacionada se esse valor não existir no campo de chave primária da tabela primária — fazer isso cria registros órfãos.

  • Não será possível um registro de uma tabela primária se existirem registros correspondentes em uma tabela relacionada. Por exemplo, você não poderá excluir o registro de um funcionário da tabela Funcionários se houver pedidos atribuídos a esse funcionário na tabela Pedidos. Entretanto, você pode optar por excluir um registro primário e todos os registros relacionados em uma única operação, marcando a caixa de seleção Propagar exclusão dos registros relacionados.

  • Não será possível alterar o valor de uma chave primária na tabela primária se isso criar registros órfãos. Por exemplo, você não poderá alterar um número de pedido na tabela Pedidos se houver itens de linha atribuídos a esse Pedido na tabela Detalhes do Pedido. Entretanto, você pode optar por atualizar um registro primário e todos os registros relacionados em uma única operação, marcando a caixa de seleção Propagar atualização dos campos relacionados.

    Observações : Se você tiver dificuldades para habilitar a integridade referencial, observe que as seguintes condições são exigidas para impor a integridade referencial:

    • O campo comum da tabela primária deverá ser uma chave primária ou ter um índice exclusivo.

    • Os campos comuns devem ter o mesmo tipo de dados. A única exceção é que um campo Numeração Automática pode ser relacionado a um campo Número que tenha a configuração da propriedade TamanhoDoCampo igual a Inteiro Longo.

    • As duas tabelas devem existir no mesmo banco de dados do Access. A integridade referencial não pode ser imposta em tabelas vinculadas. No entanto, se as tabelas de origem estiverem no formato do Access, você poderá abrir o banco de dados no qual elas estão armazenadas e habilitar a integridade referencial nesse banco de dados.

Definir as opções de propagação

Você pode se deparar com uma situação em que tenha uma necessidade válida de alterar o valor no lado "um" de uma relação. Nesse caso, você precisará que o Access atualize automaticamente todas as linhas afetadas como parte de uma única operação. Dessa forma, a atualização será concluída totalmente de forma que o banco de dados não seja deixado em um estado inconsistente — com algumas linhas atualizadas e outras não. O Access ajuda a evitar esse problema fornecendo suporte para a opção Propagar atualização dos campos relacionados. Quando você impõe a integridade referencial e escolhe a opção Propagar atualização dos campos relacionados e, em seguida, atualiza uma chave primária, o Access atualiza automaticamente todos os campos que fazem referência à chave primária.

Você também pode precisar excluir uma linha e todos os registros relacionados — por exemplo, o registro de um Transportador e todos os pedidos relacionados a ele. Por esse motivo, o Access fornece suporte para a opção Propagar exclusão dos registros relacionados. Quando você impõe a integridade referencial e escolhe a opção Propagar exclusão dos registros relacionados, o Access exclui automaticamente todos os registros que fazem referência à chave primária quando você exclui o registro que contém a chave primária.

Ativar ou desativar a atualização em cascata e/ou a exclusão em cascata

  1. Na janela Relações, clique na linha da relação que você deseja alterar. A linha da relação aparecerá mais grossa quando for selecionada.

  2. Clique duas vezes na linha da relação.

A caixa de diálogo Editar Relações é exibida.

  1. Marque a caixa de seleção Impor Integridade Referencial.

  2. Marque a caixa de seleção Propagar Atualização dos Campos Relacionados ou Propagar Exclusão dos Registros Relacionados ou ambas.

  3. Faça alterações adicionais na relação e clique em OK.

Observação : Se a chave primária for um campo Numeração Automática, o uso da caixa de seleção Propagar Atualização dos Campos Relacionados não terá efeito, pois não é possível mudar o valor de um campo Numeração Automática.

Início da Página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×