SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Base de Dados
Álgebra Relacional
2018/2019
Sumário
• Álgebra Relacional
• Operações Adicionais de Álgebra Relacional
• Extensão às Operações da Álgebra Relacional
• Exercícios
Linguagens de Consulta
• Linguagem com que um utilizador pede informação a um BD
• Categorias de linguagens
• Procedimental
• Não-procedimental (ou declarativa)
• Linguagens formais:
• Álgebra relacional
• Cálculo relacional de tuplos
• Cálculo relacional de domínios
• Linguagens formais são a base teórica das linguagens de consulta
Álgebra Relacional
• Linguagem procedimental
• Seis operadores básicos:
• Seleção: 𝜎
• Projeção: 𝜋
• União: ∪
• Diferença entre conjuntos: −
• Produto cartesiano: ×
• Renomeação: 𝜌
• Os operadores aceitam uma ou duas relações como entradas e produzem
uma nova relação como resultado
Operação de Seleção
• Utilizada para selecionar um conjunto de tuplos de uma relação
• Notação: 𝜎𝑝 𝑟
• P é designado predicado de seleção
• Definido como: 𝜎p(r) = {t|t ∈ r and p(t)}
• Onde p é uma fórmula de cálculo proposicional composta por termos
ligados por ⋀ (e), ⋁ (ou) e (não)
• Cada termo é uma expressão que pode conter:
• Atributos da relação
• Constantes
• Operadores relacionais ≠, =, >, ≥, <, ≤
• Exemplo: 𝜎𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒="Campolide" (𝑐𝑜𝑛𝑡𝑎)
Operação de Seleção - Exemplo
• Relação r
• 𝜎𝐴=𝐵∧𝐷>5 𝑟 =?
A B C D
a a 1 7
a b 5 7
b b 12 3
b b 23 10
Operação de Seleção - Exemplo
• Relação r
• 𝜎𝐴=𝐵∧𝐷>5 𝑟 =?
A B C D
a a 1 7
a b 5 7
b b 12 3
b b 23 10
A B C D
a a 1 7
b b 23 10
Operação de Projeção
• Notação: 𝜋𝐴1,𝐴2,…,𝐴𝑘
(𝑟)
• Onde A1, A2 são nomes de atributos e r é o nome da relação
• O resultado é definido como a relação de k colunas obtidas
suprimindo as colunas que não estão listadas
• Linhas duplicadas são removidas do resultado (uma vez que as
relações são conjuntos)
• Exemplo: 𝜋𝑛𝑢𝑚𝑒𝑟𝑜_𝑐𝑜𝑛𝑡𝑎,𝑠𝑎𝑙𝑑𝑜(𝑐𝑜𝑛𝑡𝑎)
Operação de Projeção - Exemplo
• Relação r
• 𝜋𝐴,𝐶 𝑟 =?
A B C
a 10 1
a 20 1
b 30 1
b 40 2
Operação de Projeção - Exemplo
• Relação r
• 𝜋𝐴,𝐶 𝑟 =?
A B C
a 10 1
a 20 1
b 30 1
b 40 2
A C
a 1
a 1
b 1
b 2
Operação de Projeção - Exemplo
• Relação r
• 𝜋𝐴,𝐶 𝑟 =?
A B C
a 10 1
a 20 1
b 30 1
b 40 2
A C
a 1
a 1
b 1
b 2
A C
a 1
b 1
b 2
=
Operação de União
• Notação: 𝑟 ∪ 𝑠
• Definido como: 𝑟 ∪ 𝑠 = {t|t ∈ r or t ∈ s}
• Para que 𝑟 ∪ 𝑠 seja válido:
1. r e s devem ter mesma aridade (igual número de atributos);
2. Os atributos têm de ser compatíveis (valores de tipos compatíveis);
• Exemplo: obter lista de todos os clientes que sejam titulares de uma
conta ou de um empréstimo
𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑡𝑖𝑡𝑢𝑙𝑎𝑟) ∪ 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
Operação de União - Exemplo
• Relações r e s
• 𝑟 ∪ 𝑠 =?
A B
a 1
a 2
b 1
A B
a 2
b 3
r =
s =
Operação de União - Exemplo
• Relações r e s
• 𝑟 ∪ 𝑠 =?
A B
a 1
a 2
b 1
A B
a 1
a 2
b 1
b 3
A B
a 2
b 3
r =
s =
Operação de Diferença
• Notação: 𝑟 − 𝑠
• Definido como: 𝑟 − 𝑠 = {t|t ∈ r and t ∉ s}
• Para que 𝑟 − 𝑠 seja válido:
1. r e s devem ter mesma aridade (igual número de atributos);
2. Os atributos têm de ser compatíveis (valores de tipos compatíveis);
• Exemplo: obter lista de todos os clientes que sejam titulares de uma
conta mas não de um empréstimo
𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 − 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
Operação de Diferença - Exemplo
• Relações r e s
• 𝑟 − 𝑠 =?
A B
a 1
a 2
b 1
A B
a 2
b 3
r =
s =
Operação de Diferença - Exemplo
• Relações r e s
• 𝑟 − 𝑠 =?
A B
a 1
a 2
b 1
A B
a 1
b 1
A B
a 2
b 3
r =
s =
Operação de Produto Cartesiano
• Notação: 𝑟 × 𝑠
• Definido como: 𝑟 × 𝑠 = {tq|t ∈ r and q ∈ s}
• Para que 𝑟 × 𝑠 seja válido:
1. r e s devem ser disjuntos
• Se os artibutos s(R) e s(S) não forem disjuntos então é necessária a
aplicação de renomeação
Operação de Produto Cartesiano - Exemplo
• Relações r e s
• 𝑟 × 𝑠 =?
A B
a 1
b 2
C D E
a 10 x
b 10 x
b 20 y
c 10 y
r =
s =
Operação de Produto Cartesiano - Exemplo
• Relações r e s
• 𝑟 × 𝑠 =?
A B
a 1
b 2
A B C D E
a 1 a 10 x
a 1 b 10 x
a 1 b 20 y
a 1 c 10 y
b 2 a 10 x
b 2 b 10 x
b 2 b 20 y
b 2 c 10 y
C D E
a 10 x
b 10 x
b 20 y
c 10 y
r =
s =
Operação de Renomeação
• Permite nomear, e fazer referência a, resultados de expressões de álgebra
relacional
• Permite fazer referência a uma relação utilizando vários nomes
• Exemplo: ρ𝑋 𝐸 retorna a expressão E com o nome X
• Se uma expressão de álgebra relacional tem aridade n, então
ρ𝑋(𝐴1,𝐴2,…,𝐴𝑛) 𝐸
• Retorna o valor da expressão E sob o nome X, e com os atributos
renomeados para A1, A2, …, An
• ρ𝑡𝑖𝑡 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ⟶ 𝑡𝑖𝑡(𝑐𝑙𝑖𝑒𝑛𝑡𝑒_𝑛𝑜𝑚𝑒, 𝑐𝑜𝑛𝑡𝑎_𝑛𝑢𝑚𝑒𝑟𝑜)
• ρ𝑡𝑖𝑡(𝑐𝑙𝑛,𝑐𝑜𝑛) 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ⟶ 𝑡𝑖𝑡(𝑐𝑙𝑛 𝑐𝑜𝑛)
Composição de Operações
• Pode-se construir expressões compostas por múltiplas operações
• Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠)
Composição de Operações
• Pode-se construir expressões compostas por múltiplas operações
• Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠)
A B C D E
a 1 a 10 x
a 1 b 10 x
a 1 b 20 y
a 1 c 10 y
b 2 a 10 x
b 2 b 10 x
b 2 b 20 y
b 2 c 10 y
1) 𝑟 × 𝑠
Composição de Operações
• Pode-se construir expressões compostas por múltiplas operações
• Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠)
A B C D E
a 1 a 10 x
a 1 b 10 x
a 1 b 20 y
a 1 c 10 y
b 2 a 10 x
b 2 b 10 x
b 2 b 20 y
b 2 c 10 y
1) 𝑟 × 𝑠
2)𝜎𝐴=𝐶
Composição de Operações
• Pode-se construir expressões compostas por múltiplas operações
• Exemplo:𝜎𝐴=𝐶(𝑟 × 𝑠)
A B C D E
a 1 a 10 x
a 1 b 10 x
a 1 b 20 y
a 1 c 10 y
b 2 a 10 x
b 2 b 10 x
b 2 b 20 y
b 2 c 10 y
1) 𝑟 × 𝑠
2)𝜎𝐴=𝐶
3)𝜎𝐴=𝐶(𝑟 × 𝑠)
A B C D E
a 1 a 10 x
b 2 b 10 x
b 2 b 20 y
Operações Adicionais
• São operações que não aumentam o poder expressivo da álgebra
relacional mas que simplificam consultas habituais
• Intersecção de conjuntos: ∩
• Junção natural: ⋈
• Divisão: ÷
• Atribuição: ⟵
Operação de Intersecção de Conjuntos
• Notação: 𝑟 ∩ 𝑠
• Definido como: 𝑟 ∩ 𝑠 = {t|t ∈ r and t ∈ s}
• Nota: 𝑟 ∩ 𝑠 = 𝑟 − (𝑟 − 𝑠)
• Para que 𝑟 ∩ 𝑠 seja válido:
1. r e s devem ter mesma aridade (igual número de atributos);
2. Os atributos têm de ser compatíveis (valores de tipos compatíveis);
• Exemplo: obter lista de todos os clientes que sejam simultaneamente
titulares de uma conta e de um empréstimo
𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ∩ 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
Operação de Intersecção - Exemplo
• Relações r e s
• 𝑟 ∩ 𝑠 =?
A B
a 1
a 2
b 1
A B
a 2
b 3
r =
s =
Operação de Intersecção - Exemplo
• Relações r e s
• 𝑟 ∩ 𝑠 =?
A B
a 1
a 2
b 1
A B
a 2
A B
a 2
b 3
r =
s =
Operação de Junção Natural
• Notação: 𝑟 ⋈ 𝑠
• Sejam r e s relações nos esquemas R e S respetivamente. Então 𝑟 ⋈ 𝑠 é
uma relação no esquema 𝑅 ∪ 𝑆 obtida:
• Considerando cada par de tuplos tr de r e ts de s
• Se tr e ts têm o mesmo valor em cada um dos atributos em 𝑅 ∪ 𝑆, adicionar o tuplo t
ao resultado tal que:
• t tem o mesmo valor que tr em r;
• t tem o mesmo valor que ts em s.
• Exemplo:
• 𝑅 = 𝐴, 𝐵, 𝐶, 𝐷 , 𝑆 = 𝐸, 𝐵, 𝐷
• Esquema resultante = (𝐴, 𝐵, 𝐶, 𝐷, 𝐸)
• 𝑟 ⋈ 𝑠 = 𝜋𝑟.𝐴,𝑟.𝐵,𝑟.𝐶,𝑟.𝐷,𝑠.𝐸(𝜎𝑟.𝐵=𝑠.𝐵∧𝑟.𝐷=𝑠.𝐷(𝑟 × 𝑠))
Operação de Junção Natural - Exemplo
• Relações r e s
• 𝑟 ⋈ 𝑠 =?
A B C D
a 1 a x
b 2 c x
c 4 b y
a 1 c x
d 2 b y
B D E
1 x a
3 x b
1 x c
2 y d
3 y e
r = s =
Operação de Junção Natural - Exemplo
• Relações r e s
• 𝑟 ⋈ 𝑠 =?
A B C D
a 1 a x
b 2 c x
c 4 b y
a 1 c x
d 2 b y
A B C D E
a 1 a x a
a 1 a x c
a 1 c x a
a 1 c x c
d 2 b y d
B D E
1 x a
3 x b
1 x c
2 y d
3 y e
r = s =
Operação de Divisão
• Notação: 𝑟 ÷ 𝑠
• Sejam r e s relações nos esquemas R e S respetivamente onde:
• 𝑅 = (𝐴1, … , 𝐴𝑚, 𝐵1, … , 𝐵𝑛)
• 𝑆 = (𝐵1, … , 𝐵𝑛)
Então, 𝑟 ÷ 𝑠 é uma relação no esquema 𝑅 − 𝑆, tal que:
𝑟 ÷ 𝑠 = 𝑡 𝑡 ∈ 𝜋𝑅−𝑆 𝑡 ∧ ∀𝑢∈𝑠 𝑡𝑢 ∈ 𝑟
Onde 𝑡𝑢 representa a concatenação dos tuplos 𝑡 e 𝑢 resultando num único
tuplo
Operação de Divisão - Exemplo
• Relações r e s
• 𝑟 ÷ 𝑠 =?
A B
a 1
a 2
a 3
b 1
c 1
d 1
d 3
d 4
e 6
e 1
b 2
B
1
2
r = s =
Operação de Divisão - Exemplo
• Relações r e s
• 𝑟 ÷ 𝑠 =?
A B
a 1
a 2
a 3
b 1
c 1
d 1
d 3
d 4
e 6
e 1
b 2
A
a
b
B
1
2
r = s =
Operação de Divisão – Exemplo2
• Relações r e s
• 𝑟 ⋈ 𝑠 =?
A B C D E
a x a x 1
a x c x 1
a x c y 1
b x c x 1
b x c y 3
c x c x 1
c x c y 1
c x b y 1
D E
x 1
y 1
r = s =
Operação de Divisão – Exemplo2
• Relações r e s
• 𝑟 ⋈ 𝑠 =?
A B C D E
a x a x 1
a x c x 1
a x c y 1
b x c x 1
b x c y 3
c x c x 1
c x c y 1
c x b y 1
A B C
a x c
c x c
D E
x 1
y 1
r = s =
Operação de Atribuição
• A operação de atribuição (⟵) oferece uma forma conveniente de
expressar queries complexas.
• Escreve-se uma query como um programa sequencial composto por
• Um conjunto de atribuições
• Seguidos uma expressão cujo valor é o resultado da query
• A atribuição é sempre feita para uma variável de relação temporária
• Exemplo: podemos escrever 𝑟 ÷ 𝑠 como:
• 𝑡𝑒𝑚𝑝1 ⟵ 𝜋𝑅−𝑆 𝑟
• 𝑡𝑒𝑚𝑝2 ⟵ 𝜋𝑅−𝑆 𝑡𝑒𝑚𝑝1 × 𝑆 − 𝜋𝑅−𝑆,𝑆 𝑟
• 𝑟𝑒𝑠𝑢𝑙𝑡 = 𝑡𝑒𝑚𝑝1 − 𝑡𝑒𝑚𝑝2
• O resultado à direita de ⟵ é atribuído à variável de relação à esquerda de
⟵
Operações Estendidas
• Definimos operações adicionais que acrescentam poder expressivo à
algebra relacional e permitem definir operações como:
• Projeção generalizada
• Funções de agregação
Projeção Generalizada
• Estende a operação de projeção permitindo a utilização de
expressões aritméticas na lista de projeções
𝜋𝐹1,𝐹2,…,𝐹𝑛
𝐸
• 𝐸é qualquer expreção de álgebra relacional
• Cada 𝐹1, 𝐹2, … , 𝐹𝑛são expressões aritméticas envolvendo constantes e
atributos do esquema 𝐸
• Exemplo: Dada a relação
Credito_info(nome_cliente, limite, saldo_credito)
Descubra quanto pode ainda gastar cada pessoa.
𝜋𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒,𝑙𝑖𝑚𝑖𝑡𝑒−𝑠𝑎𝑙𝑑𝑜_𝑐𝑟𝑒𝑑𝑖𝑡𝑜(𝑐𝑟𝑒𝑑𝑖𝑡𝑜_𝑖𝑛𝑓𝑜)
Projeção Generalizada - Exemplo
• Relação r
• 𝜋𝐴,𝐶∗10 𝑟 =?
A B C
a 10 1
a 20 1
b 30 1
b 40 2
Projeção Generalizada - Exemplo
• Relação r
• 𝜋𝐴,𝐶∗10 𝑟 =?
A B C
a 10 1
a 20 1
b 30 1
b 40 2
A C*10
a 10
b 10
b 20
Funções de Agregação
• Funções de agregação aplicam-se a uma coleção de valores e
devolvem um único valor como resultado:
• avg: média dos valores
• min: mínimo dos valores
• max: máximo dos valores
• sum: soma dos valores
• count: número de valores
Operação de Agregação
• Operação de agregação em álgebra relacional
𝐺1,𝐺2,…,𝐺𝑛
𝒢𝐹1 𝐴1
,𝐹2 𝐴2
,…,𝐹𝑛 𝐴𝑛
𝐸
• 𝐸 é qualquer expressão de álgebra relacional
• 𝐺1, 𝐺2, … , 𝐺𝑛 é uma lista de atributos nas quais se quer agrupar (pode ser
vazio)
• Cada 𝐹𝑖 representa uma função de agregação
• Cada 𝐴𝑖 representa um nome de atributo
Operação de Agregação - Exemplo
• Relação r
• 𝒢𝑠𝑢𝑚 𝐶 𝑟 =?
A B C
a a 7
a b 7
b b 3
b b 10
Operação de Agregação - Exemplo
• Relação r
• 𝒢𝑠𝑢𝑚 𝐶 𝑟 =?
A B C
a a 7
a b 7
b b 3
b b 10
sum(C)
27
Operação de Agregação – Exemplo2
• Relação conta agrupado por agencia_nome
• 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚(𝑠𝑎𝑙𝑑𝑜) 𝑐𝑜𝑛𝑡𝑎
agencia_nome conta_numero saldo
Lumiar A-102 400
Lumiar A-201 900
Amoreiras A-217 750
Amoreiras A-215 750
Campolide A-222 700
Operação de Agregação – Exemplo2
• Relação conta agrupado por agencia_nome
• 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚(𝑠𝑎𝑙𝑑𝑜) 𝑐𝑜𝑛𝑡𝑎
agencia_nome conta_numero saldo
Lumiar A-102 400
Lumiar A-201 900
Amoreiras A-217 750
Amoreiras A-215 750
Campolide A-222 700
agencia_nome sum(saldo)
Lumiar 1300
Amoreiras 1500
Campolide 700
Operação de Agregação (cont.)
• O resultado da agregação não tem nome
• Pode-se utilizar a operação de renomeação para atribuir um nome
• Por conveniência, é permitida a renomeação como parte da operação de
agregação
𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚 𝑠𝑎𝑙𝑑𝑜 𝑎𝑠 𝑠𝑜𝑚𝑎_𝑠𝑎𝑙𝑑𝑜 𝑐𝑜𝑛𝑡𝑎
agencia_nome soma_saldo
Lumiar 1300
Amoreiras 1500
Campolide 700

