qbe e quel ana carolina salgado fernando fonseca valéria times

22
QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

Upload: internet

Post on 21-Apr-2015

120 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBE e QUEL

Ana Carolina Salgado

Fernando Fonseca

Valéria Times

Page 2: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBE

A Linguagem QBE Desenvolvida pela IBM (DB2, Paradox). Uma das primeiras linguagens de

consulta gráficas para BD. Usuário não precisa especificar uma

consulta estruturada explicitamente. A consulta é formulada escrevendo-se

em modelos (templates) de relações.

EmpregadoCad Nome Sexo Salário Num-Dep Cad-Spv

Page 3: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBE

A Linguagem QBE (Cont.) Constantes e variáveis são digitadas nas colunas

dos templates para construção de um exemplo.

Vantagens de QBE Usuários não precisam:

– Lembrar dos nomes dos atributos ou relações.– Seguir regras de sintaxe rígidas para

especificação da consulta.

Page 4: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBE

Consultas Básicas Para uma dada consulta, pode-se digitar:

– Constantes: especificam valores que devem aparecer exatamente nas colunas.

– Elementos de Exemplo:• Consistem em variáveis de domínio• Possuem valores apenas ilustrativos• Devem ser precedidas pelo (_).

– Operador “P”: Indicam a necessidade de impressão dos valores nas colunas.

Page 5: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

Esquema Relacional dos Exemplos de QBE

Num-Dep Num-LocLocais

Trabalha-em Cad-Emp Num-Proj Horas

Empregado Cad Nome Sexo Salário Num-Dep Cad-Spv

Departamento Número Nome Cad-Ger Data-Ini

Cad Nome Data-nasc Grau-PDependente

Projeto Número Nome Local Num-Dep

Page 6: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBEProblemas:

Listar o salário e o código do departamento do empregado ‘José’.

Empregado Cad Nome Sexo Salário Num-Dep Cad-Spv

_01 José M P._1000 P._010 _03

José M P._1000 P._010

José M P._X P._Y José M P. P.

Page 7: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBE Utilizando outros operadores relacionais

Problemas: Listar os códigos dos empregados que trabalham mais do

que 20 horas no projeto 10.

Trabalha-em Cad-Emp Num-Proj Horas

P. 10 >20

P. 1 >20

P. 2 >20

P. _ PX _HXCondição: _HX > 20 AND(_PX = 1 OR _PX = 2 )

Page 8: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBEProblemas: Listar os códigos dos empregados que

trabalham em ambos projetos 10 e 15.

Trabalha-em Cad-Emp Num-Proj Horas

P. _ES 10

P. _ES 15

P._EX 10

Condição: _EX = _EY P._EY 15

Page 9: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBE Operação de Junção:

– Usando a mesma variável nas colunas a serem juntadas.– Várias junções podem ser especificadas em uma única

consulta.– Uma tabela de resultado para exibir o resultado da junção pode

ser especificada.

Problemas: Listar os nomes e os salários dos empregados que trabalham no

departamento de Física.

Page 10: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBE

_DEP Física

Departamento Número Nome Cad-Ger Data-Ini

Resultado

P. _NOM _SAL Especifica que todos os atributos da relação devem ser recuperados

Empregado Cad Nome Sexo Salário Num-Dep Cad-Spv

_NOM _SAL _DEP

Page 11: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QBEJunção recursiva: Usa-se variáveis distintas para representar as

diferentes referências à tabela.

Problemas: Para cada empregado, mostre o nome e o salário bem como o nome e

o salário de seu supervisor.

Empregado Cad Nome Sexo Salário Num-Dep Cad-Spv

_E1 _E2 _COD_COD _S1 _S2

Resultado

P. _E1 _E2 _S1 _S2

Page 12: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUEL

A Linguagem QUEL

Linguagem de Consulta do SGBD INGRES, um dos primeiros sistemas relacionais, amplamente conhecido tanto no meio acadêmico quanto comercial.

Utiliza o Cálculo Relacional: utilização de variável tupla, a qual se estende

por uma relação, construção baseada nos predicados de

primeira ordem.

Page 13: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

Esquema Relacional dos Exemplos de QUEL

Vendedor Matrícula Nome Salário Comissão

Produto Código-p Descrição Unidade Valor

Número Prazo Código-c MatrículaPedido

Item-do-Pedido Número Código-p Quantidade

Cliente Código-c Nome Endereço Cidade CEP UF CGC

Page 14: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUEL

Estrutura básica: Comando Range

range of t is r

onde: – t é uma variável tupla, restrita a assumir

valores de tuplas na relação r– r é uma relação

Exemplo:

range of P is Produto

Page 15: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUEL

Estrutura básica: Comando Retrieve

retrieve [ [into] (<tabela>)]

[ [unique] (<variável.ALL ou

referência a atributo ou

atributo = expressão>) ]

[where <condição>]

[sort by < [variável.] atributo [:A | :D]>]

Page 16: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUEL

Estrutura básica:

Exemplo:

range of P is Produto

retrieve (P.descrição)

where P.valor > 10;

Page 17: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUELProblemas:

Listar a descrição de todos os produtos com seus valores unitários

range of P is Produto

retrieve (P.descrição, P.valor); Listar todo o conteúdo da tabela vendedor

range of X is Vendedor

retrieve (X.ALL);

Page 18: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUELProblemas: Listar o número do pedido e o código do produto

no item-do-pedido com quantidade igual a 35

range of S is item-do-pedido

retrieve (S.número, S.código-p)

where S.quantidade = 35; Listar os nomes dos clientes com as respectivas

cidades e estado na ordem alfabética reversa

range of Y is Cliente

retrieve (Y.nome, Y.cidade, Y.UF)

sort by Y.UF: D, Y.cidade: D;

Page 19: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUELProblemas: Mostrar a quantidade total pedida para o

produto VINHO de código 78

range of R is item-do-pedido

retrieve (Z = sum(R.quantidade))

where R.código-p = 78; Quais os clientes que fizeram pedidos?

range of C is Clienterange of P is Pedidoretrieve unique (C.nome) where C.código-c = P.código-c;

Page 20: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUELProblemas: Mostre os clientes ordenados pelos nomes, que

têm prazo de entrega maior que 15 dias para o produto ‘queijo’

range of C is Clienterange of P is Pedidorange of PR is Produtorange of I is item-do-pedidoretrieve unique (C.nome) where C.código-c = P.código-c and

P.número = I.número and I.código-p=PR.código-pand P.prazo > 15 and PR.descrição = ‘queijo’;

Page 21: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUEL e SQLExercícios:

1) Listar todo o conteúdo da tabela produto

2) Listar os produtos que tenham unidade igual a “M” e valor unitário igual a 1,05

3) Quais os clientes que fizeram pedidos?

4) Listar o número do pedido em ordem crescente, o nome de cada produto em ordem alfabética e o valor total de cada item pedido.

5) Mostre o nome e o endereço dos clientes cujos pedidos têm um prazo de entrega inferior a 7dias

6) Quais as descrições dos produtos comprados pelo cliente de nome “José”?

Page 22: QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times

QUEL e SQL

7) Listar os vendedores ordenados pelo nome que venderam produtos com valor unitário superior a 100 ou em uma quantidade maior do que 10.

8) Liste os vendedores ordenados pelo nome que têm pedidos de vinhos com prazo de entrega vencido (igual a zero).

9) Quantos pedidos foram realizados por vendedor? (apenas em SQL)

10) Mostre os clientes do vendedor ‘André’, ordenados pelo nome, com seus respectivos endereços e agrupados pela UF. (apenas em SQL)