23
Banco de Dados Banco de Dados / / 1 Banco de Dados Banco de Dados / / 1 SISTEMAS DE SISTEMAS DE INFORMAÇÃO INFORMAÇÃO Bacharelado em Bacharelado em Sistemas de Informação Sistemas de Informação BANCOS DE DADOS BANCOS DE DADOS Aula Aula 16 16 Álgebra Relacional Estendida Álgebra Relacional Estendida Bacharelado em Bacharelado em Sistemas de Informação Sistemas de Informação BANCOS DE DADOS BANCOS DE DADOS Aula Aula 16 16 Álgebra Relacional Estendida Álgebra Relacional Estendida

BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 11Banco de DadosBanco de Dados / / 11

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Bacharelado em Bacharelado em Sistemas de InformaçãoSistemas de Informação

BANCOS DE DADOSBANCOS DE DADOS

Aula Aula 1616

Álgebra Relacional EstendidaÁlgebra Relacional Estendida

Bacharelado em Bacharelado em Sistemas de InformaçãoSistemas de Informação

BANCOS DE DADOSBANCOS DE DADOS

Aula Aula 1616

Álgebra Relacional EstendidaÁlgebra Relacional Estendida

Page 2: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 22Banco de DadosBanco de Dados / / 22

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Projeção GeneralizadaProjeção Generalizada

� Permite que que funções aritméticas sejam usadas em

listas de projeções.

ππππ F1,F2,...,Fn(E) � Representação:

�E é qualquer expressão em álgebra relacional

�F1,F2,...,Fn são expressões aritméticas envolvendo constantes e atributos do esquema E

Page 3: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 33Banco de DadosBanco de Dados / / 33

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Projeção GeneralizadaProjeção Generalizada

� Exemplo:

�Crédito (número-cliente, limite-crédito, saldo-crédito)

Obter quanto os clientes podem gastar, de acordo com o seu crédito no banco.

ππππ número-cliente, limite-crédito - saldo-crédito(Crédito)

Page 4: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 44Banco de DadosBanco de Dados / / 44

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Junção externa (outer join)Junção externa (outer join)

� Extensão da operação de junção natural para tratar

informações omitidas.

� Evita perda de informações que poderia acontecer com a

junção natural.

- Junção à esquerda

- Junção à direita

- Junção total

� Representação:

Page 5: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 55Banco de DadosBanco de Dados / / 55

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Junção externa (outer join)Junção externa (outer join)

� Exemplo:

�Funcionário (código-func, nome-func, rua, cidade)�Mensalista (código-func, agência, salário)

Obter uma lista completa de funcionários, com suas ruas e cidades, agências e salários.

Page 6: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 66Banco de DadosBanco de Dados / / 66

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Junção externa (outer join)Junção externa (outer join)

� Exemplo:

Código Nome_funcionário Rua Cidade 1 Ana Bromélias Marília 2 João D. Pedro Pompéia 3 Simone 4 de abril Promissão 9 Rodrigo Chacrinha Garça

Código nome_agência Salário 1 Centro 1500 2 Centro 2000 5 Vila Verde 2500 9 Vila Verde 3000

FUNCIONÁRIO MENSALISTA

Funcionário |X| Mensalista

Código Nome_funcionário Rua Cidade nome_agência Salário1 Ana Bromélias Marília Centro 15002 João D. Pedro Pompéia Centro 20009 Rodrigo Chacrinha Garça Vila Verde 3000

Page 7: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 77Banco de DadosBanco de Dados / / 77

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Junção externa (outer join)Junção externa (outer join)

� Exemplo:MENSALISTA

Funcionário Mensalista

Código Nome_funcionário Rua Cidade nome_agência Salário 1 Ana Bromélias Marília Centro 1500 2 João D. Pedro Pompéia Centro 2000 3 Simone 4 de abril Promissão nulo nulo 9 Rodrigo Chacrinha Garça Vila Verde 3000

