You are on page 1of 11

Criando a sua Loja Virtual Objetivos e Modelagem de dados

Se voc deseja criar um site de comrcio eletrnico - uma Loja Virtual - dever
levar em conta os diversos aspectos envolvidos neste processo. A definio da
tecnologia utilizada , o perfil dos usurios , a segurana das transaes , a
qualidade e quantidade das informaes e a estrutura de suporte , dentre outros
aspectos , podem ditar o fracasso ou sucesso do seu site de e-commerce.
Iremos mostrar as principais etapas envolvidas na criao de uma loja virtual
usando banco de dados. Ao final deste ltimo captulo voc estar apto h criar a
sua prpria loja Virtual na WEB usando os conceitos aqui descritos.
Abordaremos um exemplo simples, mas que envolve praticamente todas as tarefas
que voc vai precisar saber para criar a sua prpria loja virtual. No iremos aqui
nos preocupar com a aparncia do site (voc vai perceber que isto verdade).
Nossa preocupao ser mostrar de forma clara cada conceito tcnico empregado
no desenvolvimento do projeto. Isto no quer dizer que voc no deve se
preocupar com a aparncia. Uma interface inteligente que apresente com clareza a
empresa e seus produtos e com todas a informaes necessrias para orientar o
usurio que acesse o seu site fundamental. Nada de abusar de imagens e tornar o
acesso ao site lento a ponto de irritar o internauta , nem usar uma interface tosca e
rudimentar o que poderia causar desconfiana aos usurios.

O objetivo Eu quero vender meus produtos na WEB


Bem , voc possui uma Softhouse/Livraria (podia ser uma livraria, uma discoteca
, uma loja de eletrodomsticos , um revendedora de automveis, etc.) e decidiu
colocar os sistemas desenvolvidos pela sua empresa e os seus livros a venda na
Internet. Neste momento a sua dvida principal - "Por onde eu comeo ???".
Voc dever definir qual o objetivo do site, o pblico alvo, as informaes que voc
deseja exibir , os servios disponibilizados e a tecnologia a ser empregada para
construir o site. Simples !!! no mesmo ?
A primeira coisa que voc deve fazer pensar em como feita a venda de seus
produtos atualmente ou como seria feita na forma tradicional . Na maioria das
empresas o ciclo pode ser resumido da seguinte forma:

1-) feita a propaganda dos produtos. (informaes sobre os produtos)


2-) Os clientes entram em contato com a empresa. (Telefone, balo, fax, internet ,
vendedores, etc..)
3-) Os clientes examinam o produto (catlogo de produtos, demos, vendedores, etc..)
4-) Os clientes fazem o pedido do produto.
4-) Os clientes compram o produto.
5-) mantido um cadastro de clientes para mala direta para propaganda ou contato
posterior.

Na Internet , com algumas adequaes , o ciclo ser praticamente o mesmo, s


uma coisa vai mudar : o primeiro contato de seus clientes potenciais ser feito
virtualmente , ou seja , via Internet, atravs do site de sua empresa.
Para poder disponibilizar a sua loja virtual voc dever empregar a tecnologia que
permite concretizar o seu negcio na WEB , voc vai usar : HTML, JavaScript, ASP ,
ADO , SQL e banco de dados na Internet.

Modelando os dados Banco de dados, Tabelas , campos e registros


Voc j percebeu que vai precisar armazenar informaes em arquivos de banco de
dados. Essas informaes , para o nosso caso , so:

1-) Informaes sobre os produtos (identificao , nome, valor, forma de envio, etc..)
2-) Informaes sobre os clientes ( identificao, nome, endereo, etc..)
3-) Informaes sobre os pedidos dos clientes ( cliente, produto, quantidade, etc..)
Alm disto voc dever oferecer informaes sobre a sua empresa de um forma
clara para que o usurio tenha confiana em adquirir os seus produtos.
Como guardar essas informaes de forma eficiente e segura ? Dependendo da
plataforma onde voc pretende criar a aplicao a resposta ser diferente, mas
para podermos trabalhar com um universo maior de usurios iremos assumir que
voc ir usar um banco de dados padro Access , um arquivo com extenso mdb ,
para armazenar os seus dados.
A primeira coisa a fazer criar o seu banco de dados , para isso iremos utilizar o
Access 2000 vamos batiz-lo com o nome de Esoft.mdb. Ele conter todas as
informaes que precisamos para gerenciar nossa loja virtual.

