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 tuplosde uma relação
•Notação: ??????
��
•P é designado predicado de seleção
•Definido como: ??????
p(r) = {t|t∈r andp(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çãode 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çãode 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çãode Projeção
•Notação: �
�
1,�
2,…,�
??????
(�)
•OndeA1, A2 sãonomesde atributose r é o nomeda relação
•O resultadoé definidocomoa relaçãode k colunasobtidas
suprimindoas colunasque nãoestãolistadas
•Linhasduplicadassãoremovidasdo resultado(umavezque as
relaçõessãoconjuntos)
•Exemplo: �
������_����??????,�??????���(����??????)
Operaçãode Projeção-Exemplo
•Relação r
•�
�,��=?
A B C
a 10 1
a 20 1
b 30 1
b 40 2
Operaçãode 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çãode 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çãode União
•Notação:�∪�
•Definido como: �∪�= {t|t∈r or t ∈s}
•Para que �∪�sejaválido:
1.r e s devemtermesmaaridade(igualnúmerode atributos);
2.Osatributostêmde ser compatíveis(valoresde tiposcompatíveis);
•Exemplo: obterlistade todososclientesque sejamtitularesde uma
contaoude um empréstimo
??????
����_��??????����(�??????���??????�)∪??????
����_��??????����(�������)
Operaçãode União-Exemplo
•Relaçõesr e s
•�∪�=?
A B
a 1
a 2
b 1
A B
a 2
b 3
r =
s =
Operaçãode União-Exemplo
•Relaçõesr 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çãode Diferença
•Notação:�−�
•Definido como: �−�= {t|t∈r and t ∉s}
•Para que �−�sejaválido:
1.r e s devemtermesmaaridade(igualnúmerode atributos);
2.Osatributostêmde ser compatíveis(valoresde tiposcompatíveis);
•Exemplo: obterlistade todososclientesque sejamtitularesde uma
contamas nãode um empréstimo
??????
����_��??????�����??????���??????�−??????
����_��??????����(�������)
Operaçãode 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çãode 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çãode ProdutoCartesiano
•Notação:�×�
•Definido como: �×�= {tq|t∈r and q ∈s}
•Para que �×�sejaválido:
1.r e s devemser disjuntos
•Se osartibutoss(R) e s(S) nãoforemdisjuntosentãoé necessáriaa
aplicaçãode renomeação
Operaçãode ProdutoCartesiano-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çãode ProdutoCartesiano-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çãode Renomeação
•Permite nomear, e fazerreferênciaa, resultadosde expressõesde álgebra
relacional
•Permitefazerreferênciaa umarelaçãoutilizandováriosnomes
•Exemplo: ρ
??????�retornaa expressãoE com o nomeX
•Se umaexpressãode álgebrarelacionaltemaridaden, então
ρ
??????(�1,�2,…,�??????)�
•Retornao valor da expressãoE sob o nomeX, e com osatributos
renomeadospara A
1, A
2, …, A
n
•ρ
�??????��??????���??????�⟶�??????�(��??????����_����,����??????_������)
•ρ
�??????�(���,���)�??????���??????�⟶�??????�(������)
Composiçãode Operações
•Pode-se construirexpressõescompostaspor múltiplasoperaçõ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çãode Operações
•Pode-se construirexpressõescompostaspor múltiplasoperaçõ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çãode Intersecçãode Conjuntos
•Notação:�∩�
•Definido como: �∩�= {t|t∈r and t ∈s}
•Nota: �∩�=�−(�−�)
•Para que �∩�sejaválido:
1.r e s devemtermesmaaridade(igualnúmerode atributos);
2.Osatributostêmde ser compatíveis(valoresde tiposcompatíveis);
•Exemplo: obterlistade todososclientesque sejamsimultaneamente
titularesde umacontae 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 tuplost
rde r e t
sde s
•Se t
re t
stêm o mesmo valor em cada um dos atributos em �∪�, adicionaro tuplot
aoresultadotalque:
•t tem o mesmo valor que t
rem r;
•t tem o mesmo valor que t
sem 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, �÷�é umarelaçãono esquema�−�,talque:
�÷�=��∈�
�−��∧∀
�∈���∈�
Onde ��representa a concatenação dos tuplos�e �resultandonum ú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
•�⋈�=?
ABCDE
axax1
axcx1
axcy1
bxcx1
bxcy3
cxcx1
cxcy1
cxby1
D E
x 1
y 1
r = s =
Operação de Divisão –Exemplo2
•Relações r e s
•�⋈�=?
ABCDE
axax1
axcx1
axcy1
bxcx1
bxcy3
cxcx1
cxcy1
cxby1
ABC
axc
cxc
D E
x 1
y 1
r = s =
Operaçãode Atribuição
•A operaçãode atribuição(⟵) ofereceumaforma convenientede
expressarqueries complexas.
•Escreve-se umaquery comoum programasequencialcompostopor
•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ávelde relaçãoà esquerdade
⟵
OperaçõesEstendidas
•Definimos operações adicionais que acrescentam poder expressivo à
algebrarelacional 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çãode á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�=?
ABC
a101
a201
b301
b402
AC*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
•??????
�����=?
ABC
aa7
ab7
bb3
bb10
Operação de Agregação -Exemplo
•Relação r
•??????
�����=?
ABC
aa7
ab7
bb3
bb10
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 (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