Código Nome_funcionário Rua Cidade 1 Ana Bromélias Marília 2 João D. Pedro Pompéia 3 Simone 4 de abril Promissão 9 Rodrigo Chacrinha Garça

Código nome_agência Salário 1 Centro 1500 2 Centro 2000 5 Vila Verde 2500 9 Vila Verde 3000

FUNCIONÁRIO

Page 8: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 88Banco de DadosBanco de Dados / / 88

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Junção externa (outer join)Junção externa (outer join)

� Exemplo:MENSALISTA

Funcionário Mensalista

Código Nome_funcionário Rua Cidade nome_agência Salário 1 Ana Bromélias Marília Centro 1500 2 João D. Pedro Pompéia Centro 2000 5 nulo nulo nulo Vila Verde 2500 9 Rodrigo Chacrinha Garça Vila Verde 3000

Código Nome_funcionário Rua Cidade 1 Ana Bromélias Marília 2 João D. Pedro Pompéia 3 Simone 4 de abril Promissão 9 Rodrigo Chacrinha Garça

Código nome_agência Salário 1 Centro 1500 2 Centro 2000 5 Vila Verde 2500 9 Vila Verde 3000

FUNCIONÁRIO

Page 9: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 99Banco de DadosBanco de Dados / / 99

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Junção externa (outer join)Junção externa (outer join)

� Exemplo:MENSALISTA

Funcionário Mensalista

Código Nome_funcionário Rua Cidade nome_agência Salário 1 Ana Bromélias Marília Centro 1500 2 João D. Pedro Pompéia Centro 2000 3 Simone 4 de abril Promissão nulo nulo 9 Rodrigo Chacrinha Garça Vila Verde 3000 5 nulo nulo nulo Vila Verde 2500

Código Nome_funcionário Rua Cidade 1 Ana Bromélias Marília 2 João D. Pedro Pompéia 3 Simone 4 de abril Promissão 9 Rodrigo Chacrinha Garça

Código nome_agência Salário 1 Centro 1500 2 Centro 2000 5 Vila Verde 2500 9 Vila Verde 3000

FUNCIONÁRIO

Page 10: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1010Banco de DadosBanco de Dados / / 1010

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

ExercíciosExercícios

� Considere os seguintes esquemas de relação:� Cliente (cli-código,cli-nome,cli-endereço,cli-data-nasc)� Produto (pro-código,pro-descrição,pro-preço-compra,pro-preço-venda)

� Venda (ven-código,ven-data,cli-código)� ItemVenda (ven-código, pro-código,vi-quantidade,vi-valor-unit)

� Clibanco (cli-código, clib-código, clib-núm-conta, clib-data-abertura)

� Usando os conceitos de Álgebra Relacional estudados, escreva consultas que atenda às solicitações a seguir.

1. Todas as descrições, quantidade, valor unitário de todos os produtos vendidos.

2. O lucro que se obtém de cada unidade vendida de produto (preço venda – preço compra). Mostre a descrição do

produto e o lucro por unidade.

3. Todas as descrições dos produtos comprados pelo cliente 1987.

4. Todas as descrições e quantidades dos produtos comprados pelo cliente “Cristóvão Buarque”

5. Todas as vendas realizadas no mês de janeiro de 2005, mostrando: código da venda, nome do cliente, data, descrição do produto, quantidade, valor unitário e valor total do item (quantidade multiplicada pelo valor unitário).

6. Uma lista completa de clientes, contendo: código do cliente, nome do cliente, código do seu banco e número da sua

conta. Os clientes devem ser mostrados somente quando houver um banco para eles.

7. Uma lista completa de clientes, contendo: código do cliente, nome do cliente, endereço do cliente, código do seu banco, número da conta e data de abertura da conta. Os dados dos clientes devem ser mostrados mesmo se não

houver registro de dados do seu banco e conta. Porém, não devem ser exibidos dados de conta que não possuem um cadastro de cliente correspondente.