Tabela Clientes
O prximo passo criar as tabelas para cada entidade que desejamos controlar , vamos
comear representando a entidade clientes com a tabela clientes. A tabela clientes ,
como o prprio nome diz , dever armazenar informaes sobre o nossos clientes , ento
devemos criar campos na tabela para cada atributo da entidade clientes. Vamos montar a
estrutura da tabela clientes:
Campo

Descrio

ClienteNome

O campo Nome representa o atributo que ir armazenar os nomes dos nossos clientes

ClienteEndereco

O campo Endereo representa o atributo que ir armazenar o endereo da entidade


clientes

ClienteCidade

O campo Cidade representa o atributo que ir armazenar o nome da cidade da entidade


clientes

ClienteEstado

O campo Estado representa o atributo que ir armazenar a sigla do estado da entidade


clientes

ClienteCep

O campo Cep representa o atributo que ir armazenar o codigo postal da entidade


clientes

ClienteTelefone

O campo Telefone representa o atributo que ir armazenar o nmero do telefone da


entidade clientes

ClienteEmail

O campo E-mail representa o atributo que ir armazenar o e-mail eletrnico da entidade


clientes

ClienteDocumento O campo Documento representa o atributo que ir armazenar o nmero do documento


(Rg,CIC ou CGC) da entidade clientes
ClienteSenha

O campo Senha representa o atributo que ir armazenar a senha que identificar o cliente
em nossa entidade clientes

ClienteSexo

O campo Sexo representa o atributo que ir armazenar o sexo (M,F) da entidade clientes

ClienteNascimento O campo Nascimento representa o atributo que ir armazenar a data de nascimento


(dd/mm/yyyy) da entidade clientes
Nossa tabela clientes apresenta 11 campos com os quais pretendemos identificar
um cliente. Todos os campos esto relacionados com a entidade clientes e cada
campo um atributo da entidade clientes. Assim, como primeira regra , podemos
dizer que sempre devemos criar tabelas separadas para cada entidade que
desejamos representar no banco de dados e , como segunda regra, devemos criar
um campo para cada atributo da entidade que desejamos identificar.
Mas h ainda um pequeno detalhe que precisamos ajustar em nossa tabela , como
queremos identificar cada cliente de forma a evitar duplicidade, como faremos com
clientes com o mesmo nome (homnimos) ? Para contornar este problema , se
quisermos identificar cada cliente de forma nica , teremos que atribuir um cdigo
nico a cada cliente. Vamos ento incluir um campo em nossa tabela chamado ID
(Identificador) que representar um cdigo nico atribudo a cada cliente, e que o
identificar. Aproveitando a funcionalidade do banco de dados Access nosso campo
ser definido como do tipo Autonumerao , significando que o prprio sistema ir
atribuir e incrementar o cdigo a cada cliente a medida que incluirmos os clientes
em nossa tabela. Iremos definir este campo como uma chave primria ; fazendo
isto no iremos permitir repeties de cdigos de clientes na tabela, pois o sistema
nos avisa gerando uma erro em tempo de execuo. Para encerrar nossa tabela
clientes iremos acrescentar a cada nome de campo da tabela o prefixo - Cliente.
Veja a abaixo como ficou a estrutura completa da nossa tabela clientes :

Tabela Produtos
Agora iremos criar a tabela produtos e campos para cada atributo da entidade
produtos. Da mesma forma que na tabela clientes, nosso desejo poder identificar
cada produto de forma nica. Para isso iremos atribuir um campo que ir conter um
nmero que representar o cdigo do produto e que ser nico para cada produto.
Este campo tambm ser do tipo Autonumerao e ser definido como a chave
primria da tabela. A estrutura para tabela produtos vem a seguir:
Campo

Descrio

ProdutoID

O campo ProdutoID , o atributo que ir armazenar o cdigo dos produtos .

Nome

O campo Nome representa o atributo que ir armazenar o nome de cada produto.

Valor

O campo Valor representa o atributo que ir armazenar o valor de cada produto.

Descricao

O campo Descrio representa o atributo que ir armazenar a descrio de cada produto


.

Urlimagem

O campo Urlimagem representa o atributo que ir armazenar o caminho de localizao


do arquivo imagem do produto.

paginas

Define o nmero de pginas que possui o livro

Autor

O nome do autor do livro ou Software

Categoria

A categoria na qual esta classificada o produto

peso

O peso em gramas do produto.

estoque

A quantidade atual do produto em estoque

A estrutura da tabela Produtos

Tabela Pedidos
A tabela pedidos dever armazenar os pedidos dos clientes . Assim , quando o cliente
escolhe um produto ele estar fazendo um pedido . Precisamos armazenar os dados
referentes a cada pedido feito por um cliente de forma a poder controlar nossa loja
virtual. A princpio poderamos pensar em sua estrutura como sendo da seguinte forma:
Campo

