Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra...

24
Prof. Luiz Vivacqua Banco de Dados II Universidade Veiga de Almeida Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ([email protected])

Transcript of Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra...

Page 1: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Banco de Dados II

Universidade Veiga de Almeida

Banco de Dados II

Prof. Luiz Antônio Vivacqua C. Meyer

([email protected])

Page 2: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Linguagens de Consulta

• Linguagens nas quais os usuários fazem

requisições de informação do banco de dados.

• Categorias das linguagens

– “Procedural”

– “Nao-procedural, ou declarativa”

• linguagens “puras”:

– Álgebra Relacional

– Calculo Relacional

• Estas linguagens puras formam a base das

linguagens de consulta que as pessoas usam.

Page 3: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Álgebra Relacional

É uma linguagem de consulta formal e procedural

• Formal – tem uma notação matemática para a

manipulação de dados baseado na teoria de conjuntos.

• Procedural – os operandos são executados em uma

determinada ordem para atender uma solicitação.

Muito útil para representar planos de execução de

consultas

Page 4: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Álgebra Relacional

“Conhecer a álgebra relacional é fundamental para

entendermos SQL e processamento de consultas”

Lógica: Uma operação é aplicada a uma relação

(tabela) e o resultado também é uma relação

Page 5: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Operadores Fundamentais

Cinco operadores são ditos primitivos ou

fundamentais, ou seja, através deles qualquer

expressão de consulta de dados é possível.

Operadores Derivados

Derivam dos operadores fundamentais. São

definidos para facilitar a especificação de certos

procedimentos.

Page 6: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua 6

Álgebra Relacional

Operações Básicas

Projeção : π

Seleção : σ

Produto Cartesiano : X

União : U

Diferença : -

Operadores Adicionais

Interseção - ∩

Divisão - ÷

Junção –

Agrupamento – G

Renomeação - ρ

Page 7: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

PEÇA

CÓDIGO NOME COR CIDADE

P1 PREGO VERMELHO RJ

P2 PORCA VERDE SP

P3 PARAFUSO AZUL CURITIBA

FORNECEDOR

CÓDIGO NOME CIDADE

S1 SILVA RJ

S2 JOÃO SP

FORNECIMENTO

CÓD_FORN COD_PEÇA QTDE

S1 P1 300

S1 P2 200

S1 P3 400

S2 P1 300

S2 P2 400

Page 8: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Projeção - π lista-de-colunas(R)

Projeta (seleciona) colunas de uma relação

Exemplos:

• Obter o nome e a cor de todas as peças

PEÇA

CÓDIGO NOME COR CIDADE

P1 PREGO VERMELHO RJ

P2 PORCA VERDE SP

P3 PARAFUSO AZUL CURITIBA

Page 9: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

• Obter o nome e a cor de todas as peças

Resultado π nome, cor(PECA)

Resultado

NOME COR

PREGO VERMELHO

PORCA VERDE

PARAFUSO AZUL

Page 10: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Seleção - σcondição(R)

Seleciona linhas que satisfazem determinada

condição.

Exemplo: Obter as peças com cor azul

PEÇA

CÓDIGO NOME COR CIDADE

P1 PREGO VERMELHO RJ

P2 PORCA VERDE SP

P3 PARAFUSO AZUL CURITIBA

Page 11: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Resultado

Resultado σcor=azul(PECA)

Predicado Relação

OBSERVAÇÃO: Operadores aritméticos >, <, =, <>, >=, <=

Operadores lógicos ^(e), v (ou), (not)

Resultado

CÓDIGO NOME COR CIDADE

P3 PARAFUSO AZUL CURITIBA

Page 12: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Projeção e Seleção

Exemplos:

• Obter o nome e a cidade das peças azuis

PEÇA

CÓDIGO NOME COR CIDADE

P1 PREGO VERMELHO RJ

P2 PORCA VERDE SP

P3 PARAFUSO AZUL CURITIBA

Page 13: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Obter o nome e a cidade das peças azuis

Resultado π nome, cidade(R1)

Resultado

NOME CIDADE

PARAFUSO CURITIBA

R1

Resultado

CÓDIGO NOME COR CIDADE

P3 PARAFUSO AZUL CURITIBA

Resultado π nome, cidade( σcor=azul(PECA) )

2 passos

1 passo

σ cor = azul(PECA)

Page 14: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Produto Cartesiano – R1 X R2

Produz uma nova relação com todas as colunas das

duas tabelas e a combinação de todas as linhas

Usado quando se quer recuperar dados que estão

em duas tabelas

Exemplo:

• Obter o nome da peça e o nome do fornecedor que estão

localizados na mesma cidade

Page 15: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

1º Passo – Produto Cartesiano: R1 PECA X FORNECEDOR

PECA