8. Uma lista completa de clientes, contendo: código do cliente, nome do cliente, código do seu banco , número da conta e data de abertura da conta. Os dados dos clientes e das contas devem ser mostrados mesmo se não houver registro

correspondente de cliente e conta.

Page 11: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1111Banco de DadosBanco de Dados / / 1111

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Funções agregadasFunções agregadas

� Tomam uma coleção de valores e retornam um valor único

como resultado.

sum - retorna a soma de um conjunto de valores.

avg - retorna a média de um conjunto de valores.

count- retorna a quantidade de elementos da coleção.

max - retorna o maior valor da coleção.min - retorna o menor valor da coleção.

função<expressão>(relação) � Representação:

Page 12: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1212Banco de DadosBanco de Dados / / 1212

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Funções agregadasFunções agregadas

� Exemplo:Nome_funcionário nome_agência SalárioAna Centro 1500João Centro 2000Roberta Vila Verde 2500Rodrigo Vila Verde 3000

MENSALISTA

sum salário (mensalista)

Resultado: uma relação com um atributo simples, contendo uma única linha.

???

Page 13: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1313Banco de DadosBanco de Dados / / 1313

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Funções agregadasFunções agregadas

� Exemplo:Nome_funcionário nome_agência SalárioAna Centro 1500João Centro 2000Roberta Vila Verde 2500Rodrigo Vila Verde 3000

MENSALISTA

sum salário (mensalista)

Resultado: uma relação com um atributo simples, contendo uma única linha.

9000

Page 14: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1414Banco de DadosBanco de Dados / / 1414

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Funções agregadasFunções agregadas

� Exemplo:Nome_funcionário nome_agência SalárioAna Centro 1500João Centro 2000Roberta Vila Verde 2500Rodrigo Vila Verde 3000

MENSALISTA

min salário (mensalista)

Resultado: uma relação com um atributo simples, contendo uma única linha.

???

Page 15: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1515Banco de DadosBanco de Dados / / 1515

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Funções agregadasFunções agregadas

� Exemplo:Nome_funcionário nome_agência SalárioAna Centro 1500João Centro 2000Roberta Vila Verde 2500Rodrigo Vila Verde 3000

MENSALISTA

min salário (mensalista)

Resultado: uma relação com um atributo simples, contendo uma única linha.

1500

Page 16: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1616Banco de DadosBanco de Dados / / 1616

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

???

???

� Cláusula distinct ���� eliminação de duplicidade.

� Usada em conjunto com as funções definidas

anteriormente

Funções agregadasFunções agregadas

� Exemplo:Nome_funcionário nome_agência SalárioAna Centro 1500João Centro 2000Roberta Vila Verde 2500Rodrigo Vila Verde 3000

MENSALISTA

count nome-agência (mensalista)

count-distinct nome-agência (mensalista)

Page 17: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1717Banco de DadosBanco de Dados / / 1717

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

4

2

� Cláusula distinct ���� eliminação de duplicidade.

� Usada em conjunto com as funções definidas

anteriormente

Funções agregadasFunções agregadas

� Exemplo:Nome_funcionário nome_agência SalárioAna Centro 1500João Centro 2000Roberta Vila Verde 2500Rodrigo Vila Verde 3000

MENSALISTA

count nome-agência (mensalista)

count-distinct nome-agência (mensalista)

Page 18: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1818Banco de DadosBanco de Dados / / 1818

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

� Agrupamento ���� divisão das tuplas em grupos para

aplicação das funções agregadas

Funções agregadasFunções agregadas

<atributo-agrupamento>G G G G função<expressão>(relação)

� Representação:

Page 19: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 1919Banco de DadosBanco de Dados / / 1919

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Funções agregadasFunções agregadas

� Exemplo 1:

nome_agência soma Centro 3500 Vila Verde 5500

MENSALISTA

nome-agênciaGGGG sumsalário (mensalista)