Descrio

Cliente

Campo para identificar o cliente que comprou o pedido

Nome

O nome do produto

ValorPedido

O valor do produto

Quantidade

A quantidade adquirida do produto

DataPedido

A data do pedido.

Fechado

Se o pedido foi completado ou no

Cartao

Qual cartao o cliente usou para fazer o pagamento

Afinal , estamos armazenando as informaes que precisamos , pois temos na


tabela: o nome cliente que fez o pedido , o nome , valor e quantidade do produto
adquirido, a data do pedido , a indicao se o pedido foi completado ou no e qual
o carto usado pelo cliente. Ao examinarmos melhor poderemos perceber que se
usarmos a tabela com a estrutura proposta nossa aplicao alm de desperdiar
espao em disco e memria no ir funcionar adequadamente e , o que pior ,
nos dar um grande trabalho de manuteno.
Vamos mostrar como ficaro os dados armazenados na tabela pedidos , usando
como exemplo os pedidos feitos pelos usurios hipotticos Joo e Jos. (para
simplificar adotamos materiais de escritrio como produtos). Veja como ficam os
dados na tabela:
Cliente

Nome

ValorPedido

Quantidade

DataPedido

Fechado

Cartao

Joao

Lpis 101

1.00

12/04/1999 Sim

Visa

Joao

Borracha

2.00

12/04/1999 Sim

Visa

Joao

Apontador

3.50

14/02/2000 No

Visa

Joao

Caneta

4.00

14/02/2000 No

Visa

Jose

Borracha

2.00

17/03/2000 Sim

Visa

Jose

Lpis 101

1.00

17/03/2000 Sim

Visa

Voc percebeu que temos uma redundncia em nossos dados ? O nome do


produto, valor e quantidade so repetidos desnecessariamente ocupando assim
espao. Outro problema a identificao do pedido do cliente. Perceba que Joo
tem dois pedidos , mas como identific-los ? Imagine agora a seguinte situao :
Voc Alterou o nome de um produto e precisa refletir isto na tabela pedidos. Vai ter
que alterar todos os pedidos para aquele produto. Sentiu o drama ???
Vamos melhorar a nossa tabela pedidos adotando os seguintes procedimentos:

1. Introduziremos um campo chamado PedidoID para identificar cada pedido


de forma nica. Ele ser do tipo autonumerao e ser a chave primria.
Assim cada pedido ter um cdigo nico que o identificar.

2. O campo Cliente que armazena o nome do cliente, ser substitudo pelo


campo ClienteID e ir representar o cdigo do cliente j utilizado na tabela
clientes , de forma que sabendo o cdigo do cliente teremos todos os dados
relacionados na tabela clientes.

3. Incluiremos o campo DataPedido que nos informar sobre a data do


pedido.

4. O campo quantidade ser removido , pois cada pedido ter identificao


5.

nica , logo a quantidade dever fazer parte de uma outra tabela que ir
detalhar o pedido feito.
O campo Cartao ser substitudo pelos seguintes campos:

CartaoCredito - O nome do carto de crdito utilizado no pagamento.


NumeroCartao - O nmero do carto de crdito.
TitularCartao - O nome do titular do carto de crdito.
ValidadeCartao - A validade do carto de crdido.

6. Mantemos o campo ValorPedido que ir determinar o valor do Pedido.


7. Vamos introduzir o campo ValorFrete para definir qual o valor do frete a ser
cobrado no pedido.

8. Vamos criar tambm campos para identificar o destinatrio do pedido.( O


destinatrio pode no ser necessariamente o usurio que faz o pedido. )

NomeDestinatario - O nome do destinatrio.


EnderecoDestinatario - O endereo do destinatrio
CidadeDestinatario - A cidade do destinatrio.

EstadoDestinatario - O Estado do destinatrio


CepDestinatario - O cep do destinatrio.

9.

O campo Fechado ir indicar se o pedido foi efetivado com sucesso ou no.


Este campo assumir os valores Verdadeiro ( True ) quando o pedido tiver
sido concludo e Falso ( False) caso o usurio tenha cancelado ou no tenha
concludo o pedido.

Nossa tabela Pedidos ficou com a seguinte estrutura:

