EasyEstoque


Banco para gerenciamento de lojas criado utilizando PostgreSQL versão 9.2.4.

Download: http://www.enterprisedb.com/downloads/postgres-postgresql-downloads


Aula 12


3ª parte


Criar Banco de Dados


Imagens das 19 tabelas do banco, mostrando nome da classe (tabela), atributos (campos), tipos e chaves, com alguns dados inseridos.


  • PDF contendo as imagens.
Arquivo:EstruturaEasyEstoque.pdf


Criar relações


Visões do BD com suas classes e relacionamentos.


  • Visão do DER sem os tipos de dado, para melhor visualização de campos nulos e não nulos.


  • Visão com os tipos de dados para cada atributo.



Arquivo de backup do banco completo.

Download: http://www.sendspace.com/file/eah2t3


Procedimento de Backup


  • Clicar sobre o banco que deseja fazer o backup com o botão direito e ir na opção backup.


  • Escolher o formato e o nome do arquivo, clicar em backup.



Procedimento de Restore


  • Entrar no pgAdmin III, acessar o seu servidor e criar um banco.
CREATE DATABASE teste;
  • Clicar com o botão direito sobre o banco criado.


  • Selecionar a pasta e o formato utilizado no backup, clicar em restore.



Gerar visões e relatórios


SELECT utilizado para no mínimo 5 resultados.


  • SELECT da VIEW detalhesdosclientes:
SELECT nome, rg, pessoafisica.cpf, telefone, celular, logradouro, pessoafisica.cep, bairro, numero, complemento, cidade, unidadedafederacao 
FROM clientes 
INNER JOIN pessoafisica ON (clientes.cpf = pessoafisica.cpf) INNER JOIN enderecos ON (pessoafisica.cep = enderecos.cep) 
INNER JOIN estado ON (enderecos.uf = estado.uf) ORDER BY nome;



  • SELECT da VIEW detalhesdosprodutos:
SELECT nome, nomedamarca, cor, genero, tamanho, dimensoes, precosugerido, observacoes FROM mercadorias 
INNER JOIN marca ON (mercadorias.idmarca = marca.idmarca) INNER JOIN tamanhosmercadoria 
ON (mercadorias.codmercadoria =  tamanhosmercadoria.codmercadoria)
INNER JOIN genero ON (mercadorias.idgenero = genero.idgenero) INNER JOIN tamanho ON (tamanhosmercadoria.idtamanho = tamanho.idtamanho) 
INNER JOIN categorias ON (mercadorias.idcategoria = categorias.idcategoria) ORDER BY categoria;



  • SELECT da VIEW mercadoriasemestoque:
SELECT nome, estoque.idtamanho, cor, quantidadedisponivel, localizacaodamercadoria FROM estoque INNER JOIN mercadorias 
ON (estoque.codmercadoria = mercadorias.codmercadoria) INNER JOIN localdamercadoria ON (estoque.idlocal = localdamercadoria.idlocal) 
INNER JOIN tamanho ON (estoque.idtamanho = tamanho.idtamanho) INNER JOIN categorias ON (mercadorias.idcategoria = categorias.idcategoria)
ORDER BY categoria;



  • SELECT da VIEW cabecalhonotafiscal:
/*apelidando pessoafisica pois ela é referencia de duas tabelas nessa mesma view, e não é possível dar dois INNER JOIN*/
/*usando AS para "apelidar" o atributo nome, pois ele é o mesmo para funcionarios e clientes*/
SELECT cli.nome AS cliente, idvenda, fun.nome, datadavenda, horadavenda, total, numerodeparcelas FROM venda 
INNER JOIN clientes ON (venda.idcliente = clientes.idcliente) INNER JOIN funcionario ON (venda.login = funcionario.login) 
INNER JOIN pessoafisica AS cli ON (clientes.cpf = cli.cpf) INNER JOIN pessoafisica AS fun ON (funcionario.cpf = fun.cpf)
INNER JOIN parcelamento ON (venda.idparcela = parcelamento.idparcela) ORDER BY datadavenda;



  • SELECT da VIEW clientesdevedores:
SELECT nome, telefone, celular, saldo FROM clientes INNER JOIN pessoafisica ON (clientes.cpf = pessoafisica.cpf) WHERE saldo < '0';



DML


Apresentação DML com comandos utilizados para manipulação do BD.