5. Usando o Data Base

    Boa parte dos sistemas em uso nas empresas faz uso de uma base de dados. O Delphi fornece um gerenciador de banco de dados completo (Borland Database Engine - BDE) capaz de atender facilmente grande parte destes sistemas.

    Junto com o pacote do Delphi está o DataBase Desktop, que facilita muito a vida do programador, permitindo criar e modificar à vontade os arquivos, índices e referências.

    Neste ponto, gostaria de ressaltar a importância de planejar o sistema de arquivos que será utilizado antes de começar a criar arquivos no DataBase. Um sistema pequeno e didático de 4 arquivos (ou Tables) como o que iremos criar, pode até caber inteiro na nossa cabeça, mas na vida real, os sistemas são sempre maiores e mais complexos. Uma ferramenta muito útil para navegar pelos arquivos sem se perder é o DER - Diagrama de Entidade-Relacionamento. Através dele podemos ver as relações entre os arquivos e entender suas dependências.  Na página seguinte é mostrado o DER do nossa aplicação.

    Alias

    Um conceito importante que deve ser dominado antes de continuarmos é o de Alias. Pode ser considerado um apelido para um diretório. Você associa um nome a um diretório e passa a se referir ao diretório por esse nome. Por exemplo: suponha que enquanto você está desenvolvendo o sistema usa o diretório C:\Fontes\Sist1\DB para colocar os arquivos do banco de dados do sistema. Em vez de digitar a todo momento esse diretório quando criar uma referencia a um arquivo, você pode associar o alias alSist1 para esse diretório. Mas diminuir a digitação não é o principal benefício do alias. O principal é que depois que a aplicação estiver pronta, certamente será instalada em outro diretório, geralmente em outro micro e tendo um alias, basta modificar o diretório associado para o novo diretório e nenhuma mudança será necessária no sistema.

    DataBase Desktop

Para começar vamos dar uma boa olhada no DER da figura 3. Temos o cadastro de clientes que armazena dados sobre os clientes. Da mesma maneira, o cadastro de produtos. Para o cadastro de pedidos, existe um problema: Se o Pedido relacionar diretamente o Cliente com o Produto, teremos uma relação de M para M (Muitos para Muitos), por que um cliente pode pedir muitos produtos e um produto pode fazer parte de muitos pedidos. Procuramos sempre evitar esse tipo de relação, então incluímos mais uma relação: o Item de Pedido. Relacionando Pedidos com Produtos através de Itens de Pedido, ficamos apenas com relações de 1 para M. Um pedido pode ter muitos itens, mas um item só pode fazer parte de um pedido. Da mesma maneira, um produto pode fazer parte de muitos itens, mas um item só pode ter um produto associado.

    Figura 3 - DER do sistema

    Só mais um detalhe antes de ativar o Database Desktop. Cada arquivo de dados na base de dados tem associado a ele vários arquivos necessários para a criação de índices, verificação de referências, validação e etc. Portanto o número total de arquivos na base de dados aumenta rapidamente conforme vamos implementando novos cadastros. Por esse motivo, não é aconselhável deixar a base de dados no mesmo diretório que os programas fontes. Debaixo do diretório que você criou para o projeto, crie um subdiretório chamado DB. É nesse diretório que vamos criar nossa base de dados.

    Finalmente estamos prontos para ativar o DataBase Desktop. Depois de ativado, nossa primeira tarefa é criar um aliás para nossa base de dados. Para isso ative a opção File/Aliases no menú principal. O DataBase responde mostrando a janela de diálogo para os aliases. Pressione o botão New para criar um novo e em seguida digite alPedidos na caixa rotulada com DataBase Alias depois coloque o caminho completo do diretório na caixa Path. A seguir pressione o botão OK e pronto. Nosso alias está criado.

    Outro conceito do DataBase é o Work Directory (Diretório de trabalho). Este é o diretório default para o Desktop. Tudo que é feito no Desktop acontece nesse diretório. Clique a opção do menú File/Working Directory e na caixa Aliases escolha o alias que acabou de ser criado. Pressione Ok para confirmar.

    Para começar a criar os arquivos, selecione a opção File/New/Table. Na janela Table Type deixe a opção default (Paradox 5.0) e tecle Ok. Neste ponto o DataBase abre o diálogo de estrutura de arquivo (o Database chama de Table - Tabela). como aparece na figura 4.

    Figura 4. Diálogo para criação de tabelas

    Clientes

    Vamos começar criando o arquivo de clientes. Use os valores da tabela abaixo para definir os campos do arquivo de clientes:

Field Name

Type

Size

Key

CodCli

A

6

*

RzSocial

A

40

 

Endereco

A

40

 

Cidade

A

30

 

Cep

A

9

 

UF

A

2

 

 

    Clique no campo CodCli e ative a opção Required Field. Isso fará com que a digitação deste campo seja obrigatória e o BDE se engarregará de tomar os devidos cuidados sem necessidade de intervenção. Isso é desejável já que CodCli é a chave primária da tabela de Clientes.

    Ao terminar pressione o botão Save As. O diálogo é fechado e aparece a janela do arquivo criado. Podemos ver os nomes dos campos no topo das colunas, mas a tabela ainda está vazia. Para acrescentar um registro, pressione o botão Edit Data, é o botão mais a direita na barra de botões. Clique no campo CodCli do registro 1 e comece a digitação. Para mudar de campo tecle Enter ou Tab. Quando acabar, desligue o modo de edição pressionando novamente o botão Edit Data.

    Produtos

    Para criar a tabela de produtos, use os dados abaixo. Não esqueça de ativar a opção Required Field no campo CodProd.

Field Name

Type

Size

Key

CodProd

A

6

*

Descricao

A

30

 

PrecoUnit

$

 

 

 

    Pedidos

    A tabela de pedidos requer alguns cuidados extras, porque depende da tabela de clientes. Todo pedido deve pentencer a um cliente. Depois de criar os campos para esta tabela, selecione na caixa Table Properties a opção Referential Integrity e a seguir pressione Define. Agora voce deve relacionar um campo com uma tabela, no caso, o campo CodCli com a tabela de Clientes. Para isso dê um clique duplo em CodCli na lista à esquerda e outro na tabela de clientes que aparece na lista à direita. Pressione Ok e digite irClientes como nome para a relação. Esta operação torna a tabela de Pedidos oficialmente dependente da tabela de Clientes no ponto de vista gerenciador de banco de dados - BDE e nós podemos deixar esse controle por conta do BDE.

Field Name

Type

Size

Key

CodPed

A

6

*

CodCli

A

6

 

DtEmissao

D

 

 

Vendedor

A

12

 

 

    Itens de Pedidos

    Esta é a tabela mais dependente do sistema. Depende de pedidos e de produtos, então devem ser criadas duas Referential integrity: uma relacionando o campo CodPed com a tabela de pedidos, e outra relacionando o campo CodProd com a tabela de Produtos. Note também que esta tabela tem chave dupla: os dois primeiros campos compõe a chave primária, ou seja, para identificar um único registro é preciso saber os dois campos.

Field Name

Type

Size

Key

CodPed

A

6

*

NumItem

S

 

*

CodProd

A

6

 

Quantidade

N

 

 

 

    Lembrete

    Não esqueça de definir pelo menos um registro em cada tabela. Esse registro será útil mais adiante quando criarmos as janelas de cadastro. Quando definir os campos que são chave numa tabela, deixe sempre ligada a opção Required Field.

Voltar ao Índice