CODIGO

PECA

NOME

PECA

COR

PECA

CIDADE

FORN.

CODIGO

FORN.

NOME

FORN.

CIDADE

P1 PREGO VERMELHO RJ S1 SILVA RJ

P1 PREGO VERMELHO RJ S2 JOAO SP

P2 PORCA VERDE SP S1 SILVA RJ

P2 PORCA VERDE SP S2 JOAO SP

P3 PARAFUSO AZUL CURITIBA S1 SILVA RJ

P3 PARAFUSO AZUL CURITIBA S2 JOAO SP

CODIGO NOME COR CIDADE

P1 PREGO VERMELHO RJ

P2 PORCA VERDE SP

P3 PARAFUSO AZUL CURITIBA

PECA

CODIGO NOME CIDADE

S1 SILVA RJ

S2 JOAO SP

FORNECEDOR

PECA x FORNECEDOR

Page 16: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

2º Passo – Seleção das linhas onde a condição peca.cidade = fornecedor.cidade

R2 σ peca.cidade = fornecedor.cidade (R1)

PECA

CODIGO

PECA

NOME

PECA

COR

PECA

CIDADE

FORN.

CODIGO

FORN.

NOME

FORN.

CIDADE

P1 PREGO VERMELHO RJ S1 SILVA RJ

P1 PREGO VERMELHO RJ S2 JOAO SP

P2 PORCA VERDE SP S1 SILVA RJ

P2 PORCA VERDE SP S2 JOAO SP

P3 PARAFUSO AZUL CURITIBA S1 SILVA RJ

P3 PARAFUSO AZUL CURITIBA S2 JOAO SP

PECA

CODIGO

PECA

NOME

PECA

COR

PECA

CIDADE

FORN.

CODIGO

FORN.

NOME

FORN.

CIDADE

P1 PREGO VERMELHO RJ S1 SILVA RJ

P2 PORCA VERDE SP S2 JOAO SP

R2

Page 17: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

3º Passo – projeção das colunas nome da peça

e nome do fornecedor

π peca.nome, fornecedor.nome (R2)Resultado

PECA

CODIGO

PECA

NOME

PECA

COR

PECA

CIDADE

FORN.

CODIGO

FORN.

NOME

FORN.

CIDADE

P1 PREGO VERMELHO RJ S1 SILVA RJ

P3 PORCA VERDE SP S3 JOAO SP

PECA.NOME FORN.NOME

PREGO SILVA

PORCA JOAO

Page 18: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

União

Geração de uma nova relação através da seleção de

linhas das duas relações.

As relações tem que ser compatíveis a união

(mesmo número de colunas, mesmo domínio)

Exemplo:

• Obter o código das peças que são azuis ou que são

fornecidas pelo fornecedor S2

Page 19: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Obter o código das peças azuis

Obter o código das peças fornecidas por S2

Obter o código das peças azuis ou fornecidas por S2

Resultado R1 U R2

R1 π codigo (σ cor = azul (PECA))

R2 π cod_peca (σ cod_forn = s2 (FORNECIMENTO))

CODIGO

P3

CODIGO

P1

P2

CODIGO

P1

P2

P3

Page 20: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Diferença

Geração de uma relação com as linhas da 1ª

relação que não aparecem na 2ª relação

Exemplo

• Obter as cidades onde existam peças mas não existam

fornecedores

Page 21: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Cidades onde existem peças

Cidades onde existem fornecedores

Cidades onde existem peças mas não fornecedores

R1 π cidade (PECA)

R2 π cidade (FORNECEDOR)

Resultado R1 - R2

CIDADE

RJ

SP

CURITIBA

CIDADE

RJ

SP

CURITIBA

CIDADE

CURITIBA

Page 22: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Interseção

Geração de uma relação contendo as linhas que

existem nas duas relações.

Exemplo:

• Obter as cidades onde existam peças E fornecedores

Page 23: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Cidades onde existem peças

Cidades onde existem fornecedores

Cidades onde existem peças E fornecedores

R1 π cidade (PECA)

R2 π cidade (FORNECEDOR)

Resultado R1 ∩ R2

CIDADE

RJ

SP

CURITIBA

CIDADE

RJ

SP

CIDADE

RJ

SP

Page 24: Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer ... · Álgebra Relacional Álgebra Relacional É uma linguagem de consulta formal e procedural •Formal –tem uma notação

Prof. Luiz Vivacqua

Álgebra Relacional

Junção

Geração de uma relação pela aplicação de uma

seleção sobre um produto cartesiano

Exemplo:

• R1 R2 = σ condição (R1 X R2)condição

• Obter o nome dos fornecedores que fornecem P3

Resultado π nome (Peca Fornecimento)codigo=cod_peca ^ cod_peca=‘P3’