Nome_funcionário nome_agência Salário Ana Centro 1500 João Centro 2000 Roberta Vila Verde 2500 Rodrigo Vila Verde 3000

RESULTADO

Page 20: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 2020Banco de DadosBanco de Dados / / 2020

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Funções agregadasFunções agregadas

� Exemplo 2 (mais de uma função agregada)

nome_agência soma máximo Centro 3500 2000 Vila Verde 5500 3000

MENSALISTA

nome-agênciaGGGG sumsalário,maxsalário (mensalista)

Nome_funcionário nome_agência Salário Ana Centro 1500 João Centro 2000 Roberta Vila Verde 2500 Rodrigo Vila Verde 3000

RESULTADO

Page 21: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 2121Banco de DadosBanco de Dados / / 2121

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

ExercíciosExercícios

� Considere os seguintes esquemas de relação e faça consultas em Álgebra Relacional para mostrar o que se pede:

� Cliente (cli-código,cli-nome,cli-endereço,data-nascimento)� Produto (pro-código,pro-descrição,pro-preço-compra,pro-preço-venda)

� Venda (ven-código,ven-data,cli-código)� ItemVenda (ven-código, pro-código,vi-quantidade,vi-valor-unit)

� Clibanco (cli-código, clib-código, clib-núm-conta, clib-data-abertura)

1. O valor do produto mais caro.

2. A data de nascimento mais antiga dos clientes.

3. O valor total de cada venda. Mostre o número da venda, a data e o valor total.

4. A quantidade de clientes que compraram no mês de janeiro de 2005 (eliminar as duplicações)

5. O valor médio do preço de venda dos produtos.

6. O maior valor de venda de um item (preço-unitário * quantidade).

7. A quantidade vendida de cada produto no mês de maio deste ano.

Page 22: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 2222Banco de DadosBanco de Dados / / 2222

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

ExercíciosExercícios

� Considere os seguintes esquemas de relação e faça consultas em Álgebra Relacional para mostrar o que se pede:

� Cliente (cli-código,cli-nome,cli-endereço)� Produto (pro-código,pro-descrição,pro-preço-compra,pro-preço-venda)

� Venda (ven-código,ven-data,cli-código)� ItemVenda (ven-código, pro-código,vi-quantidade,vi-valor-unit)

� Clibanco (cli-código, clib-código, clib-núm-conta, clib-data-abertura)

8. O código do cliente que comprou o produto mais caro.

9. O nome do cliente que comprou a maior quantidade de um item.

10. O nome do cliente que mais comprou em janeiro deste ano (considerando o valor total da

venda).

11. O código do produto mais vendido no mês de maio deste ano (considere a quantidade vendida)

12. A descrição do produto mais vendido no mês de maio deste ano (considere a quantidade

vendida)

13. A quantidade de clientes que efetuaram compras no mês de maio deste ano.

14. O lucro total obtido com as vendas do mês de maio deste ano.

15. A quantidade média diária de clientes que efetuaram compras no primeiro semestre do ano.

Page 23: BANCOS DE DADOS...Banco de DadosBanco de Dados // 3Banco de Dados SISTEMAS DE INFORMAÇÃO Projeção Generalizada Exemplo: Crédito (número-cliente , limite-crédito, saldo-crédito)

Banco de DadosBanco de Dados / / 2323Banco de DadosBanco de Dados / / 2323

SISTEMAS DESISTEMAS DEINFORMAÇÃOINFORMAÇÃO

Bacharelado em Bacharelado em Sistemas de InformaçãoSistemas de Informação

BANCOS DE DADOSBANCOS DE DADOS

Aula Aula 1616

Álgebra Relacional EstendidaÁlgebra Relacional Estendida

Bacharelado em Bacharelado em Sistemas de InformaçãoSistemas de Informação

BANCOS DE DADOSBANCOS DE DADOS

Aula Aula 1616

Álgebra Relacional EstendidaÁlgebra Relacional Estendida