A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Eduardo Costa Gabriel Cypriano Rodrigo Calhau

Apresentações semelhantes


Apresentação em tema: "Eduardo Costa Gabriel Cypriano Rodrigo Calhau"— Transcrição da apresentação:

1 Eduardo Costa Gabriel Cypriano Rodrigo Calhau
Projeto Farmácia Paul Eduardo Costa Gabriel Cypriano Rodrigo Calhau

2 Escopo do Sistema Controle de Estoque Controle de Vendas
aviso automático de medicamentos com estoque abaixo de um limite configurável aviso automático de lotes com validade próxima do vencimento (configurável) Controle de Vendas Controle de Funcionários Controle de Clientes

3 Projeto Conceitual – parte 1

4 Projeto Conceitual – parte 2

5 Projeto Conceitual (UML com atributos)

6 Projeto Conceitual Diagrama de Estados - Lote

7 Mapeamento de heranças
Herança parcial Podem existir Vendas que não sejam VendaEntrega Abordagem com apenas uma tabela utilizando flags não serve, pois não suporta atributos not null de VendaEntrega Utilizamos abordagem de duas tabelas (superclasse e subclasse)

8 Mapeamento de heranças
Herança total Não podem existir PessoaFisica que não seja das subclasses Herança sobreposta Pode haver PessoaFisica que seja tanto Cliente quanto Funcionario Abordagem com apenas uma tabela utilizando flags não serve, pois não suporta atributos not null de VendaEntrega Abordagem com duas tabelas (subclasses) não serve, pois não é uma herança disjunta Utilizamos abordagem de três tabelas (superclasse e subclasses)

9 Outros Mapeamentos Relação NxN com atributos ItemVenda foi mapeada para uma tabela item_venda Atributo multivalorado Telefones de PessoaFisica foi mapeado para uma tabela telefones_pessoa_fisica (1a. Forma normal) Atributos derivados foram mapeados nas Views

10 Projeto Lógico 1FN – parte 1

11 Projeto Lógico 1FN – parte 2

12 Dependências Funcionais (diagrama parcial da 1FN)
Tabela Medicamento desnormalizada

13 Dependências Funcionais (diagrama parcial da 3FN)
Tabela Medicamento desnormalizada

14 Projeto Lógico 3FN (parcial)

15 Criação do Schema Domínios

16 Criação do Schema Tabelas (1)

17 Criação do Schema Tabelas (2)

18 Criação do Schema Tabelas (3)

19 Criação do Schema Tabelas (4)

20 Criação do Schema Tabelas (5)

21 Criação do Schema Tabelas (6)

22 Criação do Schema Tabelas (7)

23 Criação do Schema Tabelas (8)

24 Criação do Schema Tabelas (9)

25 Criação do Schema Tabelas (10)

26 Criação do Schema Views

27 Criação do Schema Restrições(1)

28 Criação do Schema Restrições(2)

29 Consultas Consulta 1: Dentre os funcionários que trabalham no caixa, recupere seu nome e o valor total de vendas efetuadas (quanto já vendeu), em ordem decrescente do valor de total de vendas. SELECT nome, SUM (valor_item) FROM item_venda, venda, pessoa_fisica WHERE (item_venda.num_boleto_fiscal = venda.num_boleto_fiscal) GROUP BY venda.cpf_caixa, nome, cpf HAVING pessoa_fisica.cpf = cpf_caixa ORDER BY SUM DESC

30 Item_Venda Pessoa_fisica Venda Resultado

31 Consultas Consulta 2: Recupere o valor total de descontos concedidos, via cupons de desconto, por mês, ordenados por ordem decrescente de valor SELECT round(SUM(descontos.valor_desconto), 2) AS valor_descontos, descontos.mes FROM (SELECT (valor_item * 100 / (100 - desconto_medicamento)) AS valor_desconto, to_char(data, 'Month/ YYYY') AS mes FROM (item_venda NATURAL JOIN venda)) AS descontos GROUP BY descontos.mes ORDER BY SUM(descontos.valor_desconto) DESC;

32

33 Plano de Execução

34 Consultas Consulta 3: Enunciado: Recupere para cada funcionário o seu nome e o valor de descontos concedidos por ele em cada mês. Consulta:

35 Consultas Consulta 3: Tabela funcionario VIEW valor_venda
Tabela pessoa_fisica Resultado

36 Consultas Consulta 4: Dentre os clientes que residem na cidade de Vitória, recupere seu nome e o valor total de compras efetuadas, em ordem decrescente do valor total de compras efetuadas SELECT nome, SUM(item_venda.valor_item) FROM (((item_venda JOIN venda ON venda.num_boleto_fiscal = item_venda.num_boleto_fiscal) JOIN endereco ON endereco.cpf_pessoa_fisica = venda.cpf_cliente) JOIN pessoa_fisica ON pessoa_fisica.cpf = venda.cpf_cliente) WHERE endereco.cidade = 'Vitoria' GROUP BY pessoa_fisica.nome ORDER BY SUM DESC

