Eduardo Costa Gabriel Cypriano Rodrigo Calhau

Slides:



Advertisements
Apresentações semelhantes
Abordagem Entidade Relacionamento
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Estudo de Caso, modelo Oracle 10g
SQL Avançado Continuação
O Modelo E-R Definição: Características
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados SQL TRIGGERS (Gatilhos)
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Sistema Gerenciador de Banco de Dados SGBD
Hierarquia de Visões de Objeto
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
SQL – DML Consultas envolvendo relacionamentos entre tabelas
Ordenação de Resultados
Operadores Especiais da SQL
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Prof. Alexander Roberto Valdameri
Banco de dados Profª Kelly Medeiros.
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
CACIQUE CONFECÇÕES.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Comandos de SQL Excel VBA II.
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
Vânia Maria Ponte Vidal
SQL Server 2012 Tipos de Dados e Tabelas
SQL Álvaro Vinícius de Souza Coêlho
Autora: Carla DeAngelis Autor: Adilson da Silva Lima
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
Design Patterns / Acesso ao banco de dados (java.sql)
Banco de Dados Aplicado ao Desenvolvimento de Software
Entrada de Produtos Posto de Combustível.
Especialização em Tecnologia da Informação
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Desenvolvendo um script SQL
Treinamento sobre SQL.
Baseado no material do Professor Raul Paradeda
Financeiro – Contas a Receber
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Treinamento SQL Server
Exercícios Para começar a fazer os exercícios a seguir, restaure um banco de dados que já contenha dados: Informe os comandos das resposta com o mesmo.
SQL Server Comando PIVOT.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
TRABALHO DE BANCO DE DADOS – POSTGRESQL
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Entrada de Produtos Manual
SQL – DML Consultas envolvendo mais de uma tabela
Modelo de base de dados relacional
Subconsulta na Cláusula FROM
Fundamentos de Banco de Dados Prof. Gale Correção da Prova
Professor Me. Jeferson Bussula Pinheiro.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Daniel Paulo SQL Módulo I Daniel Paulo
Daniel Paulo SQL Módulo I Daniel Paulo
Recuperação de Dados Banco de Dados Carina Farias
Introdução a Banco de Dados
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Banco de Dados Introdução à Linguagem SQL – Junção Manipulação com 3 Tabelas ou + em relacionamentos n/1 Esta aula é baseada em material produzido pelo.
INTELIGÊNCIA EMPRESARIAL Aula 9 - Modelagem de Data Warehouse.
Sistema de Controle de Encomendas
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Transcrição da apresentação:

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

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

Projeto Conceitual – parte 1

Projeto Conceitual – parte 2

Projeto Conceitual (UML com atributos)

Projeto Conceitual Diagrama de Estados - Lote

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)

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)

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

Projeto Lógico 1FN – parte 1

Projeto Lógico 1FN – parte 2

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

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

Projeto Lógico 3FN (parcial)

Criação do Schema Domínios

Criação do Schema Tabelas (1)

Criação do Schema Tabelas (2)

Criação do Schema Tabelas (3)

Criação do Schema Tabelas (4)

Criação do Schema Tabelas (5)

Criação do Schema Tabelas (6)

Criação do Schema Tabelas (7)

Criação do Schema Tabelas (8)

Criação do Schema Tabelas (9)

Criação do Schema Tabelas (10)

Criação do Schema Views

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

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

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

Item_Venda Pessoa_fisica Venda Resultado

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;

Plano de Execução

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:

Consultas Consulta 3: Tabela funcionario VIEW valor_venda Tabela pessoa_fisica Resultado

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

Resultado

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;

Resultado

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:

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

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

Resultado

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;

Resultado

Plano de Execução

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:

Consultas Consulta 9: Tabela lote Tabela medicamento Resultado

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

Resultado

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

Resultado

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

Consultas Consulta 12: Tabela lote Tabela medicamento

Consultas Tabela venda Consulta 12: Tabela item_venda Resultado

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

Resultado

Plano de Execução

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:

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:

Consultas Consulta 14: VIEW tempo_expiracao_lote Resultado Tabela medicamento

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:

Consultas Consulta 15: View valor_entrega Tabela venda Tabela venda_entrega

Consultas Consulta 15: Tabela pessoa_fisica Resultado