Base de Dados - Álgebra Relacional

nitrocell 130 views 49 slides Nov 22, 2022
Slide 1
Slide 1 of 49
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49

About This Presentation

Base de Dados - Álgebra Relacional


Slide Content

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 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: ??????
????????????&#3627408466;&#3627408475;&#3627408464;????????????_&#3627408475;&#3627408476;&#3627408474;&#3627408466;="Campolide"
(&#3627408464;&#3627408476;&#3627408475;&#3627408481;??????)

Operaçãode Seleção-Exemplo
•Relação r
•??????
&#3627408436;=&#3627408437;∧&#3627408439;>5&#3627408479;=?
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
•??????
&#3627408436;=&#3627408437;∧&#3627408439;>5&#3627408479;=?
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: &#3627409163;
&#3627408436;
1,&#3627408436;
2,…,&#3627408436;
??????
(&#3627408479;)
•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: &#3627409163;
&#3627408475;&#3627408482;&#3627408474;&#3627408466;&#3627408479;&#3627408476;_&#3627408464;&#3627408476;&#3627408475;&#3627408481;??????,&#3627408480;??????&#3627408473;&#3627408465;&#3627408476;(&#3627408464;&#3627408476;&#3627408475;&#3627408481;??????)

Operaçãode Projeção-Exemplo
•Relação r
•&#3627409163;
&#3627408436;,&#3627408438;&#3627408479;=?
A B C
a 10 1
a 20 1
b 30 1
b 40 2

Operaçãode Projeção-Exemplo
•Relação r
•&#3627409163;
&#3627408436;,&#3627408438;&#3627408479;=?
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
•&#3627409163;
&#3627408436;,&#3627408438;&#3627408479;=?
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:&#3627408479;∪&#3627408480;
•Definido como: &#3627408479;∪&#3627408480;= {t|t∈r or t ∈s}
•Para que &#3627408479;∪&#3627408480;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
??????
&#3627408475;&#3627408476;&#3627408474;&#3627408466;_&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;(&#3627408481;??????&#3627408481;&#3627408482;&#3627408473;??????&#3627408479;)∪??????
&#3627408475;&#3627408476;&#3627408474;&#3627408466;_&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;(&#3627408465;&#3627408466;&#3627408483;&#3627408466;&#3627408465;&#3627408476;&#3627408479;)

Operaçãode União-Exemplo
•Relaçõesr e s
•&#3627408479;∪&#3627408480;=?
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
•&#3627408479;∪&#3627408480;=?
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:&#3627408479;−&#3627408480;
•Definido como: &#3627408479;−&#3627408480;= {t|t∈r and t ∉s}
•Para que &#3627408479;−&#3627408480;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
??????
&#3627408475;&#3627408476;&#3627408474;&#3627408466;_&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;&#3627408481;??????&#3627408481;&#3627408482;&#3627408473;??????&#3627408479;−??????
&#3627408475;&#3627408476;&#3627408474;&#3627408466;_&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;(&#3627408465;&#3627408466;&#3627408483;&#3627408466;&#3627408465;&#3627408476;&#3627408479;)

Operaçãode Diferença-Exemplo
•Relações r e s
•&#3627408479;−&#3627408480;=?
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
•&#3627408479;−&#3627408480;=?
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:&#3627408479;×&#3627408480;
•Definido como: &#3627408479;×&#3627408480;= {tq|t∈r and q ∈s}
•Para que &#3627408479;×&#3627408480;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
•&#3627408479;×&#3627408480;=?
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
•&#3627408479;×&#3627408480;=?
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: ρ
??????&#3627408440;retornaa expressãoE com o nomeX
•Se umaexpressãode álgebrarelacionaltemaridaden, então
ρ
??????(&#3627408436;1,&#3627408436;2,…,&#3627408436;??????)&#3627408440;
•Retornao valor da expressãoE sob o nomeX, e com osatributos
renomeadospara A
1, A
2, …, A
n
•ρ
&#3627408481;??????&#3627408481;&#3627408481;??????&#3627408481;&#3627408482;&#3627408473;??????&#3627408479;⟶&#3627408481;??????&#3627408481;(&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;_&#3627408475;&#3627408476;&#3627408474;&#3627408466;,&#3627408464;&#3627408476;&#3627408475;&#3627408481;??????_&#3627408475;&#3627408482;&#3627408474;&#3627408466;&#3627408479;&#3627408476;)
•ρ
&#3627408481;??????&#3627408481;(&#3627408464;&#3627408473;&#3627408475;,&#3627408464;&#3627408476;&#3627408475;)&#3627408481;??????&#3627408481;&#3627408482;&#3627408473;??????&#3627408479;⟶&#3627408481;??????&#3627408481;(&#3627408464;&#3627408473;&#3627408475;&#3627408464;&#3627408476;&#3627408475;)

Composiçãode Operações
•Pode-se construirexpressõescompostaspor múltiplasoperações
•Exemplo:??????
&#3627408436;=&#3627408438;(&#3627408479;×&#3627408480;)

Composiçãode Operações
•Pode-se construirexpressõescompostaspor múltiplasoperações
•Exemplo:??????
&#3627408436;=&#3627408438;(&#3627408479;×&#3627408480;)
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) &#3627408479;×&#3627408480;

Composiçãode Operações
•Pode-se construirexpressõescompostaspor múltiplasoperações
•Exemplo:??????
&#3627408436;=&#3627408438;(&#3627408479;×&#3627408480;)
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) &#3627408479;×&#3627408480;
2)??????
&#3627408436;=&#3627408438;

