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.

Anúncios

Banco de Dados: Introdução

Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado assunto em uma determinada ordem.

A lista telefônica é um exemplo. Nela, percebemos que todos os dados referentes a uma pessoa estão na mesma linha. A isso chamamos registros.

O tipo ou categoria da informação (nome, telefone, etc.) sobre uma pessoa está separada em colunas, as quais chamamos campos.

Um Sistema Gerenciador de Banco de Dados Relacionais (SGBDR) é usado para armazenar as informações de uma forma que permita às pessoas examiná-las de diversas maneiras.

O Gerenciador Relacional de Bancos de Dados do Visual Basic e do Access é o Microsoft Jet. Ele pertence a uma categoria diferente dos gerenciadores tradicionais, como o Dbase e o Paradox, pois possui características em comum com os bancos de dados cliente-servidor. Tais características comuns são:

  • Todas as tabelas, índices, consultas, relatórios e código são armazenados num único arquivo MDB
  • Os campos de data suportam informação de hora
  • Admite o armazenamento permanente de comandos SQL
  • É possível forçar a integridade referencial entre tabelas
  • Os campos suportam valores nulos (Null)

No Dbase/Clipper, banco de dados significa um arquivo que contém a estrutura de dados (campos) e os dados (arquivo padrão DBF). Para o padrão MDB, este conjunto de dados e sua estrutura denomina-se Tabela.

Portanto, aquilo que o Dbase/Clipper considera um banco de dados, o Access e o Visual Basic consideram como uma tabela.

Podemos então definir tabela como um conjunto de dados dispostos em forma de linhas e colunas. Como exemplo, vejamos a tabela de endereços abaixo:

Nome Endereço Telefone
Carlos Lima Bueno Rua Pindamonhangaba , 1200 226-2356
Carlos Lima Buel Rua Voluntários de São Paulo , 2785 224-1078
Carlos Luiz Moraes Rua D. Pedro II , 123 223-0991

As linhas da tabela são os registros (nome, endereço, telefone) e as colunas são os campos. A interseção de uma linha com uma coluna define um atributo representando um valor do campo. Para a tabela representada acima, a interseção da segunda linha com a coluna nome define o valor do campo nome como Carlos Lima Buel.

Para o Access e o Visual Basic, todos os componentes do sistema estão em um único arquivo com extensão MDB. A este “pacote” consideramos o banco de dados, o qual é um conjunto das tabelas nele contidas.

Logo, quando abrimos um arquivo MDB, temos acesso a todos os componentes do sistema: tabelas, consultas, macros, relatórios, etc. A esses componentes chamamos objetos do sistema e em resumo, podemos descrevê-los a seguir:

Tabelas Onde armazenamos as informações que queremos tratar
Consultas Filtram as informações das tabelas e permitem sua visualização.Geralmente são comandos SQL
Formulários São janelas destinadas à edição e visualização dos dados
Relatórios Organizam os dados de tabelas e consultas de uma maneira que possam ser impressos
Macros Rotinas que automatizam determinadas tarefas sem necessidade de programação (utilizadas no Access)
Módulos Armazenam instruções e comandos da linguagem Access Basic/VBA e permitem melhorar e expandir os recursos do sistema

Obs.: Embora o Visual Basic utilize arquivos padrão MDB, formulários, relatórios e módulos são tratados de forma diferente pelo próprio Visual Basic e, nativamente, o Visual Basic não utiliza Macros. Além disso, no Access e Visual Basic, podemos utilizar outros arquivos além dos arquivos MDB, como arquivos DBF do Dbase/Clipper, arquivos do Paradox, do Btrieve, etc.

Os recursos de definição de dados do mecanismo Jet permitem a criação, a modificação e a exclusão de tabelas, índices e consultas. O Jet também aceita a validação de dados em nível de campo e registro. A integridade de dados tem suporte sob a forma de chaves primárias e integridade referencial entre tabelas.

Para manipulação de dados, o Jet admite o uso da SQL e de objetos de acesso aos dados. Esses objetos permitem ao programador manipular informações contidas no banco de dados através da definição das propriedades dos objetos e pela execução dos métodos associados aos objetos. A tabela abaixo relaciona esses objetos e descreve resumidamente suas funções:

