1. Tabelas

    Todos os dados que são armazenados de forma permanente pelo Access, são guardados em tabelas. Cada tabela armazena dados sobre um tipo de coisa, pessoa ou relação entre coisas/pessoas. Numa tabela pode-se, por exemplo, guardar informação sobre alunos, disciplinas ou notas (que podem ser vistas como relações entre alunos e disciplinas). As tabelas estão organizadas em linhas e colunas. Em cada linha guarda-se dados sobre um item, isto é, sobre um aluno, disciplina ou nota, respectivamente para os exemplos dados. Cada coluna representa uma determinada característica que está associada a todos os items do tipo que a tabela representa. Por exemplo, numa tabela de alunos deverá existir uma coluna para o nome e outra para a data de nascimento. Em linguagem de bases de dados (BD), uma linha é um registo (record) e uma coluna é um campo (field). É possível ter um número potencialmente ilimitado de registos em cada tabela, mas o número de campos é fixo e limitado.

    Cada campo de uma tabela tem um tipo associado que limita o tipo de dados que lá podem ser guardados. O campo "nome" da tabela de alunos será do tipo texto e o campo "data de nascimento" será do tipo data. Assim, no campo "nome" poderão ser introduzidos caracteres alfanuméricos enquanto no campo "data de nascimento" apenas podem ser guardadas datas. Ao conjunto de campos que compõe uma tabela, chama-se a estrutura da tabela. O tipo determina também as operações que podem ser efectuadas com valores do campo. Por exemplo, não é possível fazer uma soma que envolva um campo do tipo texto.

    A informação inserida numa tabela é persistente. Isto é, cada registo criado numa tabela é imediatamente guardado no ficheiro da BD.

    1. Criação de Tabelas

Para criar uma tabela é necessário seleccionar o separador Tables na janela de BD, clicar no botão New. Aparece então uma caixa de diálogo que permite seleccionar a forma como a tabela será criada:

As opções disponíveis são:

 

Embora tanto a vista de folha de dados como o assistente possam parecer mais apelativos à primeira vista, a utilização dessas opções trazem algumas limitações e dificuldades para além de serem específicas do Access. Assim, será dado ênfase à vista de estrutura.

Exemplo: Para exemplificar a criação de uma tabela supõe-se que as pessoas com os dados que se seguem se inscreveram nesta faculdade:

Carolina Santos

R. Cedofeita, 14

Porto

11-12-1979

Maria Oliveira

R. Igreja, 3

Lisboa

23-3-1978

António Silva

Tr. Povo, 8

Moura

12-5-1979

Paulo Castro

R. Flores, 50

Porto

23-4-1979

Ana Oliveira

Pç. Município, 1

Moura

2-2-1979

Como se pode ver, a organização dos dados permite identificar facilmente a estrutura da tabela: os campos necessários são nome, morada, localidade e data de nascimento. Note-se que nem sempre é tão fácil perceber a estrutura da tabela a partir dos dados.¨

Depois de escolher a opção Design View na caixa de diálogo anterior, é apresentado a seguinte janela:

    1. Definição de Campos

Como explicado atrás, um campo é definido por um nome (Field Name) e um tipo de dados (Data Type). O Access possibilita ainda a introdução de uma pequena descrição do conteúdo do campo (Description).

O nome identifica o campo e possibilita aceder à informação nele contida. Embora tal possa não ser evidente à partida, a escolha dos nomes dos campos é muito importante para facilitar a utilização das tabelas. Será mais difícil perceber a que diz respeito o conteúdo de um campo se o nome fôr DN do que se fôr Data de Nascimento.

 

A escolha do tipo de dados é feita utilizando o menu:

O tipo de dados determina quer o tipo de informação que o campo pode armazenar, quer o espaço (em bytes) que a informação ocupa. Os tipos disponíveis no Access são:

 

A opção Lookup Wizard… [Assistente de Pesquisa…] não representa um tipo. Na realidade possibilita a definição de um campo e dos valores que pode tomar, ou manualmente ou a partir de outro campo, normalmente de outra tabela.

Uma vantagem de atribuir tipos aos campos é limitar os erros que os utilizadores podem fazer ao introduzir dados. Por exemplo, se um campo estiver definido como sendo do tipo Number não é possível introduzir letras.

A escolha do tipo de dados está relacionada com as operações que se pretende efectuar nesse campo. Quando fôr necessário efectuar operações aritméticas com os valores de um campo, então será melhor utilizar o tipo Number ou Currency (este último no caso de se estar a lidar com valores monetários). Por exemplo, para que seja possível calcular médias, o campo que guardar notas dos alunos deverá ser do tipo Number. Por outro lado, para guardar informação sobre nomes de pessoas convém usar o tipo Text. Nalguns casos a escolha poderá não ser tão imediata. Um exemplo comum são os campos onde se guarda números de telefone. Dado que não faz sentido efectuar operações aritméticas com esse tipo de informação podemos usar o tipo Text. Com este tipo de dados é possível efectuar a operação de concatenação, por exemplo, para acrescentar o indicativo da rede ao início do número. Por outro lado, se fôr usado o tipo Number, evita-se que o utilizador possa introduzir letras, dado que em Portugal os número de telefone são constituidos por algarismos.

 

