Utilizar relações

Introdução às relações de tabelas

O seu browser não suporta vídeo. Instale o Microsoft Silverlight, o Adobe Flash Player ou o Internet Explorer 9.

O poder de uma base de dados relacional está na combinação de dados de diferentes tabelas. Para o fazer, tem de estabelecer relações entre as suas tabelas. Depois, faça o Access combinar dados em consultas, formulários e relatórios.

Para ver todas as relações existentes definidas numa base de dados, abra um modelo do Access, aceda ao separador Ferramentas da Base de Dados e selecione Relações.

Nota: Se abrir uma base de dados vazia ou não tiver definido relações entre tabelas, o Access pede-lhe que adicione uma tabela ou consulta. Antes de poder adicionar uma relação, tem de adicionar duas tabelas ou mais. O melhor é criar todas as suas tabelas primeiro. Para saber mais, consulte os artigos Criar relações com o Assistente de Consultas e Criar relações com o Painel de Relações.

Compreender a vista de Relações

As linhas na vista de Relações indicam ligações entre as tabelas. Na imagem que se segue, a tabela à esquerda é a tabela principal. A da direita é a tabela subordinada. A linha entre as tabelas liga os campos (neste caso, ID da Encomenda e ID do Produto) utilizados para corresponder os dados.

As relações são apresentadas pelas linhas desenhadas entre os campos principais e subordinados.

As linhas e os símbolos mostram a relação entre as suas tabelas:

  • Uma linha de ligação mais carregada significa que está a aplicar a integridade de dados referencial. Isto é positivo, pois mantém os seus dados sincronizados.

  • Na nossa ilustração, o número 1 indica que pode haver apenas um registo correspondente na tabela. Na tabela Encomendas aqui apresentada, os registos correspondem de um para um.

  • O símbolo ∞ indica que muitos registos podem incluir o mesmo ID. Na tabela Detalhes da Encomenda aqui apresentada, uma encomenda (indicada pelo respetivo ID da encomenda) pode aparecer mais do que uma vez, porque a mesma encomenda pode incluir vários produtos.

Tipos de relações entre tabelas

Existem três tipos de relações entre tabelas:

  • Um-para-um. Quando cada item em cada tabela aparece apenas uma vez. Por exemplo, cada funcionário pode ter apenas um automóvel da empresa. Para mais informações, consulte o artigo Criar relações um-para-um.

  • Um-para-muitos. Quando um item numa tabela pode ter uma relação com vários itens noutra tabela. Por exemplo, cada nota de encomenda pode incluir vários produtos.

  • Muitos-para-muitos. Quando um ou mais itens numa tabela podem ter uma relação com um ou mais itens noutra tabela. Por exemplo, cada encomenda pode ter vários produtos e cada produto pode aparecer em várias encomendas. Para saber mais, consulte o artigo Criar relações muitos-para-muitos.

Relações um-para-muitos

Uma das relações mais comuns entre tabelas de bases de dados bem estruturadas é a relação um-para-muitos.

As relações entre tabelas baseiam-se, normalmente, na chave primária de uma das tabelas. Recorde que a chave primária é um identificador único (geralmente, numérico), para cada registo. Para mostrar que as informações nas duas tabelas estão relacionadas, normalmente, tem de criar uma relação utilizando a chave primária de uma das tabelas.

Na relação aqui apresentada, por exemplo, cada pessoa na tabela Contactos tem um ID, que é a chave primária (indicada através de um símbolo de chave junto à mesma). O ID também é apresentado no campo Proprietário da tabela Recursos. Para enviar um e-mail à pessoa associada ao recurso, obtenha o valor no campo Endereço de E-mail. Para tal, procure o valor no campo Proprietário da tabela Recurso e, em seguida, pesquise o ID na tabela Contactos. O número 1 numa das pontas da linha de ligação e o símbolo ∞ na outra indicam que esta se trata se uma relação de um-para-muitos, pelo que um contacto pode estar associado a muitos recursos.

Uma relação um-para-muitos

Editar uma relação

Se estiver a modificar uma relação existente ou se criar a sua base de dados a partir de um modelo, ainda pode editar as relações existentes para satisfazer as suas necessidades.

