Você está na página 1de 20

Tabelas

Relacionamento
05
05

Os bancos de dados rela-


cionais são indiscutivelmente
o tipo de banco de dados mais
comumente utilizado no mundo,
por garantir uma eficiência supe-
rior em relação a outros tipos de
banco de dados.
Vamos nesta aula, falar so-
bre relacionamentos entre ta-
belas, O relacionamento entre
tabelas consiste em ligar infor-
mações relacionadas de uma ta-
bela à outra por meio de campos
de tipos de dados iguais.
Na maioria das vezes preci-
sa remos pesquisar informações
relacionadas entre as tabelas,
em nosso sistema, por exemplo,
a tabela Produto se relaciona
com a tabela de Fornecedores
por meio do campo CodigoDo­
Fornecedor informado nas duas
tabelas, justamente para saber-
mos qual o fornecedor de cada
produto cadastrado.
73 | Microsoft Access
Relacionamentos

Tabelas
Os bancos de dados relacionais são compostos de tabelas. Toda tabela é compos­ta
por colunas, cada uma correspondendo a uma informação única de dados e linhas que
correspondem cada um a um registro.
Exemplo:

Colunas
As colunas são nomeadas por um nome único e contém dados variados. Cada co-
luna tem um tipo de dados correspondente ao tipo de informação que se deseja guardar.
As colunas são chamadas de campos.

Linhas
Cada linha de uma tabela representa um registro diferente. Um registro é com­posto
pela sequência de dados nos campos (colunas) ao longo da linha.

Valores
Cada linha consiste em um conjunto de valores individuais que correspondem a co-
lunas. Cada valor deve ter o tipo de dados especificado pela sua coluna.

Chaves
Muitas informações iguais nos campos de vários registros podem dificultar a lo­
calização de um único registro no meio de tantos. É necessário ter uma maneira de iden-

Microsoft Access | 74
05
tificar cada registro individualmente. Podemos fazer isto definindo um campo em cada
tabela para ser um campo Chave primaria.

Chave Primária
Para resolver este problema é preciso ser criado um campo especial denominado
Chave Primária um valor único para cada registro. Ao definir um campo como sendo uma
chave primaria o próprio programa criara uma regra que impeça o usuário de conseguir
inserir no banco um registro que tenha o mesmo valor de identificação Cha­ve primária.
Um bom exemplo seria uma tabela de clientes de uma agencia bancária, para iden-
tificar um possível cliente com nome igual à de outro cliente no banco e isso acon­tece
muito, poderíamos identificá-lo ou diferenciá-lo de outros clientes pelo número de seu
CPF. Como sabemos, o número de CPF é único para cada pessoa, por isso é o campo
ideal para ser chave primaria. A coluna de identificação em uma tabela é cha­mada de
chave primária.
Normalmente um banco de dados é composto por várias tabelas com valores que se
relacionam com outros valores em outra tabela.
Os bancos de dados, geralmente, consistem em múltiplas tabelas e utilizam uma
chave como uma referência de uma tabela para outra. Este relacionamento é feito pe­
los campos chaves nas tabelas. O campo chave primaria de um registro de uma tabela,
quando aparece em outra tabela, é denominado como uma chave estrangeira.

Chave Estrangeira
As chaves estrangeiras representam um relacionamento entre dados de duas tabe-
las. Existem três tipos de relacionamentos em um banco de dados relacional.

• Um para um - significa que um único registro de uma tabela se relaciona com um único
registro também em outra tabela.

• Um para muitos - significa que um único registro de uma tabela se relaciona com mui-
tos outros registros em outra tabela.

• Muitos para muitos - muitos registros em uma tabela são relacionados a mui­tos regis-
tros de outra tabela.

75 | Microsoft Access
Relacionamento do Tipo Um para Um
Esta relação existe quando os campos que se relacionam são ambos do tipo Cha­ve
Primária, em suas respectivas tabelas. Cada um dos campos não apresenta valores repe-
tidos. Por não ter muitas possibilidades de uso esse tipo de relacionamento é mui­to pouco
usado. Um exemplo deste tipo de relacionamento seria o relacionamento em um outro
banco de dados de exemplo entre as tabelas de Gerente e Setores onde um gerente só
pode gerenciar um Setor por vez. Para restringir o acesso do gerente a somente um setor
e não mais por vez, é preciso relacionar as duas tabelas pelos campos “chaves primarias”
nas duas tabelas, neste exemplo seria o campo CodigoDoSetor.

Relacionamento do Tipo Um para Vários


