Você está na página 1de 35

Álgebra Relacional

Banco de Dados

<Bob/>
Sumário
● Definição.
● Operações unárias.
● Operações binárias.
● Exercícios.
Definição
● É uma linguagem formal de consulta procedural.
● Possui características matemáticas baseadas na teoria de
conjuntos.
● Alguns dos seus conceitos são incorporados na
linguagem SQL padrão.
● Conjunto de operações: entrada (uma ou duas relações);
saída (uma nova relação como resultado).
Operações unárias
● Seleção
● Projeção
● Renomeação
Seleção σ
O objetivo é selecionar (σ - letra grega sigma) um conjunto
de tuplas que satisfaçam um predicado (p - condição lógica)
nos valores dos atributos da relação (R).
Exemplo: σ

Quais grupos de países ou parte do mundo apresentam mais de 10%


da distribuição de petróleo?
Exemplo: σ
σ DistribuicaoPetroleo > 10 (DistribuicoesPaises)
Projeção π
O objetivo é selecionar (π - letra grega pi) determinadas
colunas de uma relação (R).
Exemplo: π
Queremos apenas as informações das distribuições de
petróleo do mundo e seus países, ou seja, excluindo a
coluna de distribuição de gás natural.
Exemplo: π
π Pais, DistribuicaoPetroleo (DistribuicoesPaises)
Exemplo π e σ

Caso queiramos as informações das distribuições de petróleo


do mundo, com seus respectivos países que apresentem
mais de 10% da distribuição de petróleo.
Exemplo: π e σ
Exercícios
R S

π A,C (R) π A,B,D σ (A=B ∧D > 5) (S)


Renomeação ρ
O objetivo é renomear (ρ - letra grega rho) relações caso
haja ambiguidade entre elas. É muito utilizada quando
relacionamos uma tabela com ela mesma (falaremos sobre
esta operação mais adiante).

ρ f (Funcionarios)
ρ (código, nome, vendedor) (Clientes)
temp←ρ e (Estudantes)
Operações Binárias
● União
● Intersecção
● Diferença
● Produto Cartesiano
● Junção
União

A operação é caracterizada por R ∪ S, onde R e S são duas


relações com a mesma quantidade de atributos, os quais
operam sobre o mesmo domínio. O resultado contém as
tuplas que estão em R, S ou ambas.
Exemplo: União
R ∪ S = {t: t ∈ R ou t ∈ S}

R S R∪S
Intersecção

A intersecção é representada por R ∩ S, traz como resultado


a relação que contém as tuplas que estão em ambas R e S.
Exemplo: Intersecção
R ∩ S = {t: t ∈ R e t ∈ S}

R S R∩S
Diferença

R - S: Relação que contém as tuplas que estão em R e que


não estão em S. Veja que, ao contrário das operações de
união e intersecção listadas acima, a diferença não é
comutativa, ou seja, 𝑅 − 𝑆 ≠ 𝑆 − 𝑅.
Exemplo: Diferença
R - S = {t: t ∈ R e t ∉ S}

R S R-S
Produto Cartesiano
Permite combinar informações de duas relações, fazendo
uma junção de todas as linhas. O produto cartesiano entre
duas tabelas ou relações gera uma nova relação com a
quantidade de tuplas igual ao produto da quantidade de
tuplas de cada uma das relações.
Exemplo: Produto Cartesiano
R x S = {t1.t2: t1 ∈ R e t2 ∈ S}

R S RxS
Junção Theta (Theta Join)
A junção é uma conexão entre duas tabelas na qual elas são
mescladas de acordo com um campo em comum. Essa
junção pode ser considerada um produto cartesiano seguido
por uma seleção. O símbolo ⋈ representa uma junção. Ao
executar uma junção, ela deve satisfazer a um predicado θ e
deve existir pelo menos um campo nas duas tabelas que
operem sobre o mesmo domínio.
Exemplo: Junção Theta
Carros Barcos

Carros ⋈ (CarroPreco > BarcoPreco) Barcos


Junção Natural (Natural Join)

Junção na qual o predicado θ é uma igualdade predefinida


entre todos os atributos de mesmo nome presentes em duas
relações R1 e R2 (atributos de junção). Estes atributos só
aparecem uma vez no resultado.
Exemplo: Junção Natural
Funcionários Dependentes

π CpfFunc, NomeDep (Funcionarios ⨝ Dependentes)


Exercício: ρ (rho - renomeação)
Funcionários

Qual o maior salário?


http://dbis-uibk.github.io/relax
Junções Externas (Outer Joins)

Junção na qual as tuplas de uma ou ambas as relações, que


não são combinadas, mesmo assim são preservadas no
resultado.
Junções Externas (Outer Joins)
Possui basicamente três variações.

● Left outer join: tuplas da relação à esquerda são


preservadas
● Right outer join: tuplas da relação à direita são
preservadas
● Full outer join: tuplas da relação à direita e à esquerda
são preservadas
Divisão

A operação de divisão é usada nas consultas nas quais se


emprega a frase: “para todos”. Seu resultado será composto,
basicamente, pelos elementos da primeira tabela que se
relacionem com todos os elementos da segunda tabela.
Exemplo: Divisão R S R÷S
Exercícios
Considerando as duas tabelas T1 e T2 abaixo, desenhe a árvore e o
resultado das operações a seguir:

T1 T2
a) T1 ⨝ T1.P = T2.A T2
b) T1 ⨝ T1.Q = T2.B T2
c) T1 ⟕ T1.P = T2.A T2
d) T1 ⟖ T1.Q = T2.B T2
e) T1 ∪ T2
f) T1 ⨝ ( T1.P = T2.A and T1.R = T2.C ) T2
Referências

● Elmasri, Ramez e Navathe, Shamkant B.; Sistema de


Banco de Dados; 6. ed; Pearson Addison Wesley, 2011;
pág: 96.
● Silberschatz, Abraham; F. Khort, Henry; Sistema de
Banco de Dados; 6. ed; Elsevier, 2012; pág: 133.

Você também pode gostar