Composição de Operações
•Pode-se construir expressões compostas por múltiplas operações
•Exemplo:??????
&#3627408436;=&#3627408438;(&#3627408479;×&#3627408480;)
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) &#3627408479;×&#3627408480;
2)??????
&#3627408436;=&#3627408438;
3)??????
&#3627408436;=&#3627408438;(&#3627408479;×&#3627408480;)
A B C D E
a 1 a 10 x
b 2 b 10 x
b 2 b 20 y

OperaçõesAdicionais
•São operaçõesque nãoaumentamo poderexpressivoda álgebra
relacionalmas que simplificamconsultashabituais
•Intersecçãode conjuntos: ∩
•Junçãonatural: ⋈
•Divisão: ÷
•Atribuição: ⟵

Operaçãode Intersecçãode Conjuntos
•Notação:&#3627408479;∩&#3627408480;
•Definido como: &#3627408479;∩&#3627408480;= {t|t∈r and t ∈s}
•Nota: &#3627408479;∩&#3627408480;=&#3627408479;−(&#3627408479;−&#3627408480;)
•Para que &#3627408479;∩&#3627408480;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
??????
&#3627408475;&#3627408476;&#3627408474;&#3627408466;_&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;&#3627408481;??????&#3627408481;&#3627408482;&#3627408473;??????&#3627408479;∩??????
&#3627408475;&#3627408476;&#3627408474;&#3627408466;_&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;(&#3627408465;&#3627408466;&#3627408483;&#3627408466;&#3627408465;&#3627408476;&#3627408479;)

