Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional...
Transcript of Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional...
![Page 1: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/1.jpg)
Base de Dados
04 - Álgebra Relacional
Vitor Vaz da Silva
![Page 2: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/2.jpg)
Base de Dados - Índice
• Álgebra Relacional
BD – ISEL - Vitor Silva 2
![Page 3: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/3.jpg)
Álgebra É um sistema matemático constituído por:
Operandos – variáveis, valores ou expressões
Operadores – símbolos que representam procedimentos que permitem obter valores
a partir de outros valores
BD – ISEL - Vitor Silva 3
![Page 4: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/4.jpg)
Álgebra Relacional Operandos
Relações
Valores que representam Relações
Operadores
Traduzem as relações mais simples e comuns a realizar sobre Relações
Resulta numa álgebra a utilizar para efectuar pesquisas sobre relações
BD – ISEL - Vitor Silva 4
![Page 5: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/5.jpg)
Álgebra Relacional
Query Language: (Linguagem de Pesquisa)
Permite manipular e retirar dados de uma Base de Dados
Não é uma Linguagem de Programação
Tem uma forte componente formal baseada em lógica relacional
BD – ISEL - Vitor Silva 5
![Page 6: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/6.jpg)
Álgebra Relacional Álgebra Relacional:
Operacional (procedimental)
Representa planos de execução
Cálculo Relacional: (não operacional)
Descreve
o que se quer e
não como se quer feito : Declarativa
BD – ISEL - Vitor Silva 6
![Page 7: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/7.jpg)
Base de Dados Álgebra Relacional
Subconjunto
União
Intersecção
Cardinalidade Número de elementos
Produto Cartesiano AxBxCxD {(a1,b1,c1,d1), (a1,b1,c1,d2), …}
Grau Dimensão do par ordenado (a,b,c) é 3
BD – ISEL - Vitor Silva 7
![Page 8: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/8.jpg)
Representação Gráfica
Seleção Projeção Junção
União Intersecção Diferença
![Page 9: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/9.jpg)
Representação Gráfica
BD – ISEL - Vitor Silva 9
Produto Cartesiano
X Y
1 2 3 X
X1 X2 X3 Y1 Y2 Y3
=
![Page 10: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/10.jpg)
Representação Gráfica
BD – ISEL - Vitor Silva 10
Divisão
X1 X2 X3 Y1 Y2 Y3
÷ X Y
1 2 3 =
![Page 11: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/11.jpg)
Representação Gráfica
BD – ISEL - Vitor Silva 11
Divisão
X1 X3 Y1 Y2 Y4 X2 X4
÷ X Y
1 2 =
![Page 12: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/12.jpg)
Representação Gráfica
BD – ISEL - Vitor Silva 12
Join
idx par
a x
b y
c y
par res
x asd
y qwe
z zxc idx par res
a asd x
b y qwe
c y qwe
![Page 13: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/13.jpg)
BD – ISEL - Vitor Silva 13
Representação Gráfica
A B C
Renomear
A D C
![Page 14: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/14.jpg)
BD – ISEL - Vitor Silva 14
Representação Gráfica
A B C
Agregar
Conta
Máximo
Mínimo
Soma
Média
Produz um único valor
![Page 15: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/15.jpg)
Simbologia Seleção F (R) Selection
Projeção i1, i2, ..., in(R) Projection
Junção R ⋈ S Join
União R S Union
Intersecção R S Intersect
Diferença R – S Difference
Produto Cartesiano R × S Product
Divisão R ÷ S Division
Renomear ρT(R) Renaming
Agregar F(R) Agregation
![Page 16: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/16.jpg)
Seleção () Retorna tuplos que satisfazem uma condição Age como um filtro. Possui os mesmos atributos da relação de entrada
![Page 17: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/17.jpg)
Seleção () Sintaxe: <condição de seleção>(<R>)
Sigma é o símbolo que representa a seleção
<condição de seleção> é uma expressão booleana que envolve literais e valores de atributos da relação
CLAUSULAS: <nome do atributo> <operador relacional>
{ <valor constante> | <nome do atributo> } Nome do atributo: é um atributo de <R> Operador relacional: =, <, <=, >, >=, <> Valor constante: é um valor do domínio do atributo
Podem ser ligadas pelos operadores AND, OR e NOT
<R> é o nome de uma relação ou uma expressão da álgebra relacional de onde se encontram os tuplos
![Page 18: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/18.jpg)
Seleção ()
R1 := σC(R2)
C é a condição ( como num ”if” ) referente aos atributos de R2
R1 são todos os túplos de R2 que satisfazem a condição C
BD – ISEL - Vitor Silva 18
![Page 19: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/19.jpg)
Relação
BD – ISEL - Vitor Silva 19
bar bebida preço
O’Gillans Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda Atributos
Tuplo ou
Par Ordenado
Relação
![Page 20: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/20.jpg)
Seleção ()
BD – ISEL - Vitor Silva 20
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda
Como seleccionar as linhas em que
obaréa“AdegadoZé”?
![Page 21: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/21.jpg)
Seleção ()
BD – ISEL - Vitor Silva 21
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda
DoZe :=σbar=“AdegadoZé”(Venda)
![Page 22: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/22.jpg)
Seleção ()
BD – ISEL - Vitor Silva 22
bar bebida preço
Adega do Zé Guiness 2.50
Adega do Zé Sagres 1.75
DoZe
DoZe :=σbar=“AdegadoZé”(Venda)
Relação
![Page 23: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/23.jpg)
Projeção ()
Retorna um ou mais atributos de interesse O resultado é uma relação que contém apenas as colunas seleccionadas.
Elimina duplicados
![Page 24: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/24.jpg)
Projeção ()
Sintaxe:
<lista de atributos> (<R>)
<lista de atributos> é uma lista que contém nomes de colunas de uma ou mais relações
(a ordem das colunas é a definida na lista) <R> é o nome da relação ou uma expressão da álgebra relacional de onde a lista de atributos será retirada
![Page 25: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/25.jpg)
Projeção ()
BD – ISEL - Vitor Silva 25
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda
Quais as bebidas e preços praticados?
![Page 26: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/26.jpg)
Projeção ()
BD – ISEL - Vitor Silva 26
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda
Preços := bebida, preço(Venda)
![Page 27: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/27.jpg)
Projeção ()
BD – ISEL - Vitor Silva 27
bebida preço
Guiness 2.50
Sagres 1.75
Tuborg 2.20
Sagres 1.50
Venda
Preços := bebida, preço(Venda)
![Page 28: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/28.jpg)
Projeção Extendida ()
Sintaxe:
<lista de atributos> (<R>)
<lista de atributos> pode conter: expressões aritméticas: a+b->c repetir atributos: a, a
<R> Uma Relação, ex: R (a, b)
a+b->c, a, a R
![Page 29: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/29.jpg)
Projeção Extendida ()
BD – ISEL - Vitor Silva 29
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda
Promo := bebida, preço*0.3->prom, bebida(Venda)
![Page 30: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/30.jpg)
Projeção Extendida ()
BD – ISEL - Vitor Silva 30
bebida1 prom bebida2
Guiness 0.75 Guiness
Sagres 0.53 Sagres
Tuborg 0.66 Tuborg
Sagres 0.45 Sagres
Guiness 0.75 Guiness
Promo
Promo := bebida, preço*0.3->prom, bebida(Venda) As colunas podem ser repetidas mas os títulos têm de ser
distintos (numeração automática)
![Page 31: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/31.jpg)
Esquema
• O esquema de uma relação consiste na sua estrutura:
o nome e o tipo de dados dos atributos
• Duas relações têm o mesmo esquema quando a estrutura é a mesma
(a ordem dos atributos não intefere)
BD – ISEL - Vitor Silva 31
![Page 32: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/32.jpg)
Intersecção () Requer que as duas relações fornecidas como argumento tenham o mesmo esquema.
(ex: R S )
Resulta numa nova relação
com o mesmo esquema
com os tuplos comuns a R e S
(pode haver tuplos repetidos!)
![Page 33: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/33.jpg)
Intersecção ()
Resulta numa nova relação com o mesmo esquema e com os tuplos comuns aos termos da operação
Notação: R S
![Page 34: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/34.jpg)
Intersecção ()
x y z
1 1 1
1 2 2
2 2 3
3 1 1
1 1 1
x y z
1 1 1
1 2 1
3 1 1
1 1 1
x y z
1 1 1
3 1 1
1 1 1
= R S
R S
![Page 35: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/35.jpg)
União () Requer que as duas relações fornecidas como argumento tenham o mesmo esquema.
Resulta em uma nova relação,
com o mesmo esquema,
cujo conjunto de linhas é a união dos conjuntos de linhas das relações dadas como argumento.
Eliminação automática de duplicados
![Page 36: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/36.jpg)
União ()
Notação:
R S
Retorna a união dos tuplos de duas relações R e S
![Page 37: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/37.jpg)
União ()
x y z
1 1 1
1 2 2
2 2 3
3 1 1
1 1 1
x y z
1 1 1
1 2 1
3 1 1
1 1 1
= R S
R S
x y z
1 1 1
1 2 2
2 2 3
3 1 1
1 2 1
![Page 38: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/38.jpg)
Diferença (-)
Requer que as duas relações fornecidas como argumento tenham o mesmo esquema.
Resulta numa nova relação,
com o mesmo esquema, cujo
conjunto de linhas é o
conjunto de linhas da primeira relação menos o conjunto de linhas existentes na segunda.
![Page 39: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/39.jpg)
Diferença (-)
Notação: R - S Retorna os tuplos presentes em R e ausentes em S
![Page 40: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/40.jpg)
Diferença (-)
x y z
1 1 1
1 2 2
2 2 3
3 1 1
1 1 1
x y z
1 1 1
1 2 1
3 1 1
-
= R - S
R S
x y z
1 1 1
1 2 2
2 2 3
![Page 41: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/41.jpg)
Renomear(r)
• Sintaxe: r <N>(<lista de atributos>) (<R>)
• <lista de atributos> é uma lista que contém os
novos nomes das colunas
• <N> é o nome da nova relação • <R> é o nome da relação de onde todos os
tuplos vão ser copiados
![Page 42: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/42.jpg)
Renomear (r)
O operador r dá um novo esquema a uma relação
ρ R1(A1,..., An) (R2)
cria a relação R1 com os atributos A1,..., An
e com os mesmos tuplos que R2.
Notação simplificada: R1(A1,..., An) := R2
![Page 43: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/43.jpg)
Renomear(r)
BD – ISEL - Vitor Silva 43
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda
Como trocar o título das colunas
de bar, bebida, preço para: local, tipo, valor ?
![Page 44: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/44.jpg)
Renomear(r)
BD – ISEL - Vitor Silva 44
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Venda
r Bares (local, tipo, valor) (Venda)
![Page 45: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/45.jpg)
Renomear(r)
BD – ISEL - Vitor Silva 45
local tipo valor
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
Bares
r Bares (local, tipo, valor) (Venda)
![Page 46: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/46.jpg)
Produto Cartesiano (x)
Retorna todas as combinações de tuplos de duas relações Notação: R x S O resultado é uma relação cujos tuplos são a combinação dos tuplos das relações R e S, tomando-se um tuplo de R e concatenando-o com cada um dos tuplos de S
![Page 47: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/47.jpg)
Produto Cartesiano (x)
R
S Total de atributos do produto cartesiano
= num. atributos de R + S
Número de tuplos do produto cartesiano
= num. tuplos de R x S
![Page 48: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/48.jpg)
Produto Cartesiano (x) R3 := R1 x R2 Emparelha cada tuplo t1 de R1 com cada tuplo t2 de R2 A concatenação t1 t2 é o novo tuplo de R3 O novo esquema tem primeiro os atributos de R1 seguidos dos de R2 No caso de duplicação de atributos são usados os nomes da relação. ex: R1.A R2.A
![Page 49: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/49.jpg)
Produto Cartesiano (x)
BD – ISEL - Vitor Silva 49
x y t
1 1 1
1 2 2
2 2 3
3 1 1
z t
1 1
1 2 x
R S
x y R.t z S.t
1 1 1 1 1
1 1 1 1 2
1 2 2 1 1
1 2 2 1 2
2 2 3 1 1
2 2 3 1 2
3 1 1 1 1
3 1 1 1 2
R x S =
![Page 50: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/50.jpg)
Junção(⋈) – [Natural] Join
Junta duas relações através de um atributo com o mesmo nome e acrescentando os demais
Notação
R3 := R1 ⋈ R2
BD – ISEL - Vitor Silva 50
![Page 51: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/51.jpg)
Junção(⋈) – [Natural] Join
BD – ISEL - Vitor Silva 51
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
bar local
O’Gilins Cais do Sodré
Adega do Zé Chelas
Venda
Local
![Page 52: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/52.jpg)
Junção(⋈) – [Natural] Join
BD – ISEL - Vitor Silva 52
bar bebida preço local
O’Gilins Guiness 2.50 Cais do Sodré
Adega do Zé Sagres 1.75 Chelas
Adega do Zé Guiness 2.50 Chelas
Bares := Venda ⋈ Local
Bares
Em que locais há vendas ? ou
As vendas são feitas em que locais ?
![Page 53: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/53.jpg)
Junção Condicional (⋈c) – Theta Join
Equivalente à junção com uma condição
Notação:
R3 := R1 ⋈c R2
equivalente a: R3 := σC (R1 x R2)
BD – ISEL - Vitor Silva 53
![Page 54: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/54.jpg)
Junção(⋈c) – Theta Join
BD – ISEL - Vitor Silva 54
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
loja local
O’Gilins Cais do Sodré
Adega do Zé Chelas
Venda
Local
![Page 55: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/55.jpg)
Junção(⋈) – [Natural] Join
BD – ISEL - Vitor Silva 55
bar bebida preço loja local
O’Gilins Guiness 2.50 O’Gilins Cais do Sodré
Adega do Zé Sagres 1.75 Adega do Zé Chelas
Adega do Zé Guiness 2.50 Adega do Zé Chelas
Bares := Venda ⋈Venda.bar=Local.loja Local
Bares
Como não há um atributo comum, é necessária a condição
![Page 56: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/56.jpg)
Funções de Agregação (F)
Forma geral: G1,G2,…, Gi F F1(A1), F2(A2), … Fn(An)(R)
R é uma relação
Gi são atributos de R sobre os quais recai a agregação
Cada Fn é a função de agregação aplicada ao atributo An
Passos:
A relação é dividida em grupos Gi
As funções de agregação são aplicadas a cada grupo
BD – ISEL - Vitor Silva 56
![Page 57: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/57.jpg)
Funções de Agregação (F)
Quantas pessoas terminaram o puzzle? Terminou(nome, puzzle)
nome F count-distinct(puzzle)(Terminou) Select count(distinct puzzle) From Terminou Group by nome
BD – ISEL - Vitor Silva 57
![Page 58: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/58.jpg)
Funções de Agregação (F) Quantas pessoas terminaram o puzzle mais do que cinco vezes? Terminou(nome, puzzle)
σcount-distinct(puzzle)>5 (nome F count-distinct(puzzle)(Terminou)) Select nome, count(distinct puzzle) From Terminou Group by nome Having count(distinct puzzle) >5
BD – ISEL - Vitor Silva 58
![Page 59: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/59.jpg)
Funções de Agregação (F)
Qual o preço mais alto e a média dos preços por tipo de vinho?
ρ (tipo_vinho, “maior”, “médio”)(tipo_vinhoFMAX (preço), AVG (preço) (vinho))
SELECT tipo_vinho,
MAX (preço) AS “maior”,
AVG (preço) AS “médio”
FROM vinho
GROUP BY tipo_vinho
BD – ISEL - Vitor Silva 59
Como não há clausula Having não
se coloca o σmas como há nomes
para as colunas utiliza-se o ρ
![Page 60: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/60.jpg)
NULL O null afecta tudo!
null significa unknown “desconhecido” or “não existe”
É necessário especificar o que acontece quando o null está presente. Pode ser arbitrário, é preciso ler o manual das especificações
Operações aritméticas (+, –, *, /) que envolvem null têm null como resultado
Ex: 5 + null dá “desconhecido” : null
Comparar com null tem como resultado null
Ex: null = null dá “desconhecido” : null
BD – ISEL - Vitor Silva 60
![Page 61: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/61.jpg)
NULL <=> UNKNOWN AND
True ˄ unknown = unknown
False ˄ unknown = False
unknown ˄ unknown = unknown
OR
true˅ unknown = true
false ˅ unknown = unknown
unknown ˅ unknown = unknown
NOT
¬ unknown = unknown
BD – ISEL - Vitor Silva 61
![Page 62: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/62.jpg)
Expressões
Regras de precedência:
Prioridade cima-> baixo e esquerda->direita
[ σ, π, ρ ]
[ x , ⋈ ]
∩
[ ∪, — ]
BD – ISEL - Vitor Silva 62
![Page 63: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/63.jpg)
Árvores
Uma expressão pode ser escrita em forma de árvore.
(A árvore não tem ciclos fechados!
Só há um caminho entre dois pontos!)
Folhas – são operandos (variáveis ou relações)
Nós – são operadores
BD – ISEL - Vitor Silva 63
![Page 64: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/64.jpg)
Árvores Exemplo:
Utilizando as relações
Local (loja, local)
Venda(bar, bebida, preço)
Procure o nome dos bares
que estão no Cais do Sodré,
ou vendem Sagres a um preço inferior a 1.70
BD – ISEL - Vitor Silva 64
![Page 65: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/65.jpg)
BD – ISEL - Vitor Silva 65
bar bebida preço
O’Gilins Guiness 2.50
Adega do Zé Sagres 1.75
Trovador Tuborg 2.20
Trovador Sagres 1.50
Adega do Zé Guiness 2.50
loja local
O’Gilins Cais do Sodré
Adega do Zé Chelas
Venda
Local
![Page 66: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/66.jpg)
Árvores
Exemplo: Utilizando as relações
Local (loja, local) e Venda(bar, bebida, preço) procure o
nome de todos os bares
que estão no Cais do Sodré
ou vendem Sagres a um preço inferior a 1.70
BD – ISEL - Vitor Silva 66
![Page 67: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/67.jpg)
Árvore
BD – ISEL - Vitor Silva 67
∪
πbar
σlocal=Cais do Sodré
ρbar
πloja
σpreço<1.70 AND bebida=Sagres
Local Venda
![Page 68: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/68.jpg)
Árvores
Exemplo: Utilizando a relação
Venda(bar, bebida, preço)
procure o
nome de todos os bares que
vendem bebidas diferentes ao mesmo preço
BD – ISEL - Vitor Silva 68
![Page 69: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/69.jpg)
Árvore
BD – ISEL - Vitor Silva 69
πbar
ρV(bar, bebida1, preço)
⋈
σbebida != bebida1
Venda Venda
Consiste num quádruplo
(bar, bebida, bebida1, preço)
![Page 70: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/70.jpg)
Resumo - Esquemas União, Intersecção e Diferença:
Os esquemas dos dois operandos tem de ser igual e o resultado também fica com o mesmo esquema
Selecção:
O esquema resultante é idêntico ao do operando
Projecção:
O esquema é dado pela lista dos atributos
BD – ISEL - Vitor Silva 70
![Page 71: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/71.jpg)
Resumo - Esquemas Produto, Theta-join:
O esquema resultante contém os atributos de ambas relações (iguais-> A1, A2,…)
Natural join:
O esquema resultante é a união dos atributos das dus relações (iguais ficam iguais; o mesmo atributo)
Renomear:
O esquema é indicado pelo operador
BD – ISEL - Vitor Silva 71
![Page 72: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/72.jpg)
Saco – Multi Conjunto
Um Bag (saco) é idêntico a um conjunto mas pode ter elementos repetidos.
Selecção, Projecção, Produtos e Junções
operam em pares de túplos por isso os repetidos são utilizados
BD – ISEL - Vitor Silva 72
![Page 73: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/73.jpg)
Saco – Multi Conjunto As regras são diferentes.
Com sacos:
R U S = S U R
S U S != S
ex: {1} U {1} = {1, 1}
O conjunto é idempotente S U S = S ; o saco não é.
BD – ISEL - Vitor Silva 73
![Page 74: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/74.jpg)
Calculadora para Algebra Relacional
• http://dbis-uibk.github.io/relax/help.htm
• http://dbis-uibk.github.io/relax/calc.htm#
• Converte Algebra Relacional de e para SQL
BD – ISEL - Vitor Silva 74
![Page 75: Base de Dadostektonia.com.pt/tecno/bd/4 - BD_04 - Algebra Relacional.pdf · Álgebra Relacional Query Language: (Linguagem de Pesquisa) Permite manipular e retirar dados de uma Base](https://reader030.fdocumentos.tips/reader030/viewer/2022040209/5e45cb75a7e84b3e244d5cb4/html5/thumbnails/75.jpg)
Base de Dados
Referências
• RAMAKRISHNAN, R. - Database Management Systems -
McGraw-Hill
• http://www.inf.ufsc.br/~vania/teaching/ine5613/Aula_AlgebraRelacional.ppt
• http://www.inf.furb.br/~arv/bd/Algebra_Relacional.ppt
• http://infolab.stanford.edu/~ullman/fcdb/aut07/slides/ra.pdf
• http://users.cms.caltech.edu/~donnie/cs121/CS121Lec03.pdf
• http://dbis-uibk.github.io/relax/
BD – ISEL - Vitor Silva 75