Objeto Descrição
DBengine O objeto que referencia o mecanismo de bancos de dados do Microsoft Jet
Workspace Uma área na qual o usuário pode trabalhar com os bancos de dados
Database Uma coleção de informações organizadas em tabelas, juntamente com informações a respeito de índices e relações sobre as tabelas
TableDef Uma definição da estrutura física de uma tabela de dados
QueryDef Uma consulta armazenada de SQL das informações contidas no banco de dados.
Recordset Uma coleção de registros de informações sobre um único tópico
Field Uma única unidade de informações em um banco de dados
Index Uma lista ordenada de registros em um recordset, baseada em um campo chave definido
Relation Informações armazenadas a respeito do relacionamento entre duas tabelas

O Excel funciona como um BD

Como usar planilhas do Excel 97/2000/XP como bancos de dados?

Se você precisa manter uma lista de contatos pessoais, ou mesmo o cadastro de sua coleção de CDs ou DVDs, use os recursos de banco de dados do Excel. Crie uma tabela, com os campos de dados indicados na primeira linha. A qualquer momento, você pode acionar o comando Dados -> Classificar e reorganizar os registros com base em até três campos. Para pesquisar, use o comando Dados –> Filtrar –> AutoFiltro. Ao fazer isso, todos os campos, na linha de títulos, ganham uma caixa de verificação que lhe permite filtrar o banco de dados para ver apenas os registros de um determinado tipo. Se, por exemplo, a tabela de CDs tem um campo Gênero, ao escolher a opção Rock, você vai ver na tela apenas os registros com essa classificação. Você pode, ainda, montar um filtro em cima de um conjunto já filtrado. Dos discos de rock, descubra quais têm dez ou mais faixas. Abra a caixa de verificação do campo Faixas e escolha Personalizar. No primeiro campo, escolha a opção “é maior ou igual a” e ao lado escreva 10. Para voltar a visualizar a totalidade dos registros, desfaça o caminho: escolha Tudo, em Faixas, e Tudo, em Gênero. Os comandos Editar -> Localizar e Editar –> Substituir são outros recursos para trabalhar com os registros. Para um cadastro simples, o Excel quebra um bom galho. Agora, se você quiser montar um banco de dados com várias tabelas relacionadas, tela para digitação, relatórios variados… Bem, nesse caso, use um programa de banco de dados.

Use o WordPress para implantar um blog em seu site na web

wordpress1

Que tal acrescentar um blog ao seu site ou ao da sua empresa?

O blog pode ser um canal eficiente e dinâmico para divulgar notícias e interagir com as pessoas — amigos, parceiros ou clientes. Uma equipe de desenvolvimento de software, por exemplo, pode publicar nele dados sobre atualizações, versões beta e aperfeiçoamentos que estão sendo implementados, mantendo os usuários informados.

Neste tutorial, vamos usar o WordPress, um servidor de blog gratuito e de código-fonte aberto. Os requisitos básicos para rodá-lo são o servidor Apache, o interpretador de linguagem PHP e o gerenciador de bancos de dados MySQL. Esse trio de software faz parte da maioria dos planos de hospedagem em Linux oferecidos na internet. Vejamos os passo a seguir.

1. BASE DE DADOS

A primeira coisa a fazer é criar um banco de dados no MySQL para o WordPress. Para isso, usamos o phpMyAdmin, uma das ferramentas de gerenciamento mais populares para MySQL. Na tela principal do phpMyAdmin, digite um nome para o novo banco de dados e clique no botão Cria. Em seguida, vamos definir uma conta de usuário para o WordPress. Volte à página principal do phpMyAdmin e clique no link Privilégios. Em seguida, clique em Adicionar um Novo Usuário. No campo Nome do Usuário, digite um nome. Especifique uma senha de acesso no campo Senha e repita-a na linha abaixo. Na seção Global Privileges, clique no link Marcar All. Clique no botão Executa para criar a conta.

2. PREPARAÇÃO

O passo seguinte é preparar o WordPress para a instalação. Baixe o programa e descompacte-o. Você terá uma pasta chamada WordPress com arquivos. Abra, num editor de textos, o arquivo wp-config-sample.php e procure a seção MySQL Settings. Nas linhas seguintes, coloque o nome do banco de dados, o do usuário e a senha que você definiu no passo 1, como neste exemplo (omitimos os comentários para facilitar a visualização):

define(‘DB_NAME’, ‘wordpress’);

define(‘DB_USER’, ‘netsysoft’);

