Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Professores: Geraldo Xexéo Geraldo Zimbrão Conteúdo: Exercícios de Álgebra Relacional Aula 014 2 Exercícios Nomes de fornecedores da parte P21) Nomes de fornecedores que fornecem ao menos uma parte vermelha 2) Nomes de fornecedores que fornecem todas as partes3) Números dos fornecedores que fornecem todas as partes fornecidas pelo fornedor de número 2 4) Todos os pares de fornecedores na mesma cidade5) Nomes de fornecedores que não fornecem a parte número 26) 3 Solução do Exemplo 1 Nomes de fornecedores da parte P2 (( PEDIDOS JOIN FORNECEDORES ) WHERE NUMP=2) [NOMEF] 4 Solução do Exemplo 1 (Passo 1) (( PEDIDOS JOIN FORNECEDORES ) WHERE NUMP=2) [NOMEF] FORNECEDORES JOIN PEDIDOS NUMF NUMPR QUANTIDADE 1 1 2 2 2 200 300 400 500 600 2 100 2 600 NUMP 1 1 3 3 3 3 3 1 4 1 2 3 4 5 2 5003 6 2 3003 7 2 4005 2 3 5003 1 3 4004 2 4 6006 3 4 3006 7 5 1002 2 5 7005 7 5 5006 2 5 2001 7 5 3003 2 5 4004 4 5 1005 4 5 5006 4 NOMEF STATUS CIDADE Selma 20 São Paulo João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro João 10 Rio de Janeiro Branco 30 Rio de Janeiro Branco 30 Rio de Janeiro Carlos 20 São Paulo Carlos 20 São Paulo Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte Aline 30 Belo Horizonte 5 Solução do Exemplo 1 (Passo 2) (( PEDIDOS JOIN FORNECEDORES ) WHERE NUMP=2) [NOMEF] (FORNECEDORES JOIN PEDIDOS) WHERE NUMP=2 NUMF NUMPR QUANTIDADENUMP 5 1002 2 NOMEF STATUS CIDADE Aline 30 Belo Horizonte 6 Solução do Exemplo 1 (Passo 2,3) (( PEDIDOS JOIN FORNECEDORES ) WHERE NUMP=2) [NOMEF] (( PEDIDOS JOIN FORNECEDORES ) WHERE NUMP=2) [NOMEF] (FORNECEDORES JOIN PEDIDOS) WHERE NUMP=2 NUMF NUMPR QUANTIDADENUMP 5 1002 2 NOMEF STATUS CIDADE Aline 30 Belo Horizonte RESULTADO NOMEF Aline 7 Solução do Exemplo 2 Nomes de fornecedores que fornecem ao menos uma parte vermelha ((( PARTES WHERE COR="Vermelha") JOIN PEDIDOS) [ NUMF] JOIN FORNECEDORES) [NOMEF] 8 Solução do Exemplo 2 (Passo 1) ((( PARTES WHERE COR="Vermelha") JOIN PEDIDOS) [ NUMF] JOIN FORNECEDORES) [NOMEF] PARTES WHERE COR="Vermelha" NUMP NOMEP COR CIDADE 1 4 Caixa Parafuso Vermelha Vermelha São Paulo São Paulo 6 Alavanca Vermelha São Paulo PESO 12 14 19 9 Solução do Exemplo 2 (Passo 2,3) ((( PARTES WHERE COR="Vermelha") JOIN PEDIDOS) [ NUMF] JOIN FORNECEDORES) [NOMEF] ((( PARTES WHERE COR="Vermelha") JOIN PEDIDOS) [ NUMF] JOIN FORNECEDORES) [NOMEF] (PARTES WHERE COR="Vermelha") JOIN PEDIDOS NUMP NOMEP COR CIDADE 4 Parafuso Vermelha São Paulo 6 Alavanca Vermelha São Paulo PESO 14 19 NUMPRNUMF QUANTIDADE 4 6003 4 3007 5 5002 5 5004 6 Alavanca Vermelha São Paulo19 6 Alavanca Vermelha São Paulo19 6 Alavanca Vermelha São Paulo19 1 Caixa Vermelha São Paulo12 1 Caixa Vermelha São Paulo12 1 Caixa Vermelha São Paulo12 5 4004 1 2001 1 3004 5 2004 NUMF 1 4 5 10 Solução do Exemplo 2 (Passo 4,5) ((( PARTES WHERE COR="Vermelha") JOIN PEDIDOS) [ NUMF] JOIN FORNECEDORES) [NOMEF] ((( PARTES WHERE COR="Vermelha") JOIN PEDIDOS) [ NUMF] JOIN FORNECEDORES) [NOMEF] NUMF NOMEF STATUS CIDADE 1 4 5 Selma Carlos Aline 20 20 30 São Paulo São Paulo Belo Horizonte NOMEF Selma Carlos Aline 11 Solução Alternativa do Exemplo 2 Nomes de fornecedores que fornecem ao menos uma parte vermelha ((( PARTES WHERE COR="Vermelha) [NUMP] JOIN PEDIDOS) JOIN FORNECEDORES) [NOMEF] 12 Solução do Exemplo 3 Nomes de fornecedores que fornecem todas as partes ((PEDIDOS [NUMP,NUMF] DIVIDEBY PARTES [NUMP]) JOIN FORNECEDORES) [NOMEF] 13 Solução do Exemplo 3 (Passo 1,2,3) ((PEDIDOS [NUMP,NUMF] DIVIDEBY PARTES [NUMP]) JOIN FORNECEDORES) [NOMEF] NUMF 1 1 2 2 2 2 2 NUMP 1 1 3 3 3 3 3 2 3 2 3 2 5 3 3 3 4 4 6 4 6 5 2 5 5 5 6 5 1 5 3 5 4 5 5 5 6 NUMP 1 2 3 4 5 6 NUMF 5 14 Solução do Exemplo 3 (Passo 4,5) ((PEDIDOS [NUMP,NUMF] DIVIDEBY PARTES [NUMP]) JOIN FORNECEDORES) [NOMEF] ((PEDIDOS [NUMP,NUMF] DIVIDEBY PARTES [NUMP]) JOIN FORNECEDORES) [NOMEF] NUMF NOMEF STATUS CIDADE 5 Aline 30 Belo Horizonte NOMEF Aline 15 Solução do Exemplo 4 Números dos fornecedores que fornecem todas as partes fornecidas pelo fornecedor de número 2 PEDIDOS [NUMP,NUMF] DIVIDEBY (PEDIDOS WHERE NUMF = 2) [NUMP] 16 Solução do Exemplo 4 (Passos) PEDIDOS [NUMP,NUMF] DIVIDEBY (PEDIDOS WHERE NUMF = 2) [NUMP] NUMF 1 1 2 2 2 2 2 NUMP 1 1 3 3 3 3 3 2 3 2 3 2 5 3 3 3 4 4 6 4 6 5 2 5 5 5 6 5 1 5 3 5 4 5 5 5 6 PEDIDOS NUMPRNUMF QUANTIDADE 2 2 2 400 500 600 2 100 2 600 NUMP 3 3 3 3 3 1 2 3 4 5 2 5003 6 2 3003 7 2 4005 2 NUMF 2 5 NUMP 3 5 17 Solução dos Exemplos 5 Todos os pares de fornecedores na mesma cidade (((FORNECEDORES RENAME NUMF AS PRIMEIRO) [PRIMEIRO,CIDADE] JOIN (FORNECEDORES) [NUMF,CIDADE]) WHERE PRIMEIRO<NUMF ) [PRIMEIRO,NUMF] 18 Solução do Exemplo 5 (Passos) (((FORNECEDORES RENAME NUMF AS PRIMEIRO) [PRIMEIRO,CIDADE] JOIN (FORNECEDORES) [NUMF,CIDADE]) WHERE PRIMEIRO<NUMF ) [PRIMEIRO,NUMF] 4 PRIMEIRO FORNECEDORES NOMEF STATUS CIDADE 1 2 3 4 5 Selma João Branco Carlos Aline 20 10 30 20 30 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte 1 2 PRIMEIRO CIDADE 1 2 3 4 5 São Paulo Rio de Janeiro Rio de Janeiro São Paulo Belo Horizonte 3 NUMF CIDADE 5 2 3 2 3 Belo Horizonte Rio de Janeiro Rio de Janeiro Rio de Janeiro Rio de Janeiro PRIMEIRO 5 2 3 3 2 1 4 1 4 NOMEF Aline João Branco João Branco Selma Carlos Selma Carlos STATUS 30 10 30 10 30 20 20 20 20 São Paulo São Paulo São Paulo São Paulo 4 1 1 4 NUMF CIDADE 3 Rio de Janeiro PRIMEIRO 2 4 NOMEF Branco Carlos STATUS 30 20 São Paulo 1 Resultado NUMF 3 PRIMEIRO 2 4 1 19 Solução dos Exemplos 6 Nomes de fornecedores que não fornecem a parte número 2 ((FORNECEDORES [NUMF] MINUS (PEDIDOS WHERE NUMP=2) [NUMF] JOIN FORNECEDORES) [NOMEF] 20 Solução do Exemplo 6 (Passos) ((FORNECEDORES [NUMF] MINUS (PEDIDOS WHERE NUMP=2) [NUMF] JOIN FORNECEDORES) [NOMEF] PEDIDOS WHERE NUMP=2 NUMPRNUMF QUANTIDADENUMP 5 1002 2 2 3 NUMF 5 NOMEF Selma João Branco Carlos Resultado NUMF NOMEF STATUS CIDADE 1 2 3 4 Selma João Branco Carlos 20 10 30 20 São Paulo Rio de Janeiro Rio de Janeiro São Paulo 5 NUMF 1 2 3 4 5 1 4 NUMF 1 2 3 4
Compartilhar