Select the product you need help with
Definir relações entre tabelas numa base de dados do Microsoft AccessArtigo: 304466 - Ver produtos para os quais este artigo se aplica. Principiante: requer conhecimentos sobre a interface de utilizador
em computadores individuais. Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.mdb ou .accdb). Este artigo descreve como definir relações numa base
de dados do Microsoft Access. São abordados os seguintes tópicos:
Mais InformaçãoO Que São Relações Entre TabelasNuma base de dados relacional, as relações permitem-lhe impedir a existência de dados redundantes. Por exemplo, se estiver a estruturar uma base de dados que irá monitorizar informações sobre livros, poderá ter uma tabela chamada Títulos que armazenará informações sobre cada livro, tais como o título, data de publicação e editor do livro. Existem ainda informações que poderá pretender armazenar sobre o editor, tal como o respectivo número de telefone, morada e código postal. Se armazenasse todas estas informações na tabela de títulos, o número de telefone do editor seria duplicado em cada título impresso pelo editor.Uma solução melhor consiste em armazenar as informações sobre o editor apenas uma vez numa tabela separada, Editores. Em seguida, colocaria um apontador na tabela Títulos que iria referenciar uma entrada na tabela Editores. Para se certificar de que os dados não ficam dessincronizados, poderá impor integridade referencial entre as tabelas Títulos e Editores. As relações de integridade referencial ajudam a garantir que as informações existentes numa tabela correspondem às informações existentes noutra tabela. Por exemplo, cada título da tabela Títulos tem de estar associado a um editor específico na tabela Editores. Não é possível adicionar à base de dados um título de um editor que não exista nessa base de dados. Tipos de Relações Entre TabelasUma relação funciona através da correspondência entre dados em colunas chave, normalmente colunas com o mesmo nome em ambas as tabelas. Na maior parte dos casos, a relação estabelece a correspondência entre a chave primária de uma tabela, que fornece um identificador exclusivo para cada linha, com uma entrada existente na chave externa na outra tabela. Por exemplo, é possível associar as vendas a títulos específicos 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 Vendas (a chave externa).Existem três tipos de relações entre tabelas. O tipo de relação criada depende do modo como as colunas relacionadas são definidas. Relações Um-Para-MuitosA relação um-para-muitos é o tipo de relação mais comum. Neste tipo de relação, uma linha da tabela A pode ter várias linhas correspondentes na tabela B, mas uma linha da tabela B só pode ter uma linha correspondente na tabela A. Por exemplo, as tabelas Editores e Títulos têm uma relação um-para-muitos: cada editor produz vários títulos, mas cada título só é proveniente de um editor.É criada uma relação um-para-muitos se apenas uma das colunas relacionadas for uma chave primária ou tiver uma restrição exclusiva. No Access, o lado da chave primária de uma relação um-para-muitos é indicada por um símbolo de chave. O lado da chave externa de uma relação um-para-muitos é indicado por um símbolo de infinito. Relações Muitos-Para-MuitosNuma relação muitos-para-muitos, uma linha da tabela A pode ter várias linhas correspondentes na tabela B e vice-versa. É possível criar uma relação deste tipo definindo uma terceira tabela, chamada tabela de junção, cuja chave primária é composta por chaves externas da tabela A e da tabela B. Por exemplo, a tabela Autores e a tabela Títulos podem ter uma relação muitos-para-muitos que é definida por uma relação um-para-muitos de cada uma destas tabelas com a tabela AutoresTítulo. A chave primária da tabela AutoresTítulo é a combinação da coluna id_au (a chave primária da tabela Autores) com a coluna id_título (a chave primária da tabela Títulos).Relações Um-Para-UmNuma relação um-para-um, uma linha da tabela A não pode ter mais de uma linha correspondente na tabela B e vice-versa. É criada uma relação um-para-um se ambas as colunas relacionadas forem chaves primárias ou tiverem restrições exclusivas.Este tipo de relação não é comum porque a maior parte das informações relacionadas deste modo estariam concentradas numa tabela. Poderá utilizar uma relação um-para-um para:
Como Definir Relações Entre TabelasQuando cria uma relação entre tabelas, os campos relacionados não têm de ter os mesmos nomes. No entanto, os campos relacionados têm de ter o mesmo tipo de dados, a menos que o campo de chave primária seja um campo de Numeração Automática. Só é possível corresponder um campo de Numeração Automática com um campo de Número se a propriedade TamanhoDoCampo de ambos os campos correspondentes for igual. Por exemplo, pode estabelecer correspondência entre um campo de Numeração Automática e um campo de Número se a propriedade TamanhoDoCampo de ambos os campos for Número Inteiro Longo. Mesmo quando ambos os campos correspondentes são campos de Número, têm de ter a mesma definição de propriedade de TamanhoDoCampo.Como Definir uma Relação Um-Para-Muitos ou Um-Para-UmPara criar uma relação um-para-muitos ou um-para-um, siga estes passos:
Como Definir uma Relação Muitos-Para-MuitosPara criar uma relação muitos-para-muitos, siga estes passos:
Integridade ReferencialA integridade referencial é um sistema de regras utilizado pelo Microsoft Access para garantir que as relações entre registos em tabelas relacionadas são válidas e que os dados relacionados não são eliminados ou alterados acidentalmente. Pode definir integridade referencial quando todas as condições seguintes forem satisfeitas:
Propagar Actualizações e EliminaçõesNas relações em que a integridade referencial é imposta, é possível especificar se pretende que o Microsoft Access propague automaticamente a actualização ou eliminação dos registos relacionados. Se definir estas opções, as operações de eliminação e actualização que seriam normalmente impedidas pela integridade referencial serão permitidas. Quando elimina registos ou altera chaves primárias numa tabela primária, o Microsoft Access efectua as alterações necessárias nas tabelas relacionadas para preservar a integridade referencial.Se clicar para seleccionar a caixa de verificação Propagar Actualização dos Campos Relacionados quando definir uma relação, sempre que alterar a chave primária de um registo na tabela primária o Microsoft Access actualiza automaticamente a chave primária para o novo valor em todos os registos relacionados. Por exemplo, se alterar um ID de cliente na tabela Clientes, o campo IDCliente da tabela Encomendas é actualizado automaticamente em cada uma das encomendas do cliente, para que a relação não seja quebrada. O Microsoft Access propaga as actualizações sem apresentar qualquer mensagem. NOTA: Se a chave primária da tabela primária for um campo de Numeração Automática, seleccionar a caixa de verificação Propagar Actualização dos Campos Relacionados não terá qualquer efeito porque não é possível alterar o valor de um campo de Numeração Automática. Se clicar para seleccionar a caixa de verificação Propagar Eliminação dos Campos Relacionados quando definir uma relação, sempre que eliminar registos na tabela primária o Microsoft Access elimina automaticamente os registos relacionados na tabela relacionada. Por exemplo, se eliminar um registo de cliente da tabela Clientes, todas as encomendas do cliente serão eliminadas automaticamente da tabela Encomendas (isto inclui registos na tabela Detalhes da Encomenda que estejam relacionados com os registos de Encomendas). Quando elimina registos num formulário ou folha de dados com a caixa de verificação Propagar Eliminação dos Registos Relacionados seleccionada, o Microsoft Access avisa-o que os registos relacionados também poderão ser eliminados. No entanto, quando eliminar registos utilizando uma consulta Eliminar, o Microsoft Access elimina automaticamente os registos nas tabelas relacionadas sem apresentar um aviso. Tipos de AssociaçãoExistem os três tipos de associação seguintes:A Opção 1 define uma associação interna. Uma associação interna é uma associação em que os registos de duas tabelas só são combinados nos resultados de uma consulta se os valores dos campos associados satisfizerem uma condição especificada. Numa consulta, a associação predefinida é uma associação interna que só selecciona registos se os valores dos campos associados corresponderem. A 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 da instrução SQL da consulta são adicionados aos resultados da consulta, mesmo que não existam valores correspondentes no campo associado da tabela à direita. A 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 da instrução SQL da consulta são adicionados aos resultados da consulta, mesmo que não existam valores correspondentes no campo associado da tabela à esquerda. Propriedades | Traduções de Artigos
|


Voltar ao topo