Exemplo: Todos os campos da tabela de alunos da faculdade são do tipo Text excepto Data de Nascimento que é do tipo Date/Time, como se pode ver na figura:

Como os nomes dos campos são óbvios torna-se desnecessário introduzir qualquer descrição. Dado que o campo corrente está definido, já é possível ver na seccção de baixo da janela as suas propriedades, que serão explicadas a seguir.

Antes de prosseguir, grava-se a tabela (File, Save). O Access pede um nome que poderá ser Alunos.¨

      1. Definição das Propriedades dos Campos

Como se pode ver na figura acima, existe um conjunto de propriedades associado a cada campo. Essas propriedades permitem refinar as características desse campo. Para cada tipo de dados as propriedades variam. Uma utilização adequada destas propriedades diminui a possibilidade de introdução de dados errados e facilita a utilização da BD de forma significativa.

Em seguida são descritas as mais importantes, todas referentes ao separador General, indicando os tipos de dados a que dizem respeito:

FieldSize [Tamanho de Campo]

Exemplo: O tamanho dos campos Nome e Localidade da tabela Alunos será, respectivamente 30 e 20, enquanto o do campo Morada pode ficar nos 50 que o Access preenche automaticamente.¨

Format [Formatar] (todos os tipos excepto OLE Object) Os formatos possibilitam definir a maneira como o valor do campo vai ser visualizado e imprimido. O utilizador pode definir os seus próprios formatos ou usar formatos pré-definidos quando disponíveis:

Exemplo: O número "1200" no formato Scientific é representado como 1.2E+3 (isto é, o número 1.2 x 103).¨

Exemplo: A data "26 de Fevereiro 1996" no formato Medium Date aparece como 26-February-96. Se fôr utilizado Short Date, a data terá a forma 2/26/96 (repare que o mês aparece em primeiro lugar).¨

Exemplo: Utilizando o formato Short Time, a hora "17h30" seria apresentada como 17:30.¨

Exemplo: O formato do campo Data de Nascimento da tabela Alunos pode ser Medium Date dado que não é necessário saber a hora de nascimento.¨

Input Mask [Máscara de Edição] (todos os tipos excepto Memo, AutoNumber, Yes/No e OLE Object) As máscaras de edição formatam o campo no momento da introdução ou alteração de dados de forma a tornar esse processo mais simples para o utilizador.

Exemplo: A Input Mask do campo Data de Nascimento deve corresponder ao formato definido na propriedade Format, ou seja, Medium Date. Tal pode ser feito facilmente usando o assistente.¨

Default Value [Valor predefinido] (todos excepto AutoNumber e OLE Object) Definição de um valor a ser preenchido automaticamente pelo Access quando é criado um registo novo.

Exemplo: Assumindo que a maior parte dos alunos são do Porto, o Default Value do campo Localidade será "Porto".¨

Validation Rule e Validation Text [Regra de Validação e Texto de Validação] (todos os tipos excepto AutoNumber e OLE Object) Estas propriedades permitem, respectivamente, definir uma expressão que tem que ser verificada pelos valores introduzidos no campo e o texto a mostrar na caixa de diálogo apresentada ao utilizador no caso da regra não se verificar.

Exemplo:

Validation Rule

Validation Text

>=0

Digite um Número Positivo

>=0 AND =<20

Nota compreendida entre 0 e 20

0 OR >=100

Valor tem que ser zero ou maior que 100

Like "K???"

Digite 4 caracteres, começando por K

<=#1/1/95#

Digite data anterior a 1995

>=Date()

Digite data não anterior à de hoje

¨

Alguns comentários relativos ao exemplo anterior:

 

Exemplo: Dado que os alunos têm que ter pelo menos 17 anos para entrar na faculdade a regra de validação do campo Data de Nascimento será: Year([Data de Nascimento]) <= Year(Date()) - 16. A função Year extrai o ano de uma data que recebe como argumento. ¨

 

Não é permitido fazer referência a outros campos nas expressões usadas na Validation Rule de um campo. Para criar regras de validação que envolvam mais do que um campo é necessário recorrer à Validation Rule nas propriedades da tabela:

Required [Necessário] (todos menos AutoNumber) Definir obrigatoriedade de preencher o campo.

Exemplo: Na tabela Alunos é necessário que todos os campos sejam preenchidos, por isso a propriedade Required é activada em todos.¨

Indexed [Indexado] (todos menos Memo, OLE Object e HyperLink) Definir um índice para aumentar a velocidade de procura de registos por valores do campo respectivo. Este aumento de velocidade de acesso tem custos, nomeadamente em termos de espaço ocupado pelos índices e da velocidade na criação de registos, por causa da necessidade de actualizar todos os índices para cada novo registo. Por isto, a escolha dos campos a indexar tem que ser criteriosa, seleccionando apenas aqueles pelos quais se pretende efectuar procuras.