Mais conteúdo relacionado

Mais procurados

Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
Armando Daniel
 
Diagramas de casos de uso
Diagramas de casos de usoDiagramas de casos de uso
Diagramas de casos de uso
Sergio Chaves
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
Armando Daniel
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação Dinâmica
Eduardo Oliveira
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
Adriano Teixeira de Souza
 

Mais procurados (20)

AOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de UsoAOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de Uso
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Diagramas de casos de uso
Diagramas de casos de usoDiagramas de casos de uso
Diagramas de casos de uso
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
02 curso poo Clase - Objeto
02 curso poo Clase - Objeto02 curso poo Clase - Objeto
02 curso poo Clase - Objeto
 
PHP - PDO Objects
PHP - PDO ObjectsPHP - PDO Objects
PHP - PDO Objects
 
Análise essencial
Análise essencialAnálise essencial
Análise essencial
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação Dinâmica
 
Relaçõese ordem parcial cor
Relaçõese ordem parcial corRelaçõese ordem parcial cor
Relaçõese ordem parcial cor
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Uml
UmlUml
Uml
 
Modelo caso uso
Modelo caso usoModelo caso uso
Modelo caso uso
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 

Semelhante a Base de Dados - Álgebra Relacional

Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticos
Tácito Graça
 
Cópia de Aula 01-Operações Fundamentais.pptx
Cópia de Aula 01-Operações Fundamentais.pptxCópia de Aula 01-Operações Fundamentais.pptx
Cópia de Aula 01-Operações Fundamentais.pptx
KlebyanoCosta2
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
gjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
Leandro Lopes
 

