Você está na página 1de 24

Banco de Dados II

Universidade Veiga de Almeida

Banco de Dados II
Prof. Luiz Antônio Vivacqua C. Meyer
(luiz.vcm@gmail.com)

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.
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

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

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.

Prof. Luiz Vivacqua


Á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 - ρ

Prof. Luiz Vivacqua 6


Álgebra Relacional
PEÇA
CÓDIGO NOME COR CIDADE
P1 PREGO VERMELHO RJ
P2 PORCA VERDE SP
P3 PARAFUSO AZUL CURITIBA
FORNECIMENTO
CÓD_FORN COD_PEÇA QTDE
S1 P1 300
S1 P2 200
S1 P3 400
S2 P1 300
S2 P2 400

FORNECEDOR
CÓDIGO NOME CIDADE
S1 SILVA RJ
S2 JOÃO SP

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

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

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

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

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

Prof. Luiz Vivacqua


Álgebra Relacional

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

R1 σ cor = azul(PECA)
Resultado
2 passos CÓDIGO NOME COR CIDADE
P3 PARAFUSO AZUL CURITIBA

Resultado π nome, cidade(R1)


1 passo Resultado π nome, cidade( σcor=azul(PECA) )
Resultado
NOME CIDADE
PARAFUSO CURITIBA

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

Prof. Luiz Vivacqua


Álgebra Relacional
1º Passo – Produto Cartesiano: R1 PECA X FORNECEDOR

PECA FORNECEDOR
CODIGO NOME COR CIDADE CODIGO NOME CIDADE
P1 PREGO VERMELHO RJ
S1 SILVA RJ
P2 PORCA VERDE SP
P3 PARAFUSO AZUL CURITIBA S2 JOAO SP

PECA x FORNECEDOR
PECA PECA PECA PECA FORN. FORN. FORN.
CODIGO NOME COR CIDADE CODIGO NOME 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

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 PECA PECA PECA FORN. FORN. FORN.
CODIGO NOME COR CIDADE CODIGO NOME 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

R2
PECA PECA PECA PECA FORN. FORN. FORN.
CODIGO NOME COR CIDADE CODIGO NOME CIDADE
P1 PREGO VERMELHO RJ S1 SILVA RJ
P2 PORCA VERDE SP S2 JOAO SP

Prof. Luiz Vivacqua


Álgebra Relacional

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


e nome do fornecedor
PECA PECA PECA PECA FORN. FORN. FORN.
CODIGO NOME COR CIDADE CODIGO NOME CIDADE
P1 PREGO VERMELHO RJ S1 SILVA RJ
P3 PORCA VERDE SP S3 JOAO SP

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

PECA.NOME FORN.NOME
PREGO SILVA
PORCA JOAO

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

Prof. Luiz Vivacqua


Álgebra Relacional

Obter o código das peças azuis


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

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


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

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


Resultado R1 U R2 CODIGO
P1
P2
P3

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

Prof. Luiz Vivacqua


Álgebra Relacional

Cidades onde existem peças CIDADE


RJ
R1 π cidade (PECA) SP
CURITIBA

Cidades onde existem fornecedores CIDADE


RJ
SP
R2 π cidade (FORNECEDOR) CURITIBA

Cidades onde existem peças mas não fornecedores


CIDADE
Resultado R1 - R2 CURITIBA

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

Prof. Luiz Vivacqua


Álgebra Relacional
CIDADE
Cidades onde existem peças RJ
SP
R1 π cidade (PECA) CURITIBA

Cidades onde existem fornecedores


CIDADE
RJ
R2 π cidade (FORNECEDOR) SP

Cidades onde existem peças E fornecedores


CIDADE
Resultado R1 ∩ R2
RJ
SP

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’

Prof. Luiz Vivacqua