37 Resultado

38 Consultas Consulta 5: Recupere os nomes dos medicamentos mais vendidos, ordenados pelo número de unidades vendidas SELECT nome, SUM(item_venda.num_unidades_medicamento) FROM ((item_venda JOIN lote ON codigo_lote=codigo) JOIN medicamento ON codigo_barras_medicamento=codigo_barras) GROUP BY medicamento.nome ORDER BY SUM(item_venda.num_unidades_medicamento) DESC;

39 Resultado

40

41 Consultas Consulta 6: Enunciado: Recupere para cada funcionário o seu nome e a quantidade de entregas por ele efetuada, em ordem decrescente do número de entregas. Consulta:

42 Consultas Consulta 6: Tabela funcionario Tabela venda_entrega
Tabela pessoa_fisica Resultado da Consulta

43 Consultas Consulta 7: Recupere a razão social e o número de lotes devolvidos por ano de cada distribuidor, em ordem decrescente de lotes devolvidos SELECT distribuidor.razao_social, COUNT(*) AS nDevolucoes FROM lote, distribuidor, devolucao_lote WHERE (lote.cnpj_distribuidor = distribuidor.cnpj AND devolucao_lote.codigo_lote = lote.codigo) GROUP BY distribuidor.razao_social ORDER BY COUNT(*) DESC

44 Resultado

45 Consultas Consulta 8: Recupere para cada medicamento o seu nome e sua quantidade em estoque SELECT nome, SUM(qtde_estoque) AS quantidade_estoque FROM (medicamento JOIN lote ON codigo_barras_medicamento=codigo_barras) WHERE lote.qtde_estoque > 0 GROUP BY nome ORDER BY SUM(qtde_estoque) DESC;

46 Resultado

47 Plano de Execução

48 Consultas Consulta 9: Enunciado: Recupere para o conhecimento medicamento ‘Gadernal’ as dosagens existentes e a quantidade em estoque de cada uma das dosagens, ordenado pela quantidade em estoque. Consulta:

49 Consultas Consulta 9: Tabela lote Tabela medicamento Resultado

50 Consultas Consulta 10: Recupere para as cidades com mais de 5 entregas o seu nome e a quantidade de entrega, em ordem decrescente do numero de entregas. SELECT cidade, COUNT(*) AS nEntregas FROM (venda_entrega JOIN endereco ON venda_entrega.cpf_endereco = endereco.cpf_pessoa_fisica) GROUP BY cidade HAVING COUNT(*) > 5 ORDER BY nEntregas DESC

51 Resultado

52 Consultas Consulta 11: Para cada cliente, recupere seu nome e a quantidade de cupons de desconto já utilizados por ele, ordenando pela ordem decrescente da quantidade de cupons SELECT nome, SUM(item_venda.num_unidades_medicamento) FROM ((item_venda JOIN lote ON codigo_lote=codigo) JOIN medicamento ON codigo_barras_medicamento=codigo_barras) GROUP BY medicamento.nome ORDER BY SUM(item_venda.num_unidades_medicamento) DESC

53 Resultado

54 Consultas Consulta 12: Enunciado: Recupere a quantidade medicamentos genéricos contidos em vendas que foram entregues em Vila Velha. Consulta:

55 Consultas Consulta 12: Tabela lote Tabela medicamento

56 Consultas Tabela venda Consulta 12: Tabela item_venda Resultado

57 Consultas Consulta 13: Recupere para cada lote cujo tempo de expiração seja menor que o especificado no medicamento que ele representa o nome do medicamento e a quantidade em estoque dele SELECT tempo_expiracao_lote.codigo, nome, qtde_estoque FROM (tempo_expiracao_lote JOIN medicamento ON codigo_barras_medicamento=codigo_barras) WHERE tempo_expiracao_lote.limite_dias_expiracao < medicamento.limite_dias_expiracao ORDER BY qtde_estoque DESC

58 Resultado

59 Plano de Execução

60 Consultas Consulta 14: Enunciado: Recupere para cada lote o seu código e seu tempo de expiração em dias e o medicamento que ele refere. Consulta:

61 Consultas Consulta 14: Enunciado: Recupere para cada lote o seu código e seu tempo de expiração em dias e o medicamento que ele refere. Consulta:

62 Consultas Consulta 14: VIEW tempo_expiracao_lote Resultado
Tabela medicamento

63 Consultas Consulta 15: Enunciado: Recupere para cada venda o numero do seu boleto, o nome do caixa que efetuou a venda, o nome do cliente (caso possua), o nome do entregador (caso possua) e o seu valor. Consulta:

64 Consultas Consulta 15: View valor_entrega Tabela venda
Tabela venda_entrega

65 Consultas Consulta 15: Tabela pessoa_fisica Resultado


Carregar ppt "Eduardo Costa Gabriel Cypriano Rodrigo Calhau"

Apresentações semelhantes


Anúncios Google