Semelhante a Base de Dados - Álgebra Relacional (20)

Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticos
 
Funcoes_GAMA_2020_1-2.pdf
Funcoes_GAMA_2020_1-2.pdfFuncoes_GAMA_2020_1-2.pdf
Funcoes_GAMA_2020_1-2.pdf
 
2016 2 oficina matematica - minimos quadrados
2016 2 oficina matematica - minimos quadrados2016 2 oficina matematica - minimos quadrados
2016 2 oficina matematica - minimos quadrados
 
PowerPoint Presentation - Neto Oliveira.pdf
PowerPoint Presentation - Neto Oliveira.pdfPowerPoint Presentation - Neto Oliveira.pdf
PowerPoint Presentation - Neto Oliveira.pdf
 
AULA_01.pptx
AULA_01.pptxAULA_01.pptx
AULA_01.pptx
 
Cópia de Aula 01-Operações Fundamentais.pptx
Cópia de Aula 01-Operações Fundamentais.pptxCópia de Aula 01-Operações Fundamentais.pptx
Cópia de Aula 01-Operações Fundamentais.pptx
 
Metódos de Pesquisa em C
Metódos de Pesquisa em CMetódos de Pesquisa em C
Metódos de Pesquisa em C
 
Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04
 
www.CentroApoio.com - Matemática - Logaritmo
www.CentroApoio.com - Matemática - Logaritmowww.CentroApoio.com - Matemática - Logaritmo
www.CentroApoio.com - Matemática - Logaritmo
 
