Fundamentos de Banco de Dados
Álgebra Relacional
Prof. Alexandre Perin de Souza
[Link]@[Link]
Álgebra Relacional
• Introdução
– É uma linguagem de consulta procedural, portanto é
necessário descrever os comandos (passos) a serem
executados
– Consiste de uma série de operações que tomam uma ou mais
tabelas como entrada e produzem uma nova tabela como
resultado
– É através da álgebra relacional que se fundamenta a
linguagem de consulta estrutura (SQL) utilizada dos bancos de
dados relacionais
2
Álgebra Relacional
• Introdução...
– Operações fundamentais:
• Unárias: projeção, seleção
• Binárias: produto cartesiano, união e diferença
– Operações derivadas:
• Binárias: intersecção, junção e divisão
– Especiais:
• Unária: renomeação, atribuição
3
Álgebra Relacional
• Projeção (𝜋)
– É uma operação unária e atua sobre as colunas de
uma tabela.
𝜋 coluna 1, coluna 2, ... , coluna n (relação)
4
Álgebra Relacional
– Exemplo 1
Professor
id nome titulação salário base
1 xxx doutor 1000,00
2 yyy mestre 800,00
𝜋 nome (Professor)
Resultado
nome
xxx
yyy
5
Álgebra Relacional
– Exemplo 2
Professor
id nome titulação salário
1 xxx doutor 1000,00
2 yyy mestre 800,00
𝜋 id, nome (Professor)
Resultado
id nome
1 xxx
2 yyy
6
Álgebra Relacional
• Seleção ()
– É uma operação que atua sobre as linhas de uma
tabela.
Expressão de seleção (relação)
Na expressão de seleção, operadores lógicos (e, ou , não) ou
relacionais (=, >, ≥, <, ≤, ≠) podem ser utilizados.
7
Álgebra Relacional
– Exemplo 1
Professor
id nome titulação salário base
1 xxx doutor 1000,00
2 yyy mestre 800,00
3 www graduado 500,00
titulação = “doutor” (Professor)
Resultado
id nome titulação salário base
1 xxx doutor 1000,00
8
Álgebra Relacional
– Exemplo 2
Professor
id nome titulação salário
1 xxx doutor 1000,00
2 yyy mestre 800,00
3 www graduado 500,00
salário > 500 e salário < 2000 (Professor)
Resultado
id nome titulação salário
1 xxx doutor 1000,00
2 yyy mestre 800,00
9
Álgebra Relacional
– Exemplo 3
• Utilizando as operações de projeção e seleção juntas
• Apresentar o nome de cada funcionário mulher cujo salário
seja maior que 1000.
𝜋 nome ( sexo =“F” e salario > 1000 (Funcionario))
Resultado
nome
Ana
Maria
10
Álgebra Relacional
• Produto Cartesiano (x)
– É uma operação binária que retorna a combinação de
cada linha de uma tabela com cada linha de outra
tabela
Relação1 X Relação2
11
Álgebra Relacional
– Exemplo 1
Professor Disciplina
id nome id nome
1 Ana 1 Matemática
2 José 2 Inglês
Professor X Disciplina
Resultado
idProfessor nomeProfessor idDisciplina nomeDisciplina
1 Ana 1 Matemática
1 Ana 2 Inglês
2 José 1 Matemática
2 José 2 Inglês
12
Álgebra Relacional
• União (Union )
– É uma operação binária que retorna a união das
tuplas de duas relações
• Requer que as tabelas sejam compatíveis, ou seja, que o
número de colunas de ambas as tabelas participantes da
união seja o mesmo e que o domínio destas colunas seja o
mesmo.
– Nesta operação tuplas duplicadas são eliminadas
Relação1 Relação2
13
Álgebra Relacional
– Exemplo 1
Professor Disciplina
id nome id nome
1 Ana 1 Matemática
2 José 2 Inglês
𝜋 nome (Professor) 𝜋 nome (Disciplina)
Resultado
nome
Ana
José
Matemática
Inglês
14
Álgebra Relacional
• Diferença (-)
– É uma operação binária que retorna as tuplas
presentes em R1 e ausentes em R2. As tabelas
necessitam ser compatíveis.
Relação1 - Relação2
15
Álgebra Relacional
– Exemplo 1
Funcionário Cliente
id nome id nome
1 Ana 1 Ana
2 José 2 João
Funcionário - Cliente
Resultado
id nome
2 José
16
Álgebra Relacional
• Interseção ( )
– É uma operação binária que produz como resultado
uma tabela que contém, sem repetições, todos os
valores que são comuns às duas relações.
Relação1 Relação2
17
Álgebra Relacional
– Exemplo 1
Funcionário Cliente
id nome id nome
1 Ana 1 Ana
2 José 2 João
Funcionário Cliente
Resultado
id nome
1 Ana
18
Álgebra Relacional
• Junção (Join)
– Esta operação combina as tuplas de uma relação com
as tuplas de uma outra relação através de uma coluna
em comum existente em ambas as tabelas
Relação1 Relação2
19
Álgebra Relacional
– Exemplo 1
Cliente Empréstimo
id nome id valor idCliente
1 xxx 1 1000 1
2 yyy 2 2000 1
3 www 4 1500 2
idCliente REFERENCE Cliente(id)
𝜋 nome (Clienteid EmprestimoidCliente) nome
xxx
yyy
𝜋 nome (Cliente id=idCliente Emprestimo)
20
Álgebra Relacional
• Divisão (÷)
– Todos os valores de um atributo de uma tabela (R1)
que fazem referência a todos os valores de um
atributo da tabela (R2) são retornados
– Utilizada para consultas como as do tipo: para todos
ou em todos.
R1 ÷ R2
21
Álgebra Relacional
– Exemplo 1
• Listar todos os clientes que já foram atendidos por todos os
vendedores
Atende ÷ Vendedor
Atende
idCliente idVendedor
1 1 Vendedor
2 1 id nome Resultado
1 2 1 xxx idCliente
1 3 2 yyy 1
3 1 3 www 3
3 2
3 3
22
Álgebra Relacional
• Renomear (rename ou )
– É uma operação unária quer permite alterar o nome
de uma tabela.
relação nova(relação antiga)
Ex.:
prof (Professor)
prof(x,y,z) (Professor)
23
Álgebra Relacional
• Atribuição ()
– É uma operação que permite armazenar o resultado
de uma operação em uma variável.
variável Operação
Ex.:
Resultado 𝜋 nome (Clienteid EmprestimoidCliente)
24
Álgebra Relacional
• Exercícios
25