Upload
doanhanh
View
217
Download
0
Embed Size (px)
Citation preview
Profa. Késsia Marchi
Banco de Dados II
Unipar – Universidade Paranaense
Disciplina: Banco de Dados II
3ª Série
Profª: Késsia Marchi
Profa. Késsia Marchi
Álgebra Relacional
• Linguagem de consulta procedural;
• Consiste em um conjunto básico de
operações, tendo como entrada uma ou
várias relações, produzindo novas
relações.
• Parte do modelo relacional de dados.
Profa. Késsia Marchi
Álgebra Relacional
• Para estudo, pode ser dividas em dois
grupos, sendo:
– Teoria de Conjuntos Matemáticos
– Específicas para Banco de Dados
Relacionais.
Profa. Késsia Marchi
Álgebra Relacional
• Teoria de Conjuntos Matemáticos
– União (union)
– Interseção (intersection)
– Diferença de conjunto (Set Difference)
– Produto Cartesiano (Cross Product)
Profa. Késsia Marchi
Álgebra Relacional
• Específicas para Banco de Dados
Relacionais.
– Seleção (Select)
– Projeção (Project)
– Renomear (Rename)
– Junção (Join)
– Entre outras.
Profa. Késsia Marchi
Álgebra Relacional
• Select, Project e Rename são operações
unárias;
• Operações adicionais foram criadas para
executas solicitações comum de Banco de
Dados
– Funções de Agregação
Profa. Késsia Marchi
Operação Select
• Seleciona um conjunto de tuplas (registros
(linhas)) de uma relação (tabela)
satisfazendo uma determinada
condição.
• Representada pelo sigma (σ).
Profa. Késsia Marchi
Operação Select
• Sua operação é indicada por:
– σ<condicao de selecao> (R)
• <condicao de selecao> expressão
booleana, especificada nos atributos da
relação R.
Profa. Késsia Marchi
Operação Select
• <condicao de selecao> é composta por:
– <nome do atributo>
– <op de comparacao>
• =, <, ≤, >, ≥, ≠
Profa. Késsia Marchi
Operação Select
• As cláusulas podem ser conectadas pelos
operadores booleanos.
– AND, OR e NOT
Profa. Késsia Marchi
Operação Projeção
• Seleciona determinadas colunas em uma
relação;
• Representada pelo pi (π)
Profa. Késsia Marchi
Operação Projeção
• Sua operação é indicada por:
– π <lista de atributos>(R)
• <lista de atributos> é a lista de atributos
desejados entre aqueles da relação R.
Profa. Késsia Marchi
Operação Re-nomear
(Rebatizar)
• Quebrar seqüência de operações
especificando as relações com resultados
intermediários;
• Útil em operações mais complexas como
Join e Union
Profa. Késsia Marchi
Operação Re-nomear
(Rebatizar)
• ALUNO σ nomeAlu = ‗Maria‘(Aluno)
• π nomeAlu (ALUNO)
• R(―Nome do Aluno‖) π nomeAlu (ALUNO)
– Se nenhum rename for aplicado, os nomes dos atributos na
relação de uma operação serão os mesmos da relação original
e na mesma ordem.
Profa. Késsia Marchi
Renomear em SQL
• SQL proporciona um mecanismo para
Rebatizar tanto relações quanto atributos,
usando a cláusula ‗as‘.
– Nome_antigo as novo_nome.
Profa. Késsia Marchi
Renomear em SQL
• Re-nomeando Atributos
– Select nomeAlu as ―Nome do Aluno‖ from
aluno where nomeAlu = ―Maria‖;
• A cláusula as pode ser omitida
– Select nomeAlu ―Nome do Aluno‖ from aluno
where nomeAlu = ―Maria‖;
Profa. Késsia Marchi
Renomear em SQL
• Re-nomeando Tabelas
– Select a.nomeAlu as ―Nome do Aluno‖ from
aluno a where a.nomeAlu = ―Maria‖;
Profa. Késsia Marchi
Operações de Álgebra Relacional a partir
da teoria dos conjuntos
• Este grupo de operações de álgebra
relacional são as operações matemáticas-
padrão de conjuntos.
Profa. Késsia Marchi
Operações de Álgebra Relacional a partir
da teoria dos conjuntos
• UNIÃO (UNION)
– O resultado da operação, indicada por R U S,
é uma relação que inclui todas as tuplas que
estão em R, ou em S, ou em ambas, R e S.
As tuplas repetidas são eliminadas
UNION
Profa. Késsia Marchi
Operações de Álgebra Relacional a partir
da teoria dos conjuntos
• Exemplo:– Recuperar todos os alunos residentes na ‗Rua D‘ ou na ‗Rua C‘,
não mostrando as tuplas repetidas.
• σ enderecoAlu = ‗Rua D‘(Aluno) U σ enderecoAlu = ‗RuaC‘(Aluno)
– Ou Renomeando:
• END_D σ enderecoAlu = ‗Rua D‘(Aluno)
• END_C σ enderecoAlu = ‗RuaC‘(Aluno)
• RESULTADO END_D U END_C
Profa. Késsia Marchi
Operações de SQL a partir da teoria dos
conjuntos
Select * from Aluno where enderecoAlu =
'Rua D‘
UNION
Select * from Aluno where enderecoAlu =
'Rua C';
Profa. Késsia Marchi
Operação União
• As relações r e s precisam ter o mesmo
grau, ou seja, mesmo número de
atributos;
• Os domínios (tipo de atributo) do i-ésimo
atributo de r e do i-ésimo atributo de s
devem ser os mesmos.
Profa. Késsia Marchi
Operações de Álgebra Relacional a partir
da teoria dos conjuntos
• INTERSEÇÃO (INTERSECTION)
– O resultado dessa operação, indicado por R
∩ S, é uma relação que inclui todas as tuplas
que estão em ambas, R e S.
INTERSECTION
Profa. Késsia Marchi
Operações de Álgebra Relacional a partir
da teoria dos conjuntos
• Exemplo:– Recuperar todos os Alunos residentes na ‗Rua D‘ e tenham data
de nascimento em 01/01/1980
• σ enderecoAlu = ‗Rua D‘(Aluno) ∩ σ dtnascAlu = ‘01-01-1980‘(Aluno)
– Ou Renomeando:
• END_D σ enderecoAlu = ‗Rua D‘(Aluno)
• NASC σ dtnascAlu = ‘01-01-1980‘(Aluno)
• RESULTADO END_D ∩ NASC
Profa. Késsia Marchi
Operações de SQL a partir da teoria dos
conjuntos
Select * from Aluno where enderecoAlu = 'Rua D‗
intersect
Select * from Aluno where dtnascAlu = '1980-01-01';
• Entretanto, esta cláusula não é reconhecida por todos
os SGBD‘s, podendo ser substituída por:
Select * from Aluno where enderecoAlu = 'Rua D‗ and
dtnascAlu = '1980-01-01'
Profa. Késsia Marchi
Operações de Álgebra Relacional a partir
da teoria dos conjuntos
• DIFERENÇA OU SUBTRAÇÃO (MINUS)
– O resultado dessa operação, indicado por R
— S, é uma relação que inclui todas as tuplas
que estão em R, mas não estão em S.
DIFFERENCE
Profa. Késsia Marchi
Operações de Álgebra Relacional a partir
da teoria dos conjuntos
• Exemplo:– Recuperar todos os Alunos residentes na ‗Rua D‘ e não tenham
data de nascimento em 01/01/1980
• σ enderecoAlu = ‗Rua D‘(Aluno) — σ dtnascAlu = ‘01-01-1980‘(Aluno)
– Ou Renomeando:
• END_D σ enderecoAlu = ‗Rua D‘(Aluno)
• NASC σ dtnascAlu = ‘01-01-1980‘(Aluno)
• RESULTADO END_D — NASC
Profa. Késsia Marchi
Operações de SQL a partir da teoria dos
conjuntos
Select * from Aluno where enderecoAlu = 'Rua D‗
except
Select * from Aluno where dtnascAlu = '1980-01-01';
• Entretanto, esta cláusula não é reconhecida por todos
os SGBD‘s, podendo substituída por:
Select * from Aluno where enderecoAlu = 'Rua D‗ and not
dtnascAlu = '1980-01-01'
Profa. Késsia Marchi
Operações de Consulta a partir da teoria
dos conjuntos
• União e Interseção são comutativas;
– R U S = S U R
• Podem ser tratadas como operações n-
árias aplicáveis a qualquer número de
relações, porque são operações
associativas;
– R U (S U T) = (R U S) U T
Profa. Késsia Marchi
Operações de Consulta a partir da teoria
dos conjuntos
• A operação de subtração não é
comutativa;
– R — S ≠ S — R