Operação de Intersecção -Exemplo
•Relações r e s
•&#3627408479;∩&#3627408480;=?
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
•&#3627408479;∩&#3627408480;=?
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:&#3627408479;⋈&#3627408480;
•Sejam r e s relações nos esquemas R e S respetivamente. Então &#3627408479;⋈&#3627408480;é
uma relação no esquema &#3627408453;∪&#3627408454;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 &#3627408453;∪&#3627408454;, adicionaro tuplot
aoresultadotalque:
•t tem o mesmo valor que t
rem r;
•t tem o mesmo valor que t
sem s.
•Exemplo:
•&#3627408453;=&#3627408436;,&#3627408437;,&#3627408438;,&#3627408439;,&#3627408454;=&#3627408440;,&#3627408437;,&#3627408439;
•Esquema resultante = (&#3627408436;,&#3627408437;,&#3627408438;,&#3627408439;,&#3627408440;)
•&#3627408479;⋈&#3627408480;=&#3627409163;
&#3627408479;.&#3627408436;,&#3627408479;.&#3627408437;,&#3627408479;.&#3627408438;,&#3627408479;.&#3627408439;,&#3627408480;.&#3627408440;(??????
&#3627408479;.&#3627408437;=&#3627408480;.&#3627408437;∧&#3627408479;.&#3627408439;=&#3627408480;.&#3627408439;(&#3627408479;×&#3627408480;))

Operação de Junção Natural -Exemplo
•Relações r e s
•&#3627408479;⋈&#3627408480;=?
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
•&#3627408479;⋈&#3627408480;=?
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:&#3627408479;÷&#3627408480;
•Sejam r e s relações nos esquemas R e S respetivamente onde:
•&#3627408453;=(&#3627408436;
1,…,&#3627408436;
&#3627408474;,&#3627408437;
1,…,&#3627408437;
&#3627408475;)
•&#3627408454;=(&#3627408437;
1,…,&#3627408437;
&#3627408475;)
Então, &#3627408479;÷&#3627408480;é umarelaçãono esquema&#3627408453;−&#3627408454;,talque:
&#3627408479;÷&#3627408480;=&#3627408481;&#3627408481;∈&#3627409163;
&#3627408453;−&#3627408454;&#3627408481;∧∀
&#3627408482;∈&#3627408480;&#3627408481;&#3627408482;∈&#3627408479;
Onde &#3627408481;&#3627408482;representa a concatenação dos tuplos&#3627408481;e &#3627408482;resultandonum único
tuplo

Operação de Divisão -Exemplo
•Relações r e s
•&#3627408479;÷&#3627408480;=?
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
•&#3627408479;÷&#3627408480;=?
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
•&#3627408479;⋈&#3627408480;=?
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
•&#3627408479;⋈&#3627408480;=?
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 &#3627408479;÷&#3627408480;como:
•&#3627408481;&#3627408466;&#3627408474;&#3627408477;1⟵&#3627409163;
&#3627408453;−&#3627408454;&#3627408479;
•&#3627408481;&#3627408466;&#3627408474;&#3627408477;2⟵&#3627409163;
&#3627408453;−&#3627408454;&#3627408481;&#3627408466;&#3627408474;&#3627408477;1×&#3627408454;−&#3627409163;
&#3627408453;−&#3627408454;,&#3627408454;&#3627408479;
•&#3627408479;&#3627408466;&#3627408480;&#3627408482;&#3627408473;&#3627408481;=&#3627408481;&#3627408466;&#3627408474;&#3627408477;1−&#3627408481;&#3627408466;&#3627408474;&#3627408477;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
&#3627409163;
&#3627408441;1,&#3627408441;2,…,&#3627408441;??????
&#3627408440;
•&#3627408440;é qualquer expreçãode álgebra relacional
•Cada &#3627408441;
1,&#3627408441;
2,…,&#3627408441;
&#3627408475;são expressões aritméticas envolvendo constantes e
atributos do esquema &#3627408440;
•Exemplo: Dada a relação
Credito_info(nome_cliente, limite, saldo_credito)
Descubra quanto pode ainda gastar cada pessoa.
&#3627409163;
&#3627408475;&#3627408476;&#3627408474;&#3627408466;_&#3627408464;&#3627408473;??????&#3627408466;&#3627408475;&#3627408481;&#3627408466;,&#3627408473;??????&#3627408474;??????&#3627408481;&#3627408466;−&#3627408480;??????&#3627408473;&#3627408465;&#3627408476;_&#3627408464;&#3627408479;&#3627408466;&#3627408465;??????&#3627408481;&#3627408476;(&#3627408464;&#3627408479;&#3627408466;&#3627408465;??????&#3627408481;&#3627408476;_??????&#3627408475;&#3627408467;&#3627408476;)

Projeção Generalizada -Exemplo
•Relação r
•&#3627409163;
&#3627408436;,&#3627408438;∗10&#3627408479;=?
ABC
a101
a201
b301
b402

Projeção Generalizada -Exemplo
•Relação r
•&#3627409163;
&#3627408436;,&#3627408438;∗10&#3627408479;=?
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
&#3627408442;1,&#3627408442;2,…,&#3627408442;??????
??????
&#3627408441;
1??????1
,&#3627408441;
2??????2
,…,&#3627408441;??????&#3627408436;??????
&#3627408440;
•&#3627408440;é qualquer expressão de álgebra relacional
•&#3627408442;
1,&#3627408442;
2,…,&#3627408442;
&#3627408475;é uma lista de atributos nas quais se quer agrupar (pode ser
vazio)
•Cada &#3627408441;
??????representa uma função de agregação
•Cada &#3627408436;
??????representa um nome de atributo

Operação de Agregação -Exemplo
•Relação r
•??????
&#3627408480;&#3627408482;&#3627408474;&#3627408438;&#3627408479;=?
ABC
aa7
ab7
bb3
bb10

Operação de Agregação -Exemplo
•Relação r
•??????
&#3627408480;&#3627408482;&#3627408474;&#3627408438;&#3627408479;=?
ABC
aa7
ab7
bb3
bb10
sum(C)
27

Operação de Agregação –Exemplo2
•Relação conta agrupado por agencia_nome

????????????&#3627408466;&#3627408475;&#3627408464;????????????_&#3627408475;&#3627408476;&#3627408474;&#3627408466;??????
&#3627408480;&#3627408482;&#3627408474;(&#3627408480;??????&#3627408473;&#3627408465;&#3627408476;)&#3627408464;&#3627408476;&#3627408475;&#3627408481;??????
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

????????????&#3627408466;&#3627408475;&#3627408464;????????????_&#3627408475;&#3627408476;&#3627408474;&#3627408466;??????
&#3627408480;&#3627408482;&#3627408474;(&#3627408480;??????&#3627408473;&#3627408465;&#3627408476;)&#3627408464;&#3627408476;&#3627408475;&#3627408481;??????
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
????????????&#3627408466;&#3627408475;&#3627408464;????????????_&#3627408475;&#3627408476;&#3627408474;&#3627408466;??????
&#3627408480;&#3627408482;&#3627408474;&#3627408480;??????&#3627408473;&#3627408465;&#3627408476;??????&#3627408480;&#3627408480;&#3627408476;&#3627408474;??????_&#3627408480;??????&#3627408473;&#3627408465;&#3627408476;&#3627408464;&#3627408476;&#3627408475;&#3627408481;??????
agencia_nome soma_saldo
Lumiar 1300
Amoreiras 1500
Campolide 700
Tags