Há de se
fazer algumas observações referentes às tabelas feitas. Na tabela
Produto, além de alterar a propriedade Valor automático
do campo produto, também precisamos modificar as propriedades Casas
decimais para 2 nos campos preço_custo e preço_venda porque
vamos trabalhar com valores monetários que utilizam duas casas
decimais para os centavos. Temos que fazer isso para que possamos
acrescentar os centavos aos valores dos custos.
Mas antes de continuar, caso tenha se perdido, acesse o que já fizemos em nosso banco de dados na Parte 1 e Parte 2
A sua
lista de tabelas deve ficar como as mesmas configurações que
apresentamos em nossa lista acima. É muito importante também que os
nomes do banco (estoque.odb), das tabelas e dos campos sejam iguais
aos desse tutorial, para evitar erros de referência mais a frente.
Os Tipos
de campos Text se diferenciam. Veja como saber qual deve ser
utilizado:
● Text [
Varchar ] - Todos os campos do tipo Text são Text [ Varchar ], pois
este campo permite armazenar vários caracteres.
● Text [
Char ] armazena somente um caractere.
● Text [
Varchar_ignorecase ] é semelhante ao Text [ Varchar ] porém não
faz distinção entre letras maiúsculas e minúsculas.
Exemplos:
● Text [
Varchar ] “Revista” não é a mesma coisa que “revista”
● Text [
Varchar_ignorecase ] “Revista” é a mesma coisa que “revista”
Os Relacionamentos
Pelo o que
já mostramos na introdução ao base e também na construção das
tabelas já é possível rabiscar como seriam construídas as
relações no banco de dados. Se para as tabelas precisamos criar
tipos de informações com campos de dados classificados em
numéricos, textos ou decimais, era por uma razão: a inter-relação
entre os tipos de informações. É justamente a construção do
relacionamento entre os dados nas diferentes tabelas que faz com que
um banco de dados tenha eficácia em sua tarefa de organizar dados
para gerar informações e é isso que veremos neste tópico.
Para
tabelas poderem relacionar-se entre si devemos deve-se proceder da
seguinte maneira: clique no menu Ferramentas >
Relações.... Por padrão no LibreOffice, quando vamos adicionar
pela primeira vez as tabelas no editor de relações, a janela
Adicionar tabelas é aberta e por meio dela poderemos
adicionar quantas tabelas quisermos, adicionar uma a uma e criar
relações entre duas por vez ou inserir todas, fechar a janela e
partir para a criação de relações.
Do
jeito mais fácil:
● Selecione
a tabela e em seguida clique em Adicionar, para
poder adicionar mais objetos para serem relacionados entre si;
● Adicione
todas as tabelas e conclua fechando a janela Adicionar
tabelas. Com isso terá menos janelas abertas e limpará a sua visão
para o que importa.
Seu editor
de relações vai ficar com as tabelas alinhadas como na figura
abaixo.
Como
resultado você retá cinco janelas contendo os nomes dos campos de
nossas tabelas alinhadas e prontas para receberem os relacionamentos.
Caso não consiga ver os textos, basta clicar com o mouse sobre a que
estiver com problema, para selecioná-la, e segurando o mouse nas
bordas, arrastar para expandir a altura ou largura.
Agora está
tudo pronto para começar a brincadeira. Há mais de uma forma de se
relacionar os dados de uma tabela com outra, mas aqui mostraremos o
modo mais prático.
Vamos
começar relacionando a tabela Cliente com a tabela Pedidos.
-
Com um clique com o botão esquerdo do mouse sobre o campo codigo_cliente da tabela Cliente (isto é, a tabela onde codigo_cliente é chave primária) e mantendo o botão pressionado arrasta-se o mouse até o campo codigo_cliente da tabela Pedidos (que embora tenha dados numéricos, não é a chave primária na sua tabela).
Com esse
processo feito será estabelecida uma relação entre os dados de uma
chave primária referente ao numero cadastral de um cliente para o
número dele quando este efetuar o pedido de uma mercadoria para ser
comprada. Ao final, o editor mostrará uma linha contínua ligando as
duas tabelas pelos dados descritos acima com o número 1 ao lado do
campo da tabela Cliente (que é a fonte de informação, ou seja, a
origem do dado) e com a letra n ao lado do campo da tabela Pedidos
(que tem o dado derivado da tabela clientes). Destaca-se a utilizada
de um número 1 para n, ou simplesmente, o tipo “um para muitos”.
Nesta relação, um cliente pode fazer muitos pedidos, ou
muitos pedidos podem pertencer a um cliente específico.
Uma outra
maneira de estabelecer a relação é clicando sobre um dos nomes de
dados na tabela de origem e em seguida, na parte de cima, clicar no
botão de relações. Na janela que abrir-se-á selecionamos do lado
esquerdo e de cima a tabela que tem o dado original e no lado direito
superior, a que tem o dado derivado. Na parte de baixo, à esquerda
selecionamos qual o dado que tem a chave primária ou outro dado de
origem (como seria no caso deste banco de dado, pois adotamos o uso
do integer como fonte) e à direita, o que está na tabela e que se
busca do dado da selecionada á esquerda. E mais abaixo temos as
opções de tipo de relação, como por exemplo, se é de um para
muitos ou para um entre outras opções.
Mas de
qualquer modo o resultado obtido deve ser este:
Agora
vamos à segunda relação: vincular a tabela Pedidos e a tabela
DetalhePedido. Para tanto procederemos da mesma forma que antes,
apenas mudaremos as tabelas, mas a lógica é igual:
-
Com um clique com o botão esquerdo do mouse sobre o campo codigo_pedido da tabela Pedidos (isto é, fonte ou origem de dados de cadastro) e mantendo o botão pressionado arrasta-se até o campo codigo_pedido da tabela DetalhePedido (que não é chave primária e buscará os dados cadastrados).
Após isso
partiremos para mais um relacionamento: entre a tabela DetalhePedido
e a tabela Produto, para poder criar o meio para que se façam os
orçamentos e pedidos de compra ou venda de mercadorias em nosso
programa de estoque:
-
Procedemos com um clique do mouse sobre o campo codigo_produto da tabela DetalhePedido (contém a chave primária do cadastro de produtos)e mantendo o botão pressionado arraste até o campo codigo_produto da tabela Produto, que não é chave primária e buscará dados daquela.
E agora
vamos para o último relacionamento, desta vez entre a tabela de
cadastro de Produto e a tabela de cadastro de Fornecedor. E os
procedimentos se repetem novamente sem surpresas:
-
Clique sobre o item codigo_fornecedor na tabela de cadastro de Produto e arraste-o para o campo codigo_fornecedor da tabela de fornecedores.
Ao
terminar isso teremos todos os relacionamentos prontos e seu mapa de
relacionamentos deve ficar semelhante a figura a seguir.
Acreditamos
que devem ter notado que entre a tabela Pedidos e a tabela
Produto existe a tabela DetalhePedido.
Esta tabela que
criamos serve como uma ponte. Este tipo de relacionamento se chama de
“muitos para muitos”, pois um único pedido pode conter vários
produtos e também um produto pode estar em vários pedidos. Por
exemplo, vamos imaginar o caso de uma empresa que venda equipamentos
de combate a incêndio e receba os orçamentos por e-mail. Por dia a
empresa pode receber vários pedidos de orçamentos de pessoas
interessadas em adquirir seus produtos ou que precisem de seus
serviços. Um único cliente pode precisar de uma completa rede
hidráulica para se adequar às normas de segurança e exigidas no
Auto de Vistoria do Corpo de Bombeiros (AVCB). Assim, a empresa
criará a sua relação de produtos, com quantidades, preços e prazo
de entra. É o orçamento de vendas para o único cliente, que se
aceitar, adquirirá vários produtos da empresa.
Nosso
tutorial é bem detalhado, no entanto, é possível que venham a
ocorrer erros na hora de relacionar as tabelas e isso interferirá
mais adiante, na criação de consultas e relatórios. Deve-se
reparar bem que todos os campos que foram ligados são do tipo
Integer (Inteiro). Se o editor retornar algum erro quando você
estiver relacionando as tabelas volte no editor de tabelas e veja
qual foi o tipo de dado que você atribuiu a este campo.
Com
isso terminamos a fase de criação de relações entre as tabelas.
No próximo tópico entraremos na parte da formulação das
consultas, que servirão posteriormente para a base dos relatórios
de controle e verificação dos estoques.
Nenhum comentário:
Postar um comentário