Você com certeza usará com muito mais frequência este relacionamento, por ter
maiores possibilidades de relacionamento. É muito comum querermos relacionar um re-
gistro com vários outros em outra tabela. Em uma tabela, um único registro, através de
sua chave primaria, se relaciona com vários registros em outra tabela, por meio de um
campo idêntico em vários registros na outra tabela.
Um exemplo que define muito bem este tipo de relacionamento é o relaciona­mento
das tabelas Cliente e Pedidos de nosso sistema neste livro. Vamos lá, um (1) único cliente
(um registro) na tabela Clientes tem vários (∞) pedidos relacionados a ele na tabela Pedi­
dos através do vínculo do campo Chave primaria na tabela Clientes com o mesmo campo
em vários registros na tabela Pedidos, campos estes com o mesmo código do cliente.

Microsoft Access | 76
05

O número um (1) represente o lado Um e símbolo de Infinito (∞) representa o lado


Vários entre as tabelas.

Relacionamento do tipo Vários para Vários


Neste tipo de relacionamento vários registros em ambas as tabelas podem se repe-
tir. Num exemplo deste tipo de relacionamento, poderíamos pegar a tabela de Produtos
e Pedidos, onde um produto pode se relacionar com vários pedidos na tabe­la Pedidos
ao mesmo tempo em que teríamos vários produtos em um único pedido. Bom, ape-
sar deste tipo de relacionamento ser possível, poderíamos ter muitos proble­mas como,
por exemplo, a redundância de dados, consequência da repetição de dados em certos
campos na tabela de pedidos como, por exemplo, CodigoDoPedido, Codigo­DoCliente,
DataDoPedido para cada produto novo adicionado ao mesmo pedido, sem contar que o
campo CodigoDoPedido não poderia ser chave primaria, já que o mesmo será repetido.
Para resolver este problema, uma terceira tabela intermediaria deve ser criada para
trocarmos o relacionamento Vários para Vários em dois relacionamentos de Um para
Vários. Podemos fazer esta troca criando uma tabela onde serão armazenados os itens
do pedido, a tabela ltensDoPedido já criada anteriormente na aula 2 . Esta tabela irá
armazenar a parte dos Vários para Vários, fornecido de outros dois relacionamen­tos dela
com as tabelas Produto e Pedido separadamente.
Veja o exemplo abaixo do relacionamento correto com a tabela intermediária ltens­
DoPedido.

77 | Microsoft Access
Criando Relacionamentos entre tabelas
Agora que temos o entendimento claro sobre os tipos de relacionamentos, va­mos
fazê-los em nossas tabelas. Antes de começar a fazer os relacionamentos, vamos identi-
ficar quais tabelas serão relacionadas com outras tabelas no banco de dados.
Veja abaixo o relacionamento entre as tabelas e a necessidade dos mesmos.

Clientes → Um para Vários → Pedidos - Cada cliente pode fazer vários pedidos.

Fornecedores → Um para Vários → Produtos - Cada fornecedor pode for­necer


vários produtos.

Pedidos → Um para Vários → ltensDoPedido - Cada pedido pode ter vá­rios Itens
do Pedido.

Produtos → Um para Vários → ltensDoPedido - Cada produto pode estar em vá-


rios Itens de pedidos.

Assistente de Pesquisa
O primeiro relacionamento que vamos criar é entre a tabela de Clientes e Pedi­dos.
Mas, antes, precisamos rever um detalhe na tabela de Clientes. Se você reparar na tabela
de clientes, vai notar que, para cada novo cliente cadastrado, terá que informar (digitar) o

Microsoft Access | 78
05
País de origem do cliente. Bom, se você tem que digitar o País a cada cliente novo, num
determinado momento você poderá cometer algum erro de digitação e di­gitar Estados
Unidos em vez de USA que é a sigla abreviada do país dos estados unidos deixando o
banco de dados inconsistente já que uma palavra é diferente da outra num campo onde
deveria ser somente um tipo de informação.
Para resolver este problema, devemos restringir as opções de entrada de dados, de
modo a não dar margem de erros de digitação. Em vez de permitir um campo de entrada
de dados de texto, onde podemos digitar o que quisermos, trocamos a caixa de texto por
uma lista de opções com as informações definidas. Para fazer esta troca podemos usar
o Assistente de Pesquisa.
O Assistente de pesquisa pode adicionar uma lista de valores, onde os valores infor-
mados podem vir de uma tabela existente ou postos manualmente.

Para adicionar um campo Lista de opções com o Assistente de Pesquisa

1. Abra a tabela de Clientes no modo de Design.


2. Clique no campo PaisDoCliente e troque o tipo de dados de Texto para Assis­
tente de Pesquisa.

