Data Manager – Banco de Dados, Tabelas, Índices, Relacionamentos e Chaves Primárias

Criando um Banco de Dados

Para criar um banco de dados com o Data Manager, execute o Data Manager e selecione a opção File/New Database no menu principal. Um diálogo no padrão Salvar Como será aberto solicitando o nome do arquivo. Informe o nome do banco de dados que deseja criar, por exemplo Controle. A janel Tables/QueryDefs da figura abaixo surge; seu banco de dados já está criado e você está pronto para criar suas tabelas.

Criando uma Tabela

Para criar uma tabela com o Data Manager, proceda da seguinte forma: clique no botão New da janela Tables/QueryDefs e no diálogo Add Table mostrado abaixo.

Siga os seguintes passos:

  1. Informe o nome da tabela na caixa de texto Name
  2. Informe o nome do campo na caixa de texto Field Name
  3. Selecione o tipo de dado apropriado na caixa de combinação Data Type
  4. Digite o tamanho do campo, no caso do tipo Text, na caixa de texto Size
  5. Clique no botão > para incluir o campo na tabela
  6. Repita os passos 2 a 5 até que todos os campos da tabela estejam definidos e clique no botão OK para criá-la.

Alterando a Estrutura de uma Tabela

Para definir propriedades não obrigatórias de uma tabela, clique no botão Design da janela Tables/QueryDefs. O Data Manager abrirá a janela Table Editor, mostrada na figura abaixo.

Na janela Editor você pode:

  • Editar as propriedades de qualquer campo selecionado. Neste caso, os dados existentes serão perdidos.
  • Adicionar e remover campos.
  • Criar, remover e alterar índices.

Para definir as propriedades opcionais dos campos de uma tabela, selecione o campo e clique no botão Edit da janela Table Editor. O Data Manager abrirá a janela abaixo. Basta alterar as propriedades desejadas para o campo editado.

Obs.: O Data Manager não admite a edição de um campo componente de uma expressão de índice ou de um relacionamento. Nestes casos, é obrigatória a remoção do índice ou do relacionamento.

Criando e Editando Índices

A criação de um índice de uma tabela no Data Manager é simples. Basta selecionar a janela Table Editor, clicar no botão Indexes e seguir os passos:

  1. Informar o nome do índice na caixa de texto Index Name
  2. Definir as propriedades do índice, marcando as caixas de verificação apropriadas
  3. Selecionar os campos componentes na caixa de listagem apropriada
  4. Selecionar a ordem do índice, se ascendente ou descendente, clicando no botão de comando indicado

Definindo Relacionamentos

Para visualizar ou definir relacionamentos entre os campos das tabelas de um banco de dados, clique no botão Relations na janela Tables/QueryDefs e siga os passos:

  • Selecione a tabela primária na caixa de combinação Primary Table
  • Selecione a tabela dependente na caixa de combinação Related Table
  • Defina o tipo de relacionamento, selecionando o botão de opção apropriado na caixa de grupo Type
  • Selecione a chave externa na caixa de combinação Select Matching Fields
  • Marque, se for o caso, a caixa de verificação indicando se a integridade referencial dos dados deve ser garantida]

Obs.: Para definir um relacionamento, é indispensável que o campo origem seja a chave primária da tabela primária. Além disso, o campo definido como chave externa deve ser do mesmotipo de dado da chave primária.

Definindo uma Chave Primária

Para definir uma chave primária, selecione o botão Keys (janela Table Editor) e o Data Manager abre o diálogo mostrado na figura abaixo, onde a chave pode ser definida clicando-se e selecionado-a da lista Primary.

Construa consultas com duas tabelas usando o Access

Admita a seguinte situação: Você tem um banco de dados Access no qual existem duas tabelas, uma com a lista de todos os seus arquivos de música MP3 e a outra com uma lista de letras das canções.

Seu problema é o seguinte: como gerar uma consulta que dê como resultado somente as músicas e letras comuns às duas tabelas? Em outras palavras: como obter uma lista das músicas em MP3 cujas letras também existam no banco de dados?

A solução pode ser encontrada no Access apenas a toque de mouse, sem nenhuma necessidade de programação. Trata-se de construir uma consulta simples, com o objetivo de identificar, em duas tabelas de dados, quais registros contêm as mesmas informações em dois campos indicados: um em cada tabela. Essa solução pode ser aplicada em muitas outras situações.

Em termos bem simples, o problema pode ser representado por um diagrama que mostra dois conjuntos de dados, um para cada tabela envolvida. O xis do problema é identificar a porção comum às duas tabelas — correspondente à área em que os dois conjuntos se superpõem. Agora que já caracterizamos o problema, vamos à solução, passo a passo.

1. Para acompanhar o exemplo, crie uma tabela com os campos Intérprete e Título, ambos do tipo Texto. Salve-a com o nome tabMP3. Essa tabela, claro, vai conter a lista das músicas.