O campo datapedido foi definido como do tipo Data/Hora pois ir armazenar valores
do tipo data.
O campo fechado foi definido como do tipo Booleano, podendo assumir dois valores
True/Sim e False/No. Quando um pedido estiver aberto o valor assumido ser
False/No.
A tabela itens do Pedido
Definimos que cada pedido ser identificado de forma nica , desta forma um
pedido poder conter diversos produtos que so os itens do pedido feito pelo
cliente. Devemos criar uma tabela para armazenar os itens do pedido. Ela dever
conter : o cdigo do pedido, o cdigo do produto , a quantidade adquirida do
produto e um campo para identificar cada item de forma nica , um campo
autonumerao e chave primria da tabela. A tabela itens_pedidos ter a
seguinte estrutura:

Cada pedido ter um cdigo nico e ser composto por diversos itens que
comporo o pedido. A relao entre as tabelas ser o campo PedidoID que
representa o cdigo do pedido. Podemos visualizar esta situao na figura a seguir:

muito importante compreender esta implementao , pois aqui est o corao de


sua loja virtual.

Quando um cliente escolher um produto ser aberto um pedido para este


cliente, atribudo um cdigo ao pedido e ele ser armazenado na tabela
pedidos
Cada produto selecionado pelo cliente relacionado ao pedido recm aberto
ser gravado na tabela itens_pedidos

A tabela Cartes
A tabela Cartoes dever armazenar um identificador para cada carto e o nome do
carto correspondente. O campo CartaoCreditoID representar este identificador,
ser do tipo Autonumerao e chave primria. O campo CartaoCreditoNome
representar o nome do carto permitido na transao. Assim a estrutura da tabela
Cartoes fica assim:

Os relacionamentos e a integridade referencial


Voc j deve ter percebido que temos campos relacionados em todas as tabelas
criadas at agora: a figura a seguir mostra todos os relacionamentos entre as
tabelas usadas em nossa loja virtual:
Relacionamentos entre as tabelas

Vemos que o campo ClienteID da tabela Clientes esta relacionado com o campo
ClienteID da tabela Pedidos O tipo de relacionamento de um-para-muitos , ou
seja, teremos um nico cdigo de cliente na tabela Clientes que poder estar
relacionado a muitos cdigos de clientes na tabela pedidos. Neste tipo de
relacionamento , como em todos os usados neste projeto, foi imposto a integridade
referencial.
A integridade referencial um sistema de regras que muitos bancos de dados
relacionais , inclusive o Microsoft Access , utilizam para garantir que os
relacionamentos entre registros de tabelas relacionadas sejam vlidos e que voc
no exclua ou altere, acidentalmente, dados relacionados.
Voc no poder excluir um cliente da tabela Clientes enquanto existirem pedidos
feitos para este cliente na tabela Pedidos; no poder excluir tambm um pedido da
tabela Pedidos enquanto existirem itens de pedidos relacionados a este pedido na
tabela Itens_Pedidos. A integridade referencial faz com o mecanismo do banco de
dados reclame e gere um erro em tempo de execuo , que deveremos tratar,
avisando ao usurio que a ao que ele est tentando realizar no permitida.
A tabela Frete

Precisaremos criar uma tabela onde iremos definir o preo do frete a ser para cada
pedido. Iremos definir preos para cada regio do pas , podendo inclusive isentar o
valor do frete em uma poltica promocional. A estrutura da tabela Frete a
seguinte:

1.
2.
3.
4.
5.

CodigoFrete - o campo que identifica cada frete


Estado - Indica a regio para o qual definimos o valor do frete.
PesoMinimo - O peso mnimo para determinado valor de frete.
PesoMaximo - O peso mximo para determinado valor de frete.
Valor - O valor do frete definido.

A tabela Estados
A tabela Estados ir conter o nome , cdigo e a sigla para cada estado. A sua
estrutura a seguinte:

1. Estado - indica o nome do estado


2. CodigoEstado - define o cdigo para o estado.
3. UF - representa a sigla do estado
A Tabela Categorias
A tabela Categorias ir definir a classificao por categoria de nossos produtos.
Como estaremos vendendo livros e Software , os softwares estaro catalogados na
categoria Software e cada livro dever ser includo em uma categoria relacionada
com o assunto sobre o qual trata o livro. A estrutura da tabela a seguinte:

1. CategoriaID - o cdigo da categoria


2. Descrio - define a categoria.
Como exemplo de categorias possveis podemos ter:

Todas as tabelas criadas estaro armazenadas em nosso banco de dados , o qual


denominamos ESoft.mdb. Com a criao das tabelas estabelecemos a estrutura
bsica onde iremos armazenar e gerenciar nossa Loja Virtual. bvio que
deveremos estar acompanhando toda a movimentao para permitir um suporte
eficiente ao ps venda de nossos produtos.

Copyright (c) 2000 - Jos Carlos Macoratti

You might also like