Nota: Se as tabelas com as quais pretende trabalhar estiverem em utilização, terá de as encerrar primeiro, juntamente com os objetos abertos que as utilizem.

  1. Selecione Ferramentas da Base de Dados > Relações.

  2. Selecione a linha que liga as duas tabelas relacionadas.

    Sugestão: Se não vir a relação pretendida, no separador Estrutura, no grupo Relações, selecione Todas as Relações.

  3. No separador Estrutura, selecione Editar Relações.

    Editar uma relação existente entre tabelas

    A Tabela/Consulta é a tabela principal à esquerda (neste exemplo, Clientes).

    A Tabela/Consulta Relacionada é a tabela subordinada (neste exemplo, Encomendas).

    Mesmo se as tabelas não aparecerem nesta ordem na vista de Relações, a sua colocação na caixa de diálogo indica a direção da linha que as liga e a relação. Tal é importante, por exemplo, se for uma relação um-para-muitos, porque indica que a tabela à esquerda é a de uma (tabela principal) e a tabela à direita é a de muitos (tabela subordinada).

  4. Para alterar os campos que ligam as tabelas, selecione um campo diferente abaixo de cada tabela apresentada. Neste exemplo, o campo ID na tabela Clientes liga ao campo ID do Cliente na tabela Encomendas.

  5. Altere a forma como o Access sincroniza os seus dados entre tabelas.

    Impor Integridade Referencial

    Para impedir dados inválidos e para manter as referências sincronizadas nas relações entre tabelas, selecione esta opção.

    Por exemplo, imaginemos que tem uma relação um-para-um entre as tabelas Funcionários e Benefícios de Funcionários. Se um funcionário sair da empresa e o remover da sua tabela Funcionários, o registo de funcionário correspondente na tabela Benefícios de Funcionários também será removido.

    Por vezes, não faz sentido impor a integridade referencial. Por exemplo, imaginemos que tem uma relação um-para-muitos entre Transitários e Encomendas. Você elimina um transitário, que mapeia para as encomendas na tabela Encomendas. Essas encomendas tornam-se órfãs, ou seja, ainda contêm um ID de Transitário, mas o ID deixa de ser válido porque o registo que referencia deixa de existir.

    Propagar Atualização dos Campos Relacionados

    Para garantir que os dados nos campos relacionados são atualizados em todas as tabelas relacionadas, selecione esta opção.

    Por exemplo, imaginemos que pretende alterar o ID de um transitário. Definir esta opção garante que o ID do Transitário é atualizado, não apenas na tabela Transitário, mas também noutras tabelas ligadas que incluam esse mesmo ID do Transitário, como a tabela Encomendas.

    Propagar Eliminação dos Registos Relacionados

    A decisão de selecionar esta opção depende de se necessita ou não de conservar registos em algumas tabelas, mesmo que possam ser eliminados de outras tabelas.

    Por exemplo, imaginemos que elimina um transitário. Se selecionar esta opção, o Access elimina todos os registos em todas as tabelas que referenciem esse ID do Transitário, incluindo todas as encomendas (na tabela Encomendas) enviadas por esse transitário. Só deve selecionar esta opção se tiver a certeza de que pretende eliminar o seu histórico de encomendas.

  6. Para alterar a relação entre as tabelas de uma associação interna para uma associação externa, selecione o botão Tipo de Associação. Para mais informações, consulte o artigo Criar consultas com associações externas.

Eliminar uma relação de tabelas

Nota: Se as tabelas com as quais pretende trabalhar estiverem em utilização, terá de as encerrar primeiro, juntamente com os objetos abertos que as utilizem.

Para remover uma relação de tabela:

  1. Selecione Ferramentas da Base de Dados > Relações.

  2. Selecione a linha que liga as duas tabelas relacionadas.

    Sugestão: Se não vir a relação pretendida, no separador Estrutura, no grupo Relações, selecione Todas as Relações.

  3. Selecione a tecla Delete. Se lhe for solicitado que confirme se pretende eliminar a relação, selecione Sim.

Nota: Quando remove uma relação, está também a remover o suporte de integridade referencial para essa relação, caso exista. Por conseguinte, o Access deixará de impedir alterações que resultem em registos órgãos no lado "muitos" de uma relação um-para-muitos.

Quer mais?

Criar uma relação

Eliminar uma relação

Formação do Excel

Formação do Outlook

