E dando continuidade à série de postagens sobre a criação de um programa de controle de estoque no LibreOffice Base (você pode acessar a primeira parte 1ª parte), nesta segunda parte mostraremos a construção básica e configuração dos dados nas tabelas. Vamos mostrar os tipos de informações e traçar o projeto de como faremos as relações para as próximas postagens.
As Tabelas
Um
conceito usado no LibreOffice Base e no MS Access é o de tabelas.
Quando trabalhamos com esses motores de banco de dados montamos um
sistema que efetue o relacionamento entre os dados cadastrados e
agrupados em tabelas, que nada mais são do que as estruturas
organizadores (catalogadoras) dos tipos de dados.
Para nosso
pequeno sistema de estoque, vamos utilizar cinco tabelas para
organizar os tipos de dados do estoque. A saber:
● Cliente,
que será onde cadastraremos os tipos de dados relacionados aos
clientes (nome, endereço, telefone)
● DetalhePedido,
que será o nosso orçamento, que movimentará os pedidos de compras
dos clientes, agrupando dados extraídos de tabelas de produtos e
fornecedores
● Pedidos,
que servirá como nosso orçamento de compras, contendo dados
semelhantes ao de detalhe do pedido;
● Fornecedor,
que trará os dados para cadastros de informações específicas
sobre fornecedores, tais como, nome, endereço, CEP, CNPJ e;
● Produto,
que servirá para o armazenamento dos dados de produtos, como preço,
descrição, fornecedor.
Devemos
ter em mente que a criação de uma tabela e a definição correta de
seus dados é a chave para que todo o processo pode ter continuidade,
pois os dados que se utilizaram de outros dados em outras tabelas
devem, obrigatoriamente, ter as mesmas configurações. Assim, vamos
começar por uma das tabelas e para nós, pelo menos, a mais básica
e fácil é a tabela Cliente.
Para
criá-la será preciso utilizar o Editor de tabelas.
● Clique
em Tabelas > Criar tabela no editor.... em seguida, na janela
que se abre, definiremos os nomes dos campos e os tipos de dados que
esses campos armazenarão (por exemplo, Nome de cliente traz um dado
gravado em forma de texto, um número de telefone traz um dado em
forma de telefone, um preço de mercadoria informa um dado como moeda
e por aí em diante).
Embora
sejam um pouco diferentes no conceito de tabela, aqui vamos construir
uma tabela semelhante aquelas criadas pelo LibreOffice Calc. Fazendo
uma analogia simples, o que se deve ter em mente e que será
diferente de uma tabela convencional do Calc é que o nome do campo
que você vai colocar é, na verdade, um rótulo para uma coluna, e
não a informação propriamente dita. E definir o tipo de campo é
dizer quais os dados que podem ser armazenados naquela coluna
(textos, números, datas, etc).
Não é a mesma coisa de uma tabela,
em que armazenamos dados prontos, aqui armazenamos a receita do que
será colocado. Se pensarmos numa analogia, podemos dizer que as
tabelas do Calc são os medicamentos comprados na farmácia, ao passo
que a tabela do Base é a aquela receita com a posologia a ser
seguida no tratamento.
Ao se
criar uma tabela estamos dizendo para o Base que aquilo é uma fonte
de agrupamento de dados. Agora com ela feita clique na primeira
célula e entre com o texto codigo_cliente.
Há de se
reparar que na primeira linha, na célula ao lado, automaticamente o
editor do Base atribui o Tipo do campo como definido por “Text
[VARCHAR”, isto é, variável de texto ao Nome do campo
criado. Mais adiante isso será melhor explicado, mas por enquanto,
só precisamos saber que não será este o tipo de dado que nos
servirá, pois precisaremos de um campo do tipo “Integer
[INTEGER]” , isto é, inteiro.
Isso deve ser alterado porque
criaremos um campo que armazene um número que vai ser o código do
cliente. E agora pergunto: o que é melhor para se definir um código
(ou um número de chamada ou inscrição, de um cliente? Um nome ou
um número inteiro? Pois pergunto novamente: o que faríamos se
tivéssemos uns três clientes com o nome Diego? O primeiro
cadastraríamos como Diego, tá, mas e o segundo? Algo como Diego 2?
e se tivéssemos cem clientes com este nome? Seriam algo mais
complicado ter um banco de dados com o código de cada um sendo
formado por vários caracteres alfanuméricos.
E agora retorno: e
quantos números existem? Número são infinitos, simples assim.
Nunca haverá repetição de código assim.
E assim
deve-se proceder trocando o tipo “texto”por número inteiro. Para
tanto, clique duas vezes na célula que está com “Text [VARCHAR”
e na lista que aparece (vide imagem acima) selecione a opção
“Integer [INTEGER]”. E depois, para que todo cliente possua um
código único altere a propriedade Valor Automático (na
parte de baixo da imagem, em Propriedades do Campo) deste campo para
Sim, pois
ao fazer isso, fica bloqueada a inclusão manual dos valores
neste campo e deixamos o próprio LibreOffice Base responsável por
inserir os números sequenciais para cada cliente que for adicionado
nesta tabela.
Para
explicar a função do Sim no valor automático, imagine que você
esteja preenchendo um cadastro num programa qualquer. Pode ser
cadastro de qualquer coisa e são várias coisas. Por exemplo, está
cadastrando contas para o plano de contas de um cliente de um
escritório de contabilidade num programa de contabilidade, fiscal e
folha de pagamento.
Pense: começa com caixa, depois tem banco,
aplicações, clientes, quando terminar terá uma centena de contas,
no mínimo. Imagine que toda hora você terá que digitar um valor no
campo de código e vai que você pula algum número por distração.
Seu plano de contas não seria linear e teria vãos nele. Por isso é
melhor que o próprio sistema preencha os números de código
automaticamente. Isso evita faltas de número, números pulados ou
repetidos.
E sendo
assim, este campo passa ter numeração única para todo o cadastro e
ainda, por sua característica peculiar, a ser considerado a chave
primária desta tabela, ou seja, poderemos referenciar os clientes em
cada registro (registro = linha preenchida na tabela, ou para ficar
mais claro, cada cliente que for cadastrado) por meio deste campo
deste campo. É desta forma que o banco de dados trabalha: para criar
informações se utiliza das relações entre grupos de tabelas que
nós criamos. Por exemplo, podemos saber qual o fornecedor tem feito
mais vendas para nós ao puxar um relatório que mostre o número de
compras e mercadorias adquiridas de cada um.
Para tanto ligamos a
informação do Nome do fornecedor (que é uma chave primária) na
tabela do fornecedor ao nome do fornecedor (que não é chave
primária, apenas número) na tabela de produtos.
Como já
mostramos na figura anterior, todos os tipos de campos possuem
propriedades (abaixo da tabela de inserção de dados e tipos) e elas
sempre estarão visíveis, além de que quando e você selecionar uma
propriedade, uma caixa de texto explicativa vai aparecer na parte
direita para informar qual a sua utilidade propriedade.
Exemplo -
na figura acima observe que a propriedade Valor automático (definido
como “Sim”) está relacionada com a qualidade do Base de
preencher automaticamente o campo a cada registro e em sua descrição
está o texto:
Determine
se este campo deve conter valores de incremento automático atribuído
a cada novo registro.
Agora que
o campo para o código do cliente foi criado e definido como chave
primária (código que trará todas as informações do cliente),
podemos passar para a conclusão dos demais itens, inserindo assim
outros utilizados nesta tabela e que trarão mais dados para nossos
relatórios e controles. Afinal de contas, é um cadastro, né?
É
possível inserir o campos como na figura a seguir, respeitando
sempre as letras maiúsculas e minusculas (e isso é muito importante
para futuras consultas, edição de fórmulas, assim como aquele
traço localizado a baixo de cada palavra (que muitos chamam de
underline, mas o mais correto seria underscore), para
que no futuro não ocorram problemas de referência em nosso
controle.
Nossa
tabela de cadastro de clientes comporta (ou agrupa, melhor dizendo)
sete dados tipos de dados de clientes, com mais o número da chave,
que é o código do cadastro, que por ser fundamental, nem o
consideramos como um dato da tabela (toda tabela deve ter uma chave
primária).
Deve-se lembrar que ao concluir a inserção dos dados, é
preciso clicar no botão salvar (que não vai salvar todo o banco de
dados, mas apenas esta tabela) e definir o nome da tabela como
Cliente.
Depois que
salvar, feche-se a janela do editor para não ficar a ocupar espaço,
até porque não precisaremos abrir agora. A tabela Cliente agora
estará listada na janela Tabelas e a partir de agora, todas as
tabelas que forem criadas serão adicionadas nesta mesma lista, como
mostra a figura a seguir.
Podemos notar aqui a forma como o
LibreOffice Base organiza o seu banco de dados, agrupando os objetos
em grupos de seleção de Tabelas, Consultas, Formulários e
Relatórios, do lado esquerdo, as tarefas (para criação de novos
objetos) à direita e á cima e em baixo, os itens constantes no
grupo da esquerda que estiver selecionado.
Repita os
passos anteriores para criar as próximas tabelas, lembrando de
respeitar os nomes das tabelas e dos campos,. É bom que os campos
tenham exatamente as configurações expressas na relação a seguir:
Nome
da Tabela: Pedidos
|
||
Nome
do Campo
|
Tipo
do Campo
|
Propriedades
|
codigo_pedido
|
Integer
|
Valor
automático = Sim
|
data_pedido
|
Date
|
|
codigo_cliente
|
Integer
|
|
pagamento
|
Text
|
|
Nome
da Tabela: DetalhePedido
|
||
Nome
do Campo
|
Tipo
do Campo
|
Propriedades
|
id_detalhe
|
Integer
|
Valor
automático = Sim
|
codigo_pedido
|
Integer
|
|
codigo_produto
|
Integer
|
|
quantidade
|
Integer
|
|
Nome
da Tabela: Fornecedor
|
||
Nome
do Campo
|
Tipo
do Campo
|
Propriedades
|
codigo_fornecedor
|
Integer
|
Valor
automático = Sim
|
nome
|
Text
|
|
cnpj
|
Text
|
|
endereço
|
Text
|
|
bairro
|
Text
|
|
cidade
|
Text
|
|
uf
|
Text
|
|
cep
|
Text
|
|
Nome
da Tabela: Produto
|
||
Nome
do Campo
|
Tipo
do Campo
|
Propriedades
|
codigo_produto
|
Integer
|
Valor
automático = Sim
|
nome
|
Text
|
|
quantidade
|
Integer
|
|
preco_custo
|
Decimal
|
Casas
decimais = 2
|
preco_venda
|
Decimal
|
Casas
decimais = 2
|
codigo_fornecedor
|
Integer
|
|
No
próximo item trataremos dos relacionamentos dos dados das tabelas
criadas.
Nenhum comentário:
Postar um comentário