Experimente!
As bases de dados e aplicações Web podem trazer grandes vantagens para a sua empresa. A estrutura da base de dados é essencial para poder alcançar os seus objetivos, quer pretenda gerir as informações de funcionários, fornecer relatórios semanais baseados nos dados ou controlar as encomendas de clientes. O tempo que despender a aprender sobre a estruturação de bases de dados irá ajudá-lo a criar bases de dados que funcionem corretamente desde o início e que possam ser alteradas consoante a evolução das suas necessidades.
Importante: As aplicações Web do Access são diferentes das bases de dados de ambiente de trabalho. Este artigo não fala sobre a estruturação de aplicações Web.
Conceitos e termos
Vamos começar por alguns conceitos e termos básicos. Para estruturar uma base de dados útil, crie tabelas que se centram num assunto. Nas suas tabelas, são recolhidos todos os dados necessários para o assunto nos campos que contêm a menor unidade de dados possível.
Bases de dados relacionais |
Uma base de dados na qual os dados estão divididos em tabelas semelhantes a folhas de cálculo. Cada tabela tem apenas um assunto, como clientes (uma tabela) ou produtos (outra tabela). |
Registos e campos |
Armazenamento dos dados numa tabela. As linhas (ou os registos) armazenam cada ponto de dados exclusivo, como o nome de um cliente. As colunas (ou campos) identificam as informações que estão a ser recolhidas sobre cada ponto de dados na menor unidade possível; o nome próprio poderá ser uma coluna e o apelido poderá ser outra. |
Chave primária |
Um valor que garante que cada registo é exclusivo. Por exemplo, pode haver dois clientes com o mesmo nome, Fernanda Sarmento. No entanto, um dos registos Fernanda Sarmento tem o número 12 como chave primária e outro tem a chave primária 58. |
Relações principal-subordinado |
Relações comuns entre tabelas. Por exemplo, um único cliente pode ter várias encomendas. As tabelas principais têm chaves primárias. As tabelas subordinadas têm chaves externas, ou seja, valores da chave primária que mostram como os registos da tabela subordinada estão associados à tabela principal. Estas chaves estão associadas por uma relação. |
O que é uma boa estrutura de base de dados?
Existem dois princípios fundamentais para uma boa estrutura de base de dados:
-
Evitar informações duplicadas (também denominadas dados redundantes). Ocupam espaço desnecessário e aumentam a probabilidade de erros.
-
Garantir que os dados estão corretos e completos. As informações incompletas ou inválidas podem ser utilizadas nas consultas e relatórios e levar a decisões feitas com base em informações incorretas.
Para ajudar a resolver estes problemas:
-
Divida as informações da base de dados em tabelas baseadas em assuntos com um foco restrito. Evite duplicar informações em várias tabelas. (Por exemplo, os nomes de clientes devem ficar apenas numa tabela.)
-
Associe tabelas utilizando as chaves em vez de duplicar dados.
-
Inclua processos que suportem e garantam a precisão e a integridade das informações da base de dados.
-
Estruture a sua base de dados tendo em conta as suas necessidades de criação de relatórios e processamento de dados.
Para melhorar a utilidade a longo prazo das suas bases de dados, siga estes cinco passos de estruturação:
Passo 1: determinar o objetivo da base de dados
Antes de começar, deve ter um objetivo para a base de dados.
Para manter a estrutura focada, resuma o objetivo da base de dados e consulte esse resumo com frequência. Se pretender, por exemplo, uma base de dados pequena para um negócio doméstico, poderá escrever algo simples, como "A base de dados de clientes contém uma lista de informações de clientes com o objetivo de criar mailings e relatórios". Para uma base de dados empresarial, poderá necessitar de vários parágrafos para descrever quando e como pessoas com diferentes funções irão utilizar a base de dados e os respetivos dados. Crie uma declaração de objetivos específica e detalhada para consulta ao longo do processo de estruturação.
Passo 2: localizar e organizar as informações necessárias
Reúna todos os tipos de informações que pretende registar, como nomes de produtos e números de encomenda.
Comece com as informações e os métodos de controlo existentes. Por exemplo, é provável que registe atualmente as notas de encomenda num registo financeiro ou que inclua as informações dos clientes em formulários de papel. Utilize essas origens para listar as informações que está atualmente a recolher (por exemplo, todas as caixas dos formulários). Para as informações importantes que não esteja a recolher, pense nas informações distintas de que precisa. Cada tipo de dados individual torna-se um campo na sua base de dados.
Não se preocupe em tornar a sua primeira lista perfeita, já que pode otimizá-la ao longo do tempo. No entanto, tenha em conta todas as pessoas que utilizam essas informações e peça-lhes ideias.
Em seguida, pense no que pretende com a base de dados e nos tipos de relatórios ou mailings que pretende criar. Certifique-se também de que está a recolher as informações necessárias para cumprir esses objetivos. Por exemplo, se pretender um relatório que mostre vendas por região, tem de recolher os dados de vendas ao nível regional. Experimente esboçar o relatório com as informações dispostas como as pretende ver. Em seguida, liste os dados de que necessita para criar o relatório. Efetue o mesmo para mailings ou outro tipo de resultados que pretenda da base de dados.
Exemplo
Suponha que dá aos clientes a possibilidade de optarem por receber (ou não receber) atualizações periódicas por e-mail e que pretende imprimir uma lista das pessoas que optaram por receber. Necessita de uma coluna Enviar E-mail na tabela Cliente, com valores permitidos de Sim e Não.
Para as pessoas dispostas a receber e-mails, necessita de um endereço de e-mail, o que também requer um campo. Se pretender incluir uma saudação inicial (como Sr. ou Sra.), inclua o campo Saudação. Se pretender tratar os clientes pelo nome próprio nos e-mails, adicione o campo Nome Próprio.
Sugestão: Lembre-se de dividir cada informação na menor unidade útil, como o nome próprio e o apelido para uma tabela de clientes. Em geral, se pretender ordenar, pesquisar, calcular ou criar relatórios com base num item de informações (como o apelido do cliente), deve colocar esse item no seu próprio campo.
Passo 3: dividir informações em tabelas
Divida os itens de informações em entidades ou assuntos principais, como produtos, clientes e encomendas. Cada assunto torna-se uma tabela.
Depois de ter a lista de informações necessárias, determine as entidades (ou assuntos) principais de que necessita para organizar os seus dados. Evite duplicar dados em várias entidades. Por exemplo, a lista preliminar para uma base de dados de vendas de produtos poderá ter o seguinte aspeto:
As entidades principais são as seguintes: clientes, fornecedores, produtos e encomendas. Por conseguinte, deve começar com essas quatro tabelas: uma para factos sobre clientes, uma para factos sobre fornecedores e assim sucessivamente. Esta pode não ser a estrutura final, mas é um bom ponto de partida.
Nota: As melhores bases de dados contêm múltiplas tabelas. Evite colocar todas as informações numa única tabela. Isso irá resultar em informações duplicadas, bases de dados maiores e mais erros. Estruture as tabelas de modo a registar cada facto apenas uma vez. Caso repita informações, como o endereço de um fornecedor, reestruture a base de dados para colocar essas informações numa tabela em separado.
Para compreender por que razão ter mais tabelas é melhor do que ter menos, observe a seguinte tabela:
Cada linha contém informações sobre o produto e o respetivo fornecedor. Uma vez que pode ter vários produtos do mesmo fornecedor, o nome e o endereço do fornecedor têm de ser repetidos várias vezes. Isto ocupa espaço desnecessário em disco. Em alternativa, registe as informações do fornecedor apenas uma vez numa tabela Fornecedores em separado e, em seguida, associe essa tabela à tabela Produtos.
Um segundo problema com esta estrutura torna-se evidente ao modificar as informações sobre o fornecedor. Suponha que necessita de alterar o endereço de um fornecedor. Uma vez que é apresentado em vários locais, o endereço poderá ser acidentalmente alterado num local, mas não nos outros. Registar o endereço do fornecedor em apenas um local resolve este problema.
Por fim, suponha que a Coho Winery fornece apenas um produto e que pretende eliminar o produto, mas manter o nome e o endereço de fornecedor. Com esta estrutura, é possível eliminar o registo do produto sem perder também as informações do fornecedor? Não é possível. Uma vez que cada registo contém factos sobre um produto, além de factos sobre um fornecedor, é impossível eliminar um sem eliminar o outro. Para manter estes factos separados, divida a tabela em duas: a primeira para as informações do produto e a segunda para as informações do fornecedor. Assim, ao eliminar um registo de produto, elimina apenas os factos sobre o produto e não os factos sobre o fornecedor.
Passo 4: transformar itens de informações em colunas
Decida que informações necessita de armazenar em cada tabela. Estes dados distintos tornam-se campos da tabela. Por exemplo, uma tabela Funcionários poderá incluir campos como Apelido, Nome Próprio e Data de Contratação.
Depois de escolher o assunto para uma tabela de base de dados, as colunas dessa tabela devem apenas armazenar factos sobre esse assunto específico. Por exemplo, uma tabela de produtos deverá armazenar factos apenas sobre produtos e não sobre os respetivos fornecedores.
Para escolher as informações a controlar na tabela, utilize a lista que criou anteriormente. Por exemplo, a tabela Clientes poderá incluir: Nome Próprio, Apelido, Endereço, Enviar E-mail, Saudação e Endereço de E-mail. Cada registo (cliente) na tabela contém o mesmo conjunto de colunas, pelo que armazena exatamente as mesmas informações para cada cliente.
Crie a sua primeira lista e, em seguida, reveja e otimize-a. Lembre-se de dividir as informações nos menores campos possíveis. Por exemplo, se a lista inicial tiver Endereço como um campo, divida-o em Rua, Cidade, Distrito e Código Postal ou, se os seus clientes forem multinacionais, em ainda mais campos. Desta forma, por exemplo, pode criar mailings no formato adequado ou criar relatórios sobre encomendas por distrito.
Depois de otimizar as colunas de dados em cada tabela, está pronto para escolher a chave primária de cada tabela.
Passo 5: especificar chaves primárias
Escolha a chave primária de cada tabela. A chave primária, como o ID do Produto ou o ID da Encomenda, identifica exclusivamente cada registo. Se não tiver um identificador exclusivo óbvio, utilize o Access para criar um.
Necessita de uma forma de identificar exclusivamente cada linha de cada tabela. Lembra-se do exemplo anterior em que dois clientes tinham o mesmo nome? Uma vez que têm o mesmo nome, necessita de uma forma de identificar individualmente cada um.
Por conseguinte, cada tabela deve incluir uma coluna (ou conjunto de colunas) que identifique exclusivamente cada linha. Esta forma de identificação é denominada chave primária e, normalmente, é um número exclusivo, tal como o número de ID de um funcionário ou um número de série. O Access utiliza chaves primárias para associar rapidamente dados de várias tabelas e apresentar os dados em conjunto.
Por vezes, a chave primária consiste em dois ou mais campos. Por exemplo, uma tabela Detalhes da Encomenda que armazene itens de linha para encomendas poderá utilizar duas colunas na respetiva chave primária: ID da Encomenda e ID do Produto. Quando uma chave primária utiliza mais de uma coluna também é denominada chave composta.
Se já tiver um identificador exclusivo para as informações numa tabela, como números de produtos que identificam exclusivamente cada produto no seu catálogo, utilize-o, mas apenas se os valores cumprirem as seguintes regras para chaves primárias:
-
O identificador será sempre diferente para cada registo. Não são permitidos valores duplicados numa chave primária.
-
Há sempre um valor para o item. Todos os registos da tabela têm de ter uma chave primária. Se estiver a utilizar várias colunas para criar a chave (como Família de Peças e Número de Peça), ambos os valores têm sempre de estar presentes.
-
A chave primária é um valor que não muda. Uma vez que as chaves são referenciadas por outras tabelas, qualquer alteração a uma chave primária numa tabela significa uma alteração à mesma em qualquer local em que seja referenciada. As alterações frequentes aumentam o risco de erros.
Se não tiver um identificador óbvio, utilize um número exclusivo arbitrário como chave primária. Por exemplo, poderá atribuir a cada encomenda um número de encomenda exclusivo com o único objetivo de identificar a encomenda.
Sugestão: Para criar um número exclusivo como chave primária, adicione uma coluna com o tipo de dados Numeração Automática. O tipo de dados Numeração Automática atribui automaticamente um valor numérico exclusivo a cada registo. Este tipo de identificador não contém informações factuais que descrevam a linha que representa. É ideal para ser utilizado como chave primária porque os números não mudam, ao contrário de uma chave primária que contém factos sobre uma linha, como um número de telefone ou o nome de um cliente.