Assim que tiver tabelas na base de dados, pode criar relações entre elas. As relações são importantes porque associam as suas tabelas novamente depois de dividir os dados e também porque têm um grande impacto na forma como estrutura as consultas e obtém respostas dos seus dados.

Qualquer base de dados relacional utiliza três tipos de relações entre as tabelas. Um-para-muitos, muitos-para-muitos e um-para-um.

A relação a utilizar depende dos dados. Existe uma relação um-para-muitos quando um único registo numa tabela está relacionado com um ou mais registos noutra tabela.

A nossa base de dados de exemplo tem este tipo de relação. Um cliente pode ter um ou mais números de telefone e cada número de telefone é referente a um só cliente.

Existe uma relação muitos-para-muitos quando um único registo na tabela A pode estar relacionado com um ou mais registos na tabela B e um único registo na tabela B pode também estar relacionado com um ou mais registos na tabela A.

Geralmente, existem relações muitos-para-muitos em bases de dados de controlo de encomendas, em que uma encomenda pode conter vários produtos e um produto pode fazer parte de múltiplas encomendas.

Este tipo de relação também existe em bases de dados de estudantes, em que vários estudantes podem ocupar várias salas de aula.

Existe uma relação um-para-um quando um único registo numa tabela está relacionado com apenas um único registo noutra tabela. Por exemplo, um único funcionário pode conduzir um automóvel da empresa. No entanto, isto não é muito frequente, uma vez que as relações um-para-um não são assim tão comuns.

Agora, vamos selecionar Ferramentas da Base de Dados e, em seguida, Relações. É aberto o painel Relações. Irá utilizar bastante esta ferramenta.

Este é o local onde cria e faz a gestão da maior parte das relações. Esta é uma relação típica: duas tabelas com uma linha ao meio. A linha mostra que as tabelas estão relacionadas.

Além disso, esta é uma relação um-para-muitos. É fácil de saber, uma vez que a linha de relação aqui tem os símbolos UM e INFINITO. Estes símbolos representam alguns conceitos importantes.

Em primeiro lugar, a tabela do lado UM é a tabela PRINCIPAL e a tabela do lado VÁRIOS é uma tabela SUBORDINADA.

Em segundo lugar, pode considerar a maior parte das relações como tendo LADOS. Neste caso, existe uma tabela do lado UM e uma tabela do lado VÁRIOS.

Os lados são importantes, uma vez que afetam a forma como concebe as consultas.

Agora, vamos selecionar a linha de relação e, em seguida, no friso, vamos selecionar Editar Relações.

Três definições de relações afetam os dados e ajudam a utilizar relações corretamente: integridade referencial, atualizações em cascata e eliminações em cascata. Funcionam da seguinte forma.

Em primeiro lugar, a integridade referencial sincroniza os registos em ambas as tabelas. Esta é uma parte fundamental da manutenção da exatidão dos dados, pelo que deverá defini-la quase sempre.

Com a integridade referencial aplicada, não é possível adicionar um número de telefone, a menos que tenha um nome na tabela Clientes. Isto impede a criação dos chamados ÓRFÃOS: dados sem registos principais.

Por exemplo, basta imaginar um número de vendas sem encomenda associada para perceber porque é que definir a integridade referencial é tão importante.

A definição Atualizações em cascata permite que as alterações do lado principal se propaguem através de todos os registos relacionados do lado SUBORDINADO ou VÁRIOS.

Se, por exemplo, um cliente mudar o seu nome, terá apenas de introduzir essa alteração na tabela Clientes e todos os registos relacionados serão alterados.

A definição Eliminações em cascata controla a eliminação de dados. Se não selecionar esta opção, não pode eliminar dados. Se selecionar esta opção, ao eliminar um registo, o Access elimina todos os dados relacionados com esse registo.

Por exemplo, se eliminar um cliente, os seus números de telefone também serão eliminados.

Isto é vantajoso, porque impede a criação de órfãos, ou seja, números de telefone sem cliente. Por outro lado, lembre-se de que as suas regras empresariais podem impedir a eliminação de dados, pelo que deve ter isso em conta. As regras empresariais podem ter um papel importante na sua estrutura de base de dados.

Agora já sabe o que são relações da tabela, como trabalhar no painel Relações do Access e utilizar definições de relações que o ajudam a trabalhar de forma mais eficiente com a sua base de dados do Access.

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×