define(‘DB_PASSWORD’, ‘senha’);

Na quarta linha dessa seção, indique o servidor onde roda o MySQL. Na maioria dos provedores de hospedagem, o MySQL e o Apache estão no mesmo servidor. Nesse caso, o endereço é localhost (se tiver dúvidas, pergunte ao provedor), que é o padrão do WordPress. Fica assim:

define(‘DB_HOST’, ‘localhost’);

No final, salve esse arquivo com o nome wp-config.php.

3. HORA DE INSTALAR

Terminada a preparação, vamos instalar o WordPress. Faça o upload da pasta wordpress para o servidor. Abra o navegador e, na barra de endereço, digite a URL do seu site seguida de /wordpress/install.php, como neste exemplo: http://www.empresa.com.br/wordpress/install.php

O WordPress inicia um script de instalação e mostra uma mensagem inicial. Clique no link Let’s Go para prosseguir. Na tela seguinte (Step 1), o script configura a base de dados. Clique em Step 2 para avançar. O instalador vai criar as tabelas do blog. No campo no pé da página, digite o endereço do seu site (exemplo: http://www.empresa.com.br/).

Na etapa seguinte (Step 3), o instalador gera uma senha para o usuário admin, o administrador do blog. Anote-a. Com isso, concluímos a instalação e o blog já pode ser visitado. O endereço para acesso é do tipo http://www.empresa.com.br/wordpress.

4. AJUSTES BÁSICOS

O próximo passo é fazer a configuração básica do WordPress. Na tela final do script de instalação ou na própria página do blog, clique no link Login. Na caixa de autenticação, forneça o nome admin e a senha que você anotou no passo anterior. Você vai entrar no sistema de gerenciamento. Também é possível chegar a ele navegando até http://www.empresa.com.br/wordpress/wp-login.php.

No menu na parte superior da tela, clique em Options. A aba General deverá estar ativa. No campo Weblog Title, digite um nome para o blog. Na linha logo abaixo, ponha uma breve descrição dele. No campo E-mail Address, escreva seu endereço de e-mail. No item Membership, assinale se você quer que qualquer pessoa possa se cadastrar como usuário e se qualquer usuário pode publicar artigos.

Na seção Date and Time, digite -3 no campo Times in the Weblog Should Differ By (se o horário de verão estiver em vigor, use -2). Assim, estamos dizendo ao WordPress para empregar o horário oficial brasileiro. No campo Default Date Format, digite j/n/Y para exibir as datas no formato dia/mês/ano. Em Default Time Format, escreva G:i. Assim, os horários serão exibidos na forma horas:minutos, com contagem de 24 horas.

Quando terminar, clique no botão Update Options. Se quiser ver como ficou o blog, clique em View Site na barra de navegação superior. Depois, use o botão Voltar do navegador para retornar ao sistema de gerenciamento.

5. OS USUÁRIOS

Vejamos algumas dicas para gerenciar os usuários no WordPress. O programa permite que várias pessoas publiquem notícias no blog e comentem as mensagens. Cada usuário é classificado num nível de 0 a 10. Quanto mais alto esse número, mais recursos ficam acessíveis a ele. Quando alguém se cadastra, é classificado no nível 0. Nesse, é permitido apenas ler as mensagens. Mas o administrador pode promover o usuário a um nível mais elevado.

Para administrar os usuários, no sistema de gerenciamento, clique em Users. Observe as tabelas de autores e usuários. Na coluna Level, aparece o nível do usuário e os sinais + e -. Clique nesses sinais para aumentar ou diminuir o nível. Quando ele é maior ou igual a 1, a pessoa aparece na lista de autores e pode publicar mensagens. Se o nível for 0, a tabela mostra os sinais + e X. Clicando em X, o usuário será excluído.

6. TOQUES FINAIS

Seu blog já pode ser usado, mas há várias outras coisas que você pode fazer para personalizá-lo. Clique, por exemplo, em Links, no menu de administração, e troque os links falsos do blog por links para seções do seu site. Para criar categorias em que podem ser classificadas as mensagens, clique em Categories. Se quiser permitir a publicação de fotos no blog, clique em Options e, em seguida, na aba Miscellaneous. Nela, assinale o item Allow File Uploads e configure as demais opções. Quando terminar a configuração, não se esqueça de clicar no botão Update Options para executar as mudanças.

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.