Responder

Duvida sobre algebra relacional e banco de dados

12 mai 2013, 19:33

1- Dados o esquema abaixo, especificar as operações da álgebra relacional para as solicitações. Na
resolução do exercício demonstrar a árvore de expressão:
FORNECEDOR (CD-FORN, NOME-FORN, CD-CONDICAO)
PRODUTO (CD-PROD, NOME-PROD, COR-PROD)
PEDIDO (CD-FORN, CD-PROD, QTD-PEDIDA)
Onde: PEDIDO.CD-FORN referencia FORNECEDOR.CD-FORN
PEDIDO.CD-PROD referencia PRODUTO.CD-PROD
a) Traga o código e nome dos fornecedores;
b) Traga o código e nome dos fornecedores que estão inativos (CD-CONDICAO=’I’);
c) Traga as informações dos fornecedores que forneceram o produto de código ‘PD-23’ e estão ativos
(CD-CONDICAO=’A’); (utilizar junção com predicado)
d) Qual o nome dos fornecedores que forneceram pelo menos um produto cuja a cor é ‘VERDE’;
(utilizar junção natural)
e) Qual o nome dos produtos de cor ‘VERMELHA’ com pedidos em quantidade superior a 5000;
f) Qual o código e nome dos fornecedores que forneceram algum produto. (trazer as linhas de
resultado sem repetição

Re: Duvida sobre algebra relacional e banco de dados

13 mai 2013, 20:32

Boa tarde,

São muitos itens que você questiona. Sabe fazer algum deles?

Vou colaborar com o último:

lei Escreveu:f) Qual o código e nome dos fornecedores que forneceram algum produto. (trazer as linhas de
resultado sem repetição


Código:
SELECT DISTINCT f.CD-FORN, f.NOME-FORN
FROM       FORNECEDOR f
INNER JOIN PEDIDO     p ON p.CD-FORN = f.CD-FORN
;


ou, alternativamente:

Código:
SELECT     f.CD-FORN, f.NOME-FORN
FROM       FORNECEDOR f
WHERE  EXISTS ( SELECT 1 FROM PEDIDO p WHERE p.CD-FORN = f.CD-FORN )
;


Obs: Pode ocorrer diferença no tempo de execução entre as duas queries acima, isso depende da cardinalidade das tabelas, do sistema gerenciador e por aí vai...
Responder