3. Agora temos uma caixa de diálogo com o assistente Passo a Passo, na primeira
etapa escolha a Opção Digitarei os valores que desejo e clique em Avançar.

79 | Microsoft Access
4. Agora digite os Países que faram parte da lista clique em Avançar.

5. Esta é a última etapa, defina um nome para o rótulo de campo deixando o mes­mo
nome do campo PaisDoCliente e marque a caixa de se1eçao Limitar à Lista. Clique em
Concluir para finalizar

Microsoft Access | 80
05

6. Salve a tabela e mude o modo de visualização para folha de dados, e experi­


mento cadastrar um novo cliente informando o País pelo campo de lista.

Relacionando as Tabelas pelo Assistente de pesquisa


Ao utilizar o Assistente de Pesquisa no tópico anterior, você se deparou com duas
opções de listas para escolher; Eu desejo que o(a) campo de pesquisa obtenha os va­
lores de outra tabela ou Digitarei os valores que desejo. Bom, escolhendo a primeira
opção em que os valores são retornados de uma tabela existente, auto’l1aticame’1te es-
tamos fazendo um relacionamento.
Vamos criar o primeiro relacionamento entre a tabela de Clientes e Pedidos que
gere uma lista de Clientes na tabela de Pedidos.

81 | Microsoft Access
Acompanhe o processo:

1. Abra a tabela de Pedidos no modo de Design.


2. Selecione o campo CodigoDoCliente e mude o tipo de dados para Assistente de
Pesquisa.

3. A caixa de diálogo do assistente de pesquisa na primeira etapa escolha a pri­meira


opção Eu desejo que o(a) campo de pesquisa obtenha os valores de outra ta­bela e
clique em Avançar.

Microsoft Access | 82
05
4. Nesta etapa devemos definir na lista de tabelas e consultas disponíveis que con-
tém os valores para a lista. Selecione a tabela Clientes e clique em Avançar.

5. Agora na lista de campos disponíveis da tabela Cliente selecione o campo Co­


digoDoCliente e pressione o botão para transportar para o lado Campos selecio­
nados. Clique em Avançar.

6. Esta etapa especifica como os valores serão mostrados na lista, se serão mos­
trados na ordem em que foram cadastrados ou se especificado por você na ordem Cres-
cente ou Decrescente.

83 | Microsoft Access
Se o objetivo e mostrar os valores da lista em ordem crescente, não há a
neces­sidade, pois o campo CodigoDoCliente já é cadastrado em ordem crescente.
Clique em Avançar.

7. Nesta etapa, se alguns valores já estiverem cadastrados na tabela cliente, eles


já apareceram na lista de exemplo. Nesta etapa, simplesmente configuramos a lar­gura
que terá a caixa da lista. Clique sem soltar no canto direito e arraste até atingir a medida
desejada. Clique em Avançar.

Microsoft Access | 84
05
8. Defina o mesmo nome do campo para o rótulo da lista e marque a opção Ha­bilitar
Integridade de Dados e escolha a opção Exclusão Restrita. Clique em Concluir.

9. Após clicar no botão concluir para realmente aplicar o relacionamento entre as


tabelas à mesma precisa ser salva para que as modificações sejam realizadas. Clique em
Sim para confirmar.

Demais Relacionamentos
Até agora você realizou um único relacionamento do tipo Um para Vários entre as
tabelas de Clientes e Pedidos. Vamos fazer o mesmo procedimento utilizando o Assis­
tente de Pesquisa para realizar o relacionamento das seguintes tabelas a seguir.

85 | Microsoft Access
Produtos e Fornecedores

1. Abra a tabela de Produtos no modo de design.

2. Selecione o campo CodigoDoFornecedor e troque o Tipo de dados para Assis­


tente de pesquisa.

3. A caixa de diálogo do assistente de pesquisa na primeira etapa escolha a pri­meira


opção Eu desejo que o(a) campo de pesquisa obtenha os valores de outra ta­bela e
clique em Avançar.

4. Nesta etapa, devemos definir na lista de tabelas e consultas disponíveis que con-
tém os valores para a lista. Selecione a tabela Fornecedores e clique em Avançar.

5. Agora na lista de campos disponíveis da tabela Fornecedores selecione o cam­po


CodigoDoFornecedor e pressione o botão para transportar para o lado Cam­pos
selecionados. Clique em Avançar.

6. Clique em Avançar novamente.

7. Defina a largura da coluna e em seguida clique em Avançar.

8. Defina o mesmo nome do campo para o rótulo da lista e marque a opção Ha­bilitar
Integridade de Dados e escolha a opção Exclusão Restrita. Clique em Concluir.

