ALGUNS CONCEITOS IMPORTANES EM ACCESS
Definição é algo que muda muito de autor para autor. Aqui vamos falar das definições utilizadas no Ajuda do Access, mas alguns livros usam termos diferentes. O mais importante é entender o que cada definição significa para não incorrer em erro.
- Primária
- Estrangeira
- Externa
Tabela Primária - Aquela que todos os seus Campos dizem respeito apenas a ela própria, como é o caso de Clientes, Funcionários, Alunos, etc. Este tipo de Tabela também está sempre no lado um de um Relacionamento um para vários.
Tabela Estrangeira - A Tabela do lado vários do Relacionamento um para vários e onde nem todos os Campos dizem respeito a ela própria, pois encontramos Campos que são Chaves de outras Tabelas. Exemplos: Pedidos, Vendas, etc, onde na Tabela Vendas temos Campos como Código do Cliente.
Tabela Externa - Uma Tabelas que está noutro Banco de Dados.
CHAVE
Uma Chave de uma Tabela é o Campo que consegue identificar de forma exclusiva um Registro. AChave pode ser comporta por dois ou mais Campos.
TIPOS DE CHAVES
- Chaves Primárias
- Estrangeiras
- Externas
Tipos de Chaves Primárias
- Autonumeração
- De um Campo
- De vários Campos
Chave Primária AutoNumeração - O tipo mais simples e prático, que define automaticamente um número em sequência para o Campo Chave.
Chave Primária de um Campo - É aquele onde o Autonumeração não atende e precisamos de um Campo chave personalizado como o CPF, a RG, números de Matrícula de alunos, professores, funcionários, etc.
Chave Primária de vários Campos - Ocorre geralmente em Tabelas do lado vários de um Relacionamento para vários, no caso de Vendas, Pedidos, Itens, etc.
Chave Estrangeira
É a cheve que que encontra-se em uma Tabela estrangeira e que é Chave primária na Tabela do lado um de um Relacionamento um para vários.
Chave Externa
É a que encontra-se numa Tabela Externa.
ÍNDICE
Os dados em um Banco de Dados são armazenados na ordem em que são introduzidos, que é a ordem física ou real. Um índice consegue exibir os registros numa outra ordem e guarda ponteiros para os registros reais. Os índices aceleram as pesquisas e classificações no Banco de Dados, como o índice de um livro também ajuda a encontrar mais rápido um assunto.
Criamos um índice quando mudamos (setamos) a Indexado de um Campo para Sim.
DICA: Os Campos do tipo Memorando, Hyperlink e Objeto OLE não podem ser indexados.
RELACIONAMENTOS
O conceito de Tabela diz que cada Tabela deve conter informações apenas sobre um único assunto, ou seja, todos os Campos na Tabela Clientes devem dizer respeito apenas a Clientes.
Acontece que em uma Venda é muito importante registrar o Cliente para quem foi, o Vendedor que efetuou, os Produtos, etc.
Então colocamos uma "cópia" da Chave da Tabela Primária na Tabela Estrangeira. Quando isso acontece a Chave acrescentada na Tabela Estrangeira transforma-se em Chave Estrangeira e podemos relacionar as duas Tabelas pelas Chaves.
O Código do Cliente em Clientes tem duplicação não autorizada, pois queremos que ele seja suficiente para identificar com exclusividade cada Cliente, mas em Vendas ele deve ter duplicação autorizada, já que precisamos permitir que um Cliente esteja em mais de uma Venda.
Este tipo de Relacionamento entre Clientes e Vendas é o um
para vários, aquele onde um Cliente estará em várias
Vendas.
INTEGRIDADE REFERENCIAL
É o conjunto de regras do Access destinado a garantir a integridade das informações contra a exclusão ou alterações acidentais.
Regras da Integridade Referencial
- O Campo da Tabela Primária é Chave Primária ou
possui um índice exclusivo.
- As Tabelas devem estar em um mesmo Banco de Dados
- Não se pode inserir um Registro no lado vários que
não exista no lado um. Exemplo: não posso efetuar uma Venda
para um Cliente que não esteja cadastrado.
- Não podemos alterar um Campo Chave primária do lado
um se existirem registros relacionados no lado vários. Exemplo:
não podemos alterar o Códogo de um Cliente que tenha Vendas
cadastradas em seu nome.
Obs.: Como ao impor Integridade Referencial o Access proibirá a exclusão ou alteração de alguns registros, nós podemos marcar as duas caixinhas abaixo da Integridade Referencial:
- Propagar Atualização dos Campos Relacionados e
- Propagar Exclusão dos Registros Relacionados
Para que os Access possa fazer automaticamente sem comprometer a Integridade Referencial.
Propagar Atualização dos Campos Relacionados - Atualizar automaticamente os Campos do lado vários quando a Chave primária for alterada do lado um.
Propagar Exclusão dos Registros Relacionados - Excluir automaticamente todos os registros da Tabela do lado vários quando um registro relacionado for excluido no lado um.
Relacionamento Passo-a-passo
Relacionamento um para vários de um único Campo
Vamos trabalhar com duas Tabelas: a Clientes e a Vendas, onde a Chave primária da Clientes é Código do Cliente e existe uma Chave Estrangeira Código do Cliente na Tabela Vendas para que o relacionamento seja feito.
- O primeiro passo deve ter sido dado na construção das
Tabelas, quando devemos fazer uma cópia da Chave primária
para a Tabela Estrangeira.
- Abra então a janela de Relacionamentos clicando no botão
da barra de ferramentas
- Abre-se então uma janela com as Tabelas do BD. Seleciona as
Tabelas Clientes e Vendas e dê um duplo clique em cada.
- Agora clique em Código do Cliente na Tabela Clientes e arraste
e solte sobre Código do Clientes em Vendas.
- Veja que os dois Campos aparecem na janela. Marque Impor Integridade
Referencial e as outras duas CheckBox abaixo e clique em Criar. Caso tudo
esteja OK aparece uma linha unindo os dois Campos com um 1 do lado de Clientes
e com um alfa do lado de Vendas.
Relacionamento um para vários de vários Campos
Agora iremos trabalhar com as Tabelas Vendas e ItensVendas.
A Vendas tem o Campo Chave primária composta por Código
da Venda, Código do Cliente e Código do Funcionário
(nesta ordem) e a ItensVendas formada por Código da Venda, Código
do Cliente, Código do Funcionário e Código do Produto
(também respeitando esta ordem).
Veja que a Chave de ItensVendas tem todos os Campos de Vendas e ainda
mais um de Protudos (para relacionar com Produtos). Aqui a regra geral
é que o lado um tenha um Campo a menos na Chave que o lado vários.
A ordem dos Campos também é muito importante e deve ser
preservada na Tabela Estrangeira.
- Abra a janela de Relacionamentos
- Adiciona as Tabelas Vendas e ItensVendas
- Clique no Código da Venda na Tabela Vendas, prenda a tecla
Shift e clique em Código do Funcionário para selecionar os
3. Arraste e solte sobre Código de Vendas em ItensVendas.
- Veja que do lado direito está vazio e teremos que indicar
os Campos correspondestes na Tabela ItensVendas, de maneira que fique assim:
|
|
Código da Venda | Código da Venda |
Código do Cliente | Código do Cliente |
Código do Funcionário | Código do Funcionário |
- Marque Impor Integridade Referencial e as duas CheckBox Propagar e
clique em Criar.
- Prontinho.
Possíveis problemas na construção de Relacionamento:
- Quando o tipo de dados não é idêntico.
- Quando cadastramos dados que violam as regras (então exclua
os dados e volte a fazer o relacionamento)
- Quando a Tabela já está relacionada e aparece por exemplo
Clientes1 (isso indica que está Tabela já está na
janela de Relacionamentos, exclua esta e procure a outra).
Sempre leia atentamente a mensagem de erro para saber o que está
havendo.
---------------------------------------
Cantinho dos Amantes do Access
www.ribafs.hpg.com.br/access