2. Crie outra tabela, com os campos Intérprete, Título e Letra. Este último deve ser do tipo Memorando, para abrigar a letra da música. O campo do tipo Texto tem capacidade máxima para somente 255 caracteres. A letra não caberia nele. Por sua vez, o campo de memorando suporta até 65.536 caracteres. Naturalmente, as duas tabelas, aqui, estão reduzidas aos campos que nos interessam para a solução do problema. Você pode incluir outros dados que achar convenientes: autor da música, autor da letra, ano de gravação etc. Dê à segunda tabela o nome tabLetras. Também não haveria nenhum problema se o campo Título, que é o ponto comum entre as tabelas, tivesse nome diferente nas duas. No entanto, para facilitar a compreensão, é mais cômodo usar o mesmo nome.

3. Para ter condições de executar o teste, alimente as duas tabelas com alguns registros, tendo o cuidado de incluir músicas comuns aos dois conjuntos de dados.

4. Na janela Banco de Dados, clique na orelha Consulta. Dê um duplo clique no comando Criar Consulta no Modo Design para projetar um objeto desse tipo a partir do zero. O Access abre duas janelas: Mostrar Tabela e Consulta1. Selecione (mouse mais a tecla Ctrl) o nome das duas tabelas — tabMP3 e tabLetras — na primeira janela e clique no botão Adicionar.

5. Dois quadros com os campos das tabelas aparecem na área superior de Consulta1. Se as duas tabelas tiverem chaves primárias chamadas Código (nome-padrão), o Access vai mostrar uma linha negra ligando esses dois campos. Clique nessa linha e acione a tecla Del para apagá-la. Isso porque o valor Código numa tabela não tem nenhum parentesco com seu homônimo na outra.

6. Agora, o pulo-do-gato. Com o mouse, clique no campo Título de uma tabela e arraste-o para o campo de mesmo nome na outra tabela. Uma linha passa a ligar os dois campos, indicando que a consulta deve procurar neles informações iguais. Dica: o procedimento também funciona quando o nome dos dois campos não é o mesmo.

7. No quadro tabLetras, arraste para a linha Campo, embaixo, os campos Título e Intérprete. Opcionalmente, indique que o campo Intérprete seja apresentado em ordem alfabética. Para isso, na linha Classificação, escolha Crescente.

8. Salve a consulta (com um nome amigável, que ajude a identificá-la depois — exemplo: cnsMP3comLetras1) e execute-a. Veja que ela exibe exatamente os títulos comuns às duas tabelas. A solução descrita acima aparentemente resolve o problema apresentado no início deste tutorial.

9. Faça, agora, uma experiência importante. Inclua, na tabela MP3, uma música cujo título já existe em tabLetras, mas registre aí outro intérprete. Escolha, de propósito, uma canção que não faz parte do núcleo comum entre as duas tabelas. Execute novamente a consulta. O que ocorre? A nova música não aparece. Isso porque a consulta está sendo feita com base na tabela tabLetras.

10. Agora, na janela Banco de Dados, selecione a consulta cnsMP3comLetras1 e copie-a. Cole-a no mesmo lugar, com o nome de cnsMP3comLetras2. Selecione essa nova consulta e clique no botão Design. Na janela da consulta, linha Tabela, escolha, nos dois campos, tabMP3 em vez de tabLetras. Salve a consulta. Em outras palavras, estamos fazendo a mesma consulta, só que agora a outra tabela é nosso ponto de partida. Execute essa consulta modificada. O que ocorre? A música aparece, mas com outro intérprete. Para comparar, abra as duas consultas lado a lado.

11. Sempre que se trabalha com bancos de dados é preciso pensar em coisas desse tipo. O problema é que duas canções com o mesmo título e intérpretes diferentes podem ser a mesma música, ou não. Assim, se você quiser garantir a identidade total de título e de intérprete, precisa construir uma consulta ligeiramente diferente.

12. Experimente mais. Copie a primeira consulta e cole-a como cnsMP3comLetras11. Abra-a em modo Design e arraste o campo Intérprete de uma tabela para o mesmo campo na outra. Com isso, estamos dizendo que tanto o título como o intérprete devem coincidir nas duas tabelas.

13. Agora, copie a tabela cnsMP3comLetras2 e cole-a como cnsMP3comLetras22. Arraste o campo Intérprete da mesma forma.

14. Execute, lado a lado, as consultas 11 e 22. Embora se baseiem em tabelas diferentes, elas dão os mesmíssimos resultados. A diferença, claro, está na busca de dupla identidade: de título e de intérprete. Embora se trate de consulta simples, um pequeno detalhe pode alterar consideravelmente os resultados.

15. O Access, nos bastidores, trabalha com a linguagem SQL. Trata-se de uma linguagem declarativa, específica para a manipulação de bancos de dados. Quando você monta uma pesquisa na janela gráfica de consulta, o programa vai criando internamente uma declaração SQL. Para vê-la, abra uma consulta e em seguida dê o comando Exibir/Modo SQL.