Há 3 valores possíveis para a propriedade Indexed: No, não cria índice;Yes (Duplicates OK), cria um índice e permite duplicados, isto é, que 2 registos tenham o mesmo valor para o campo em questão; Yes (No Duplicates), cria um índice mas não permite valores duplicados.

Exemplo: Na tabela de alunos será necessário, por exemplo, procurar registos por Nome e por Localidade. A propriedade Indexed é activada nestes campos usando o valor Yes (Duplicates OK) já que é possível que vários alunos tenham o mesmo nome ou que vivam na mesma localidade.¨

Por vezes existem tabelas em que são frequentes procuras com critérios que envolvem mais do que um campo. Para construir um índice com vários campos é preciso abrir a janela de índices (View, Indexes).

Na figura pode-se ver a janela de índices para a tabela Alunos. Podemos ver os índices para os campos Nome e Localidade criados através da propriedade Indexed desses campos. Todos os índices têm um nome (Index Name) que, no caso de envolver apenas um campo, é o nome desse campo. É também possível definir ordem crescente ou decrescente na coluna Sort Order. Criar um índice com vários campos é semelhante a criar vários índices seguidos só com um campo, apenas com a diferença de que o nome do índice é definido na primeira linha e deixado em branco nas linhas dos outros campos.

    1. Definição da Chave

      Em princípio, todos os registos de uma tabela serão diferentes entre si. Por esse motivo deverá ser possível identificar um campo (ou conjunto de campos) tal que conhecido o seu valor, é possível identificar de forma única o registo correspondente. Esse campo (ou conjunto de campos) é designado por chave (key). Uma tabela pode ter mais do que uma chave. Nesse caso escolhe-se uma e designa-se por chave primária (primary key).

      Exemplo: Numa BD que inclua campos para o número de Bilhete de Identidade e o número de contribuinte (NIF), qualquer um desses campos serve como chave. Dependendo da aplicação, escolhe-se um deles para ser a chave primária.¨

      É recomendável a definição de chaves para todas as tabelas que se cria: vão ter um papel importante no estabelecer de relacionamentos entre tabelas, possibilitando aceder a informação distribuída por diferentes tabelas. Por vezes nem mesmo todos os campos permitem identificar o registo (isto é, há registos duplicados) ou não existe nenhuma chave que faça sentido na aplicação em questão. Nesse caso, acrescenta-se um campo com esse fim que, no Access, tem normalmente o tipo de dados AutoNumber.

      Para definir a chave da tabela, deverá seleccionar o(s) campo(s) chave (clicando no selector de campo respectivo, usando a tecla CTRL no caso de mais do que um campo) e executar o comando File, Primary Key.

      Exemplo: Na tabela Alunos, dado que pode haver vários alunos com o mesmo nome, mesma morada, mesma localidade e mesma data de nascimento, nenhum dos campos existentes serve como chave. Assim, acrescentámos um campo Número do tipo AutoNumber que definimos como chave primária. A tabela ficará com o seguinte aspecto:

      ¨

      É preferível não usar como chave campos de texto com espaço para muitos caracteres, como, por exemplo, campos que guardam nomes porque é frequente os utilizadores introduzirem erros de difícil detecção neste tipo de campos (espaços a mais ou a menos, falta de acentuação ou maiúsculas em vez de minúsculas e vice-versa). No caso de não haver nenhuma boa alternativa, será melhor criar um campo código do tipo AutoNumber.

    2. Edição de Dados

      Definida a estrutura da tabela, esta está apta a guardar informação. Pode-se editar (inserir, eliminar registos ou alterar campos) directamente na tabela, apesar de ser mais apropriado efectuar estas operações via formulários.

      Para abrir a tabela executa-se o comando File, Open sendo necessário que a tabela Alunos esteja seleccionada na janela da BD. A tabela é apresentada com o aspecto de uma folha de cálculo, como se pode ver na figura. Os campos estão dispostos em colunas e os registos em linhas. Os registos estão ordenados pelo campo chave. O último registo da tabela, marcado com no selector de registos, é utilizado para inserir novos registos.

      Exemplo: Depois de criada, insere-se os dados na tabela Alunos:

      Note-se que o registo actual indica o número do registo, o que nesta tabela é por acaso o mesmo valor do campo Número.¨

      Quando edita dados num registo, toda a informação indicada na criação da tabela é utilizada: os campos são preenchidos inicialmente com os valores pré-definidos, é feita a validação do tipo de dados e aplicadas as regras de validação definidas. Para o utilizador se aperceber de quando está a alterar um registo, o ícone de registo corrente é substituido por um lápis. As situações de erro dão origem a caixas de diálogo, como por exemplo:

       

      Para eliminar um registo é necessário selecioná-lo (clicando no selector de registo) e carregar na tecla Delete ou colocar o cursor em qualquer campo do registo e executar o comando Edit, Delete.

    3. Alteração da Estrutura das Tabelas

Depois de definir a tabela, pode em qualquer momento eliminar e alterar campos existentes, inserir campos novos ou alterar a ordem pela qual os campos estão dispostos. Para efectuar estas operações são utilizados os processos usuais no ambiente gráfico do Windows: o rato, o menu Edit e a barra de ferramentas.

Hosted by www.Geocities.ws

1