Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Banco de Dados II
Prof. Luiz Antônio Vivacqua C. Meyer
(luiz.vcm@gmail.com)
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
Á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
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.
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 - ρ
FORNECEDOR
CÓDIGO NOME CIDADE
S1 SILVA RJ
S2 JOÃO SP
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
Resultado
NOME COR
PREGO VERMELHO
PORCA VERDE
PARAFUSO AZUL
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
Resultado
Resultado σcor=azul(PECA)
Predicado Relação
Resultado
CÓDIGO NOME COR CIDADE
P3 PARAFUSO AZUL CURITIBA
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
R1 σ cor = azul(PECA)
Resultado
2 passos CÓDIGO NOME COR CIDADE
P3 PARAFUSO AZUL CURITIBA
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
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
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
PECA.NOME FORN.NOME
PREGO SILVA
PORCA JOAO
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
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
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
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