9. Confirme a criação do relacionamento clicando no Sim.

ltensDoPedido e Produtos

1. Abra a tabela de ltensDoProduto no Modo de Design.

2 . Selecione o campo CodigoDoProduto e troque o Tipo de dados para Assisten­


te de pesquisa.

Microsoft Access | 86
05
3. A caixa de diálogo do assistente de pesquisa na primeira etapa escolha a pri­meira
opção Eu desejo que o(a) campo de pesquisa obtenha os valores de outra ta­bela e
clique em Avançar.

4. Nesta etapa devemos definir na lista de tabelas e consultas disponíveis que con-
tém os valores para a lista. Selecione a tabela Produtos e clique em Avançar.

5. Agora na lista de campos disponíveis da tabela Produtos selecione o campo


CodigoDoProduto e pressione o botão para transportar para o lado Campos se­
lecionados. Clique em Avançar.

6. Clique em Avançar novamente.

7. Defina a largura da coluna e em seguida clique em Avançar.

8. Defina o mesmo nome do campo para o rótulo da lista e marque a opção Ha­bilitar
Integridade de Dados e escolha a opção Exclusão Restrita. Clique em Concluir.

9. Confirme a criação do relacionamento clicando no Sim.

A janela Relações
Outra maneira de criar relacionamentos entre tabelas, é usar a janela de Rela­ções,
ou seja, Relacionamentos. Podemos acessá-la através da guia Ferramentas de Banco
de Dados, Grupo de ferramentas Relações → Relações.

A seguir, é mostrada a janela de Relações exibindo todos os relacionamentos fei­tos


até agora.

87 | Microsoft Access
Ocultar tabelas

A janela de Relações pode mostrar vários relacionamentos ao mesmo tempo, mas


caso sejam muitos você pode ocultar da visualização as tabelas que não quer ver no mo-
mento clicando com o botão direito na tabela que deseja ocultar e escolhendo a opção
Ocultar Tabela.

Ocultar uma tabela na janela de Relações não remove seu relacionamento com
as outras tabelas, somente a deixa oculta na janela.

Microsoft Access | 88
05
Visualizar tabelas Ocultas

Para visualizar as tabelas ocultas na janela de relações, em que, deseja criar um


relacionamento ou editar o relacionamento existente, basta no grupo de ferramentas Re-
lações, clicar na opção Mostrar Tabelas e escolher qual tabela deseja mostrar. Ou se
deseja mostra somente as tabelas que já possuem relacionamentos, clique em Mostrar
Relações.

Criando um relacionamento na janela de Relações

O último relacionamento que vamos fazer é entre a tabela de ltensDoPedido com


Pedidos para poder relacionar vários itens (Produtos) a cada pedido realizado. Não va-
mos precisar de uma lista de valores desta vez, portanto, não vamos utilizar o assistente
de pesquisa. Faremos o relacionamento direto na janela de Relações. O rela­cionamento,
como você já viu, é feito entre o campo chave primaria na tabela do lado (1) e o campo
chave estrangeira na tabela do lado (Vários). Estes campos em nossas tabelas são o Co-
digoDoPedido - Chave primária (tabela Pedido) e CodigoDoPedido - c ­ have estrangeira
(Tabela ltensDoPedido).

Para criar um relacionamento na janela Relações

1. Clique sem soltar no campo CodigoDoPedido na tabela Pedidos e arraste em


cima do mesmo campo na tabela ltensDoPedido.

89 | Microsoft Access
2. A janela de edição do relacionamento aparecera já configurada com os campos
relacionados, você só deve marcar a opção Impor integridade referencial.

3. Veja como ficaram os relacionamentos.

Microsoft Access | 90
05
01. Assinale com X a alternativa correta para as afirmações a respeito dos tipos de re-
lacionamentos:

( ) No relacionamento do tipo (um para um), um registro (Chave Primária) pode se re-
lacionar em vários registros em outras tabelas.
( ) No relacionamento do tipo (vários para vários), vários registros podem se relacionar
com um único registro em outras tabelas.
( ) No relacionamento do tipo (um para vários), um registro (Chave Primária) pode se
relacionar com vários registros em outras tabelas.

02. Assinale com X a alternativa correta para as afirmações a respeito de campos defi-
nidos como Chave Primária.

( ) Campos definidos como Chave Primária não podem ter registros com campo chave
primaria duplicados.
( ) Campos definidos como Chave Primária podem ter registros com campo chave pri-
maria duplicados.

91 | Microsoft Access

Você também pode gostar