aula2_algebra_calculo.pdf
aula2_algebra_calculo.pdfaula2_algebra_calculo.pdf
aula2_algebra_calculo.pdf
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
MAT 1ª Série 3º Bimestre Professor.pdf
MAT 1ª Série 3º Bimestre Professor.pdfMAT 1ª Série 3º Bimestre Professor.pdf
MAT 1ª Série 3º Bimestre Professor.pdf
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Álgebra Linear e SQL Banco de Dados.pdf
Álgebra Linear e  SQL Banco de Dados.pdfÁlgebra Linear e  SQL Banco de Dados.pdf
Álgebra Linear e SQL Banco de Dados.pdf
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra Relacional
 
Aula03
Aula03Aula03
Aula03
 
MAT 1ª Série 3º BimestreEstudante.pdf
MAT 1ª Série 3º BimestreEstudante.pdfMAT 1ª Série 3º BimestreEstudante.pdf
MAT 1ª Série 3º BimestreEstudante.pdf
 
Regressão Múltipla
Regressão MúltiplaRegressão Múltipla
Regressão Múltipla
 
Matemática aplicada aula01
Matemática aplicada aula01Matemática aplicada aula01
Matemática aplicada aula01
 

Mais de Mariana Hiyori

Mais de Mariana Hiyori (20)

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus Olímpico
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema Relacional
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - Introdução
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade Curricular
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - Resumo
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do Convento
 
SQL - Operações Relacionais
SQL - Operações RelacionaisSQL - Operações Relacionais
SQL - Operações Relacionais
 

Último

Último (20)

Slides Lição 8, CPAD, Confessando e Abandonando o Pecado.pptx
Slides Lição 8, CPAD, Confessando e Abandonando o Pecado.pptxSlides Lição 8, CPAD, Confessando e Abandonando o Pecado.pptx
Slides Lição 8, CPAD, Confessando e Abandonando o Pecado.pptx
 
Nós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
Nós Propomos! Canil/Gatil na Sertã - Amigos dos AnimaisNós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
Nós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
 
O que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditivaO que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditiva
 
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
 
Campanha 18 de. Maio laranja dds.pptx
Campanha 18 de.    Maio laranja dds.pptxCampanha 18 de.    Maio laranja dds.pptx
Campanha 18 de. Maio laranja dds.pptx
 
"Nós Propomos! Mobilidade sustentável na Sertã"
"Nós Propomos! Mobilidade sustentável na Sertã""Nós Propomos! Mobilidade sustentável na Sertã"
"Nós Propomos! Mobilidade sustentável na Sertã"
 
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdfAs Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
 
Atividade do poema sobre mãe de mário quintana.pdf
Atividade do poema sobre mãe de mário quintana.pdfAtividade do poema sobre mãe de mário quintana.pdf
Atividade do poema sobre mãe de mário quintana.pdf
 
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
 
análise obra Nós matamos o cão Tinhoso.pdf
análise obra Nós matamos o cão Tinhoso.pdfanálise obra Nós matamos o cão Tinhoso.pdf
análise obra Nós matamos o cão Tinhoso.pdf
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
Enunciado_da_Avaliacao_1__Sistemas_de_Informacoes_Gerenciais_(IL60106).pdf
Enunciado_da_Avaliacao_1__Sistemas_de_Informacoes_Gerenciais_(IL60106).pdfEnunciado_da_Avaliacao_1__Sistemas_de_Informacoes_Gerenciais_(IL60106).pdf
Enunciado_da_Avaliacao_1__Sistemas_de_Informacoes_Gerenciais_(IL60106).pdf
 
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptxSão Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
 
Diálogo Crátilo de Platão sócrates daspdf
Diálogo Crátilo de Platão sócrates daspdfDiálogo Crátilo de Platão sócrates daspdf
Diálogo Crátilo de Platão sócrates daspdf
 
Nós Propomos! Infraestruturas em Proença-a-Nova
Nós Propomos! Infraestruturas em Proença-a-NovaNós Propomos! Infraestruturas em Proença-a-Nova
Nós Propomos! Infraestruturas em Proença-a-Nova
 
Aula 5 - Fluxo de matéria e energia nos ecossistemas.ppt
Aula 5 - Fluxo de matéria e energia nos ecossistemas.pptAula 5 - Fluxo de matéria e energia nos ecossistemas.ppt
Aula 5 - Fluxo de matéria e energia nos ecossistemas.ppt
 
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
 
PLANO DE ESTUDO TUTORADO COMPLEMENTAR 1 ANO 1 BIMESTRE.pdf
PLANO DE ESTUDO TUTORADO COMPLEMENTAR 1 ANO 1 BIMESTRE.pdfPLANO DE ESTUDO TUTORADO COMPLEMENTAR 1 ANO 1 BIMESTRE.pdf
PLANO DE ESTUDO TUTORADO COMPLEMENTAR 1 ANO 1 BIMESTRE.pdf
 
Enunciado_da_Avaliacao_1__Sociedade_Cultura_e_Contemporaneidade_(ED70200).pdf
Enunciado_da_Avaliacao_1__Sociedade_Cultura_e_Contemporaneidade_(ED70200).pdfEnunciado_da_Avaliacao_1__Sociedade_Cultura_e_Contemporaneidade_(ED70200).pdf
Enunciado_da_Avaliacao_1__Sociedade_Cultura_e_Contemporaneidade_(ED70200).pdf
 
APH- Avaliação de cena , analise geral do ambiente e paciente.
APH- Avaliação de cena , analise geral do ambiente e paciente.APH- Avaliação de cena , analise geral do ambiente e paciente.
APH- Avaliação de cena , analise geral do ambiente e paciente.
 

Base de Dados - Álgebra Relacional

  • 1. Base de Dados Álgebra Relacional 2018/2019
  • 2. Sumário • Álgebra Relacional • Operações Adicionais de Álgebra Relacional • Extensão às Operações da Álgebra Relacional • Exercícios
  • 3. Linguagens de Consulta • Linguagem com que um utilizador pede informação a um BD • Categorias de linguagens • Procedimental • Não-procedimental (ou declarativa) • Linguagens formais: • Álgebra relacional • Cálculo relacional de tuplos • Cálculo relacional de domínios • Linguagens formais são a base teórica das linguagens de consulta
  • 4. Álgebra Relacional • Linguagem procedimental • Seis operadores básicos: • Seleção: 𝜎 • Projeção: 𝜋 • União: ∪ • Diferença entre conjuntos: − • Produto cartesiano: × • Renomeação: 𝜌 • Os operadores aceitam uma ou duas relações como entradas e produzem uma nova relação como resultado
  • 5. Operação de Seleção • Utilizada para selecionar um conjunto de tuplos de uma relação • Notação: 𝜎𝑝 𝑟 • P é designado predicado de seleção • Definido como: 𝜎p(r) = {t|t ∈ r and p(t)} • Onde p é uma fórmula de cálculo proposicional composta por termos ligados por ⋀ (e), ⋁ (ou) e (não) • Cada termo é uma expressão que pode conter: • Atributos da relação • Constantes • Operadores relacionais ≠, =, >, ≥, <, ≤ • Exemplo: 𝜎𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒="Campolide" (𝑐𝑜𝑛𝑡𝑎)
  • 6. Operação de Seleção - Exemplo • Relação r • 𝜎𝐴=𝐵∧𝐷>5 𝑟 =? A B C D a a 1 7 a b 5 7 b b 12 3 b b 23 10
  • 7. Operação de Seleção - Exemplo • Relação r • 𝜎𝐴=𝐵∧𝐷>5 𝑟 =? A B C D a a 1 7 a b 5 7 b b 12 3 b b 23 10 A B C D a a 1 7 b b 23 10
  • 8. Operação de Projeção • Notação: 𝜋𝐴1,𝐴2,…,𝐴𝑘 (𝑟) • Onde A1, A2 são nomes de atributos e r é o nome da relação • O resultado é definido como a relação de k colunas obtidas suprimindo as colunas que não estão listadas • Linhas duplicadas são removidas do resultado (uma vez que as relações são conjuntos) • Exemplo: 𝜋𝑛𝑢𝑚𝑒𝑟𝑜_𝑐𝑜𝑛𝑡𝑎,𝑠𝑎𝑙𝑑𝑜(𝑐𝑜𝑛𝑡𝑎)
  • 9. Operação de Projeção - Exemplo • Relação r • 𝜋𝐴,𝐶 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2
  • 10. Operação de Projeção - Exemplo • Relação r • 𝜋𝐴,𝐶 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2 A C a 1 a 1 b 1 b 2
  • 11. Operação de Projeção - Exemplo • Relação r • 𝜋𝐴,𝐶 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2 A C a 1 a 1 b 1 b 2 A C a 1 b 1 b 2 =
  • 12. Operação de União • Notação: 𝑟 ∪ 𝑠 • Definido como: 𝑟 ∪ 𝑠 = {t|t ∈ r or t ∈ s} • Para que 𝑟 ∪ 𝑠 seja válido: 1. r e s devem ter mesma aridade (igual número de atributos); 2. Os atributos têm de ser compatíveis (valores de tipos compatíveis); • Exemplo: obter lista de todos os clientes que sejam titulares de uma conta ou de um empréstimo 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑡𝑖𝑡𝑢𝑙𝑎𝑟) ∪ 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
  • 13. Operação de União - Exemplo • Relações r e s • 𝑟 ∪ 𝑠 =? A B a 1 a 2 b 1 A B a 2 b 3 r = s =
  • 14. Operação de União - Exemplo • Relações r e s • 𝑟 ∪ 𝑠 =? A B a 1 a 2 b 1 A B a 1 a 2 b 1 b 3 A B a 2 b 3 r = s =
  • 15. Operação de Diferença • Notação: 𝑟 − 𝑠 • Definido como: 𝑟 − 𝑠 = {t|t ∈ r and t ∉ s} • Para que 𝑟 − 𝑠 seja válido: 1. r e s devem ter mesma aridade (igual número de atributos); 2. Os atributos têm de ser compatíveis (valores de tipos compatíveis); • Exemplo: obter lista de todos os clientes que sejam titulares de uma conta mas não de um empréstimo 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 − 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
  • 16. Operação de Diferença - Exemplo • Relações r e s • 𝑟 − 𝑠 =? A B a 1 a 2 b 1 A B a 2 b 3 r = s =
  • 17. Operação de Diferença - Exemplo • Relações r e s • 𝑟 − 𝑠 =? A B a 1 a 2 b 1 A B a 1 b 1 A B a 2 b 3 r = s =
  • 18. Operação de Produto Cartesiano • Notação: 𝑟 × 𝑠 • Definido como: 𝑟 × 𝑠 = {tq|t ∈ r and q ∈ s} • Para que 𝑟 × 𝑠 seja válido: 1. r e s devem ser disjuntos • Se os artibutos s(R) e s(S) não forem disjuntos então é necessária a aplicação de renomeação
  • 19. Operação de Produto Cartesiano - Exemplo • Relações r e s • 𝑟 × 𝑠 =? A B a 1 b 2 C D E a 10 x b 10 x b 20 y c 10 y r = s =
  • 20. Operação de Produto Cartesiano - Exemplo • Relações r e s • 𝑟 × 𝑠 =? A B a 1 b 2 A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y C D E a 10 x b 10 x b 20 y c 10 y r = s =
  • 21. Operação de Renomeação • Permite nomear, e fazer referência a, resultados de expressões de álgebra relacional • Permite fazer referência a uma relação utilizando vários nomes • Exemplo: ρ𝑋 𝐸 retorna a expressão E com o nome X • Se uma expressão de álgebra relacional tem aridade n, então ρ𝑋(𝐴1,𝐴2,…,𝐴𝑛) 𝐸 • Retorna o valor da expressão E sob o nome X, e com os atributos renomeados para A1, A2, …, An • ρ𝑡𝑖𝑡 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ⟶ 𝑡𝑖𝑡(𝑐𝑙𝑖𝑒𝑛𝑡𝑒_𝑛𝑜𝑚𝑒, 𝑐𝑜𝑛𝑡𝑎_𝑛𝑢𝑚𝑒𝑟𝑜) • ρ𝑡𝑖𝑡(𝑐𝑙𝑛,𝑐𝑜𝑛) 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ⟶ 𝑡𝑖𝑡(𝑐𝑙𝑛 𝑐𝑜𝑛)
  • 22. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠)
  • 23. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y 1) 𝑟 × 𝑠
  • 24. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y 1) 𝑟 × 𝑠 2)𝜎𝐴=𝐶
  • 25. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo:𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y 1) 𝑟 × 𝑠 2)𝜎𝐴=𝐶 3)𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x b 2 b 10 x b 2 b 20 y
  • 26. Operações Adicionais • São operações que não aumentam o poder expressivo da álgebra relacional mas que simplificam consultas habituais • Intersecção de conjuntos: ∩ • Junção natural: ⋈ • Divisão: ÷ • Atribuição: ⟵
  • 27. Operação de Intersecção de Conjuntos • Notação: 𝑟 ∩ 𝑠 • Definido como: 𝑟 ∩ 𝑠 = {t|t ∈ r and t ∈ s} • Nota: 𝑟 ∩ 𝑠 = 𝑟 − (𝑟 − 𝑠) • Para que 𝑟 ∩ 𝑠 seja válido: 1. r e s devem ter mesma aridade (igual número de atributos); 2. Os atributos têm de ser compatíveis (valores de tipos compatíveis); • Exemplo: obter lista de todos os clientes que sejam simultaneamente titulares de uma conta e de um empréstimo 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ∩ 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
  • 28. Operação de Intersecção - Exemplo • Relações r e s • 𝑟 ∩ 𝑠 =? A B a 1 a 2 b 1 A B a 2 b 3 r = s =
  • 29. Operação de Intersecção - Exemplo • Relações r e s • 𝑟 ∩ 𝑠 =? A B a 1 a 2 b 1 A B a 2 A B a 2 b 3 r = s =
  • 30. Operação de Junção Natural • Notação: 𝑟 ⋈ 𝑠 • Sejam r e s relações nos esquemas R e S respetivamente. Então 𝑟 ⋈ 𝑠 é uma relação no esquema 𝑅 ∪ 𝑆 obtida: • Considerando cada par de tuplos tr de r e ts de s • Se tr e ts têm o mesmo valor em cada um dos atributos em 𝑅 ∪ 𝑆, adicionar o tuplo t ao resultado tal que: • t tem o mesmo valor que tr em r; • t tem o mesmo valor que ts em s. • Exemplo: • 𝑅 = 𝐴, 𝐵, 𝐶, 𝐷 , 𝑆 = 𝐸, 𝐵, 𝐷 • Esquema resultante = (𝐴, 𝐵, 𝐶, 𝐷, 𝐸) • 𝑟 ⋈ 𝑠 = 𝜋𝑟.𝐴,𝑟.𝐵,𝑟.𝐶,𝑟.𝐷,𝑠.𝐸(𝜎𝑟.𝐵=𝑠.𝐵∧𝑟.𝐷=𝑠.𝐷(𝑟 × 𝑠))
  • 31. Operação de Junção Natural - Exemplo • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D a 1 a x b 2 c x c 4 b y a 1 c x d 2 b y B D E 1 x a 3 x b 1 x c 2 y d 3 y e r = s =
  • 32. Operação de Junção Natural - Exemplo • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D a 1 a x b 2 c x c 4 b y a 1 c x d 2 b y A B C D E a 1 a x a a 1 a x c a 1 c x a a 1 c x c d 2 b y d B D E 1 x a 3 x b 1 x c 2 y d 3 y e r = s =
  • 33. Operação de Divisão • Notação: 𝑟 ÷ 𝑠 • Sejam r e s relações nos esquemas R e S respetivamente onde: • 𝑅 = (𝐴1, … , 𝐴𝑚, 𝐵1, … , 𝐵𝑛) • 𝑆 = (𝐵1, … , 𝐵𝑛) Então, 𝑟 ÷ 𝑠 é uma relação no esquema 𝑅 − 𝑆, tal que: 𝑟 ÷ 𝑠 = 𝑡 𝑡 ∈ 𝜋𝑅−𝑆 𝑡 ∧ ∀𝑢∈𝑠 𝑡𝑢 ∈ 𝑟 Onde 𝑡𝑢 representa a concatenação dos tuplos 𝑡 e 𝑢 resultando num único tuplo
  • 34. Operação de Divisão - Exemplo • Relações r e s • 𝑟 ÷ 𝑠 =? A B a 1 a 2 a 3 b 1 c 1 d 1 d 3 d 4 e 6 e 1 b 2 B 1 2 r = s =
  • 35. Operação de Divisão - Exemplo • Relações r e s • 𝑟 ÷ 𝑠 =? A B a 1 a 2 a 3 b 1 c 1 d 1 d 3 d 4 e 6 e 1 b 2 A a b B 1 2 r = s =
  • 36. Operação de Divisão – Exemplo2 • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D E a x a x 1 a x c x 1 a x c y 1 b x c x 1 b x c y 3 c x c x 1 c x c y 1 c x b y 1 D E x 1 y 1 r = s =
  • 37. Operação de Divisão – Exemplo2 • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D E a x a x 1 a x c x 1 a x c y 1 b x c x 1 b x c y 3 c x c x 1 c x c y 1 c x b y 1 A B C a x c c x c D E x 1 y 1 r = s =
  • 38. Operação de Atribuição • A operação de atribuição (⟵) oferece uma forma conveniente de expressar queries complexas. • Escreve-se uma query como um programa sequencial composto por • Um conjunto de atribuições • Seguidos uma expressão cujo valor é o resultado da query • A atribuição é sempre feita para uma variável de relação temporária • Exemplo: podemos escrever 𝑟 ÷ 𝑠 como: • 𝑡𝑒𝑚𝑝1 ⟵ 𝜋𝑅−𝑆 𝑟 • 𝑡𝑒𝑚𝑝2 ⟵ 𝜋𝑅−𝑆 𝑡𝑒𝑚𝑝1 × 𝑆 − 𝜋𝑅−𝑆,𝑆 𝑟 • 𝑟𝑒𝑠𝑢𝑙𝑡 = 𝑡𝑒𝑚𝑝1 − 𝑡𝑒𝑚𝑝2 • O resultado à direita de ⟵ é atribuído à variável de relação à esquerda de ⟵
  • 39. Operações Estendidas • Definimos operações adicionais que acrescentam poder expressivo à algebra relacional e permitem definir operações como: • Projeção generalizada • Funções de agregação
  • 40. Projeção Generalizada • Estende a operação de projeção permitindo a utilização de expressões aritméticas na lista de projeções 𝜋𝐹1,𝐹2,…,𝐹𝑛 𝐸 • 𝐸é qualquer expreção de álgebra relacional • Cada 𝐹1, 𝐹2, … , 𝐹𝑛são expressões aritméticas envolvendo constantes e atributos do esquema 𝐸 • Exemplo: Dada a relação Credito_info(nome_cliente, limite, saldo_credito) Descubra quanto pode ainda gastar cada pessoa. 𝜋𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒,𝑙𝑖𝑚𝑖𝑡𝑒−𝑠𝑎𝑙𝑑𝑜_𝑐𝑟𝑒𝑑𝑖𝑡𝑜(𝑐𝑟𝑒𝑑𝑖𝑡𝑜_𝑖𝑛𝑓𝑜)
  • 41. Projeção Generalizada - Exemplo • Relação r • 𝜋𝐴,𝐶∗10 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2
  • 42. Projeção Generalizada - Exemplo • Relação r • 𝜋𝐴,𝐶∗10 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2 A C*10 a 10 b 10 b 20
  • 43. Funções de Agregação • Funções de agregação aplicam-se a uma coleção de valores e devolvem um único valor como resultado: • avg: média dos valores • min: mínimo dos valores • max: máximo dos valores • sum: soma dos valores • count: número de valores
  • 44. Operação de Agregação • Operação de agregação em álgebra relacional 𝐺1,𝐺2,…,𝐺𝑛 𝒢𝐹1 𝐴1 ,𝐹2 𝐴2 ,…,𝐹𝑛 𝐴𝑛 𝐸 • 𝐸 é qualquer expressão de álgebra relacional • 𝐺1, 𝐺2, … , 𝐺𝑛 é uma lista de atributos nas quais se quer agrupar (pode ser vazio) • Cada 𝐹𝑖 representa uma função de agregação • Cada 𝐴𝑖 representa um nome de atributo
  • 45. Operação de Agregação - Exemplo • Relação r • 𝒢𝑠𝑢𝑚 𝐶 𝑟 =? A B C a a 7 a b 7 b b 3 b b 10
  • 46. Operação de Agregação - Exemplo • Relação r • 𝒢𝑠𝑢𝑚 𝐶 𝑟 =? A B C a a 7 a b 7 b b 3 b b 10 sum(C) 27
  • 47. Operação de Agregação – Exemplo2 • Relação conta agrupado por agencia_nome • 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚(𝑠𝑎𝑙𝑑𝑜) 𝑐𝑜𝑛𝑡𝑎 agencia_nome conta_numero saldo Lumiar A-102 400 Lumiar A-201 900 Amoreiras A-217 750 Amoreiras A-215 750 Campolide A-222 700
  • 48. Operação de Agregação – Exemplo2 • Relação conta agrupado por agencia_nome • 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚(𝑠𝑎𝑙𝑑𝑜) 𝑐𝑜𝑛𝑡𝑎 agencia_nome conta_numero saldo Lumiar A-102 400 Lumiar A-201 900 Amoreiras A-217 750 Amoreiras A-215 750 Campolide A-222 700 agencia_nome sum(saldo) Lumiar 1300 Amoreiras 1500 Campolide 700
  • 49. Operação de Agregação (cont.) • O resultado da agregação não tem nome • Pode-se utilizar a operação de renomeação para atribuir um nome • Por conveniência, é permitida a renomeação como parte da operação de agregação 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚 𝑠𝑎𝑙𝑑𝑜 𝑎𝑠 𝑠𝑜𝑚𝑎_𝑠𝑎𝑙𝑑𝑜 𝑐𝑜𝑛𝑡𝑎 agencia_nome soma_saldo Lumiar 1300 Amoreiras 1500 Campolide 700