Sei sulla pagina 1di 24

Prof.

Rui Manuel Dos Santos Domingues

Base de Dados
Álgebra relacional
921078775

13
ÁLGEBRA RELACIONAL

A álgebra relacional poderá ser definida como o conjunto de operações que são
necessárias efectuar para manipular relações. Qualquer operação dará origem a uma
nova relação, que poderá ser novamente manipulada. Este conjunto de operações
divide-se em dois grupos: um conjunto de operações matemáticas, tais como, União,
Intersecção, Diferença e ProdutoCartesiano e outro que consiste em operações que
foram desenvolvidas especificamente para manipulação de Bases de Dados
Relacionais, tais como, SelecçãoProjecção e Junção.

A álgebra relacional é uma linguagem de interrogação procedimental, dado que o


utilizador dá instruções para o sistema executar uma sequência de operações na base
de dados, calculando o resultado esperado.

OPERAÇÕES FUNDAMENTAIS:

1. Selecção (sobre uma relação)

Operação que transforma relações em relações e é indexada por um predicado,


envolvendo os valores dos tuplos (registos).

p (r)

Sendo:

 - Selecção.

p - predicado, sendo um termo lógico ou uma função booleana aplicada a


argumentos que podem ser também predicados. 1

(r) - relação, tabela ou conjunto de tabelas.

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Por exemplo: Pretende seleccionar da relação R-CONTAS, os tuplos cujo
nome_balcão seja RMR.

nome_balcão = “RMR” (R-CONTAS)

OPERADORES RELACIONAIS

Operador Descrição
= Igual a
> Maior que
>= Maior ou Igual que
< Menor que
<= Menor ou Igual que
 Diferente de

OPERADORES LÓGICOS

Operador Exemplo
 (e) predicado  predicado
 (ou) predicado  predicado

Considerando a seguinte relação R-CONTAS:

Nr_conta nome_balcão nome_cliente saldo


2
1 STR João Silva 120

2 RMR Pedro Santos 200

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


3 RMR Rita Pereira 50

4 RMR Ana Sofia 350

5 STR Carlos Gomes 750

Pretende-se seleccionar, da relação R-CONTAS, os tuplos cujo nome_balcão seja


RMR e saldo seja superior a 100.

nome_balcão = “RMR”  saldo > 100 (R-CONTAS)

Como resultado da interrogação, temos:

Nr_conta nome_balcão nome_cliente saldo

2 RMR Pedro Santos 200

4 RMR Ana Sofia 350

Pretende-se seleccionar, da relação R-CONTAS, os tuplos cujo nome_balcão seja


STR ou cujo saldo seja superior a 150.

nome_balcão = “STR”  saldo > 150 (R-CONTAS)

Como resultado da interrogação, temos:

Nr_conta nome_balcão nome_cliente saldo


3
1 STR João Silva 120

2 RMR Pedro Santos 200

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


4 RMR Ana Sofia 350

5 STR Carlos Gomes 750

Pretende-se seleccionar, da relação R-CONTAS, os tuplos cujo nome_balcão seja


diferente de STR.

nome_balcão  “STR” (R-CONTAS)

Como resultado da interrogação, temos:

Nr_conta nome_balcão nome_cliente saldo

2 RMR Pedro Santos 200

3 RMR Rita Pereira 50

4 RMR Ana Sofia 350

Pretende-se seleccionar, da relação R-CONTAS, os tuplos cujo saldo seja maior ou


igual a 200.

saldo >= 200 (R-CONTAS)

Como resultado da interrogação, temos:


4
Nr_conta nome_balcão nome_cliente saldo

2 RMR Pedro Santos 200

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


4 RMR Ana Sofia 350

5 STR Carlos Gomes 750

2. Projecção (de X sobre uma relação)

Operação que se obtém reduzindo o domínio de cada tuplo de r (relação) a X


(atributo), e eliminando tuplos repetidos que daí resultem.

x (r)

Sendo:

 - Projecção.

x - atributo ou atributos pretendidos.

(r) - relação, tabela ou conjunto de tabelas.

Pretende-se seleccionar, da relação R-CONTAS, os atributos nome_cliente e saldo.

nome_cliente, saldo (R-CONTAS)

Como resultado da interrogação, temos:

nome_cliente saldo

João Silva 120

Pedro Santos 200

Rita Pereira 50
5
Ana Sofia 350

Carlos Gomes 750

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Pretende seleccionar, da relação R-CONTAS, os balcões existentes.

nome_balcão (R-CONTAS)

Como resultado da interrogação, temos:

nome_balcão

STR

RMR

A projecção apenas devolve os atributos sem repetições.

A projecção poderá ser utilizada em conjunto com a selecção, de forma a criar


restrições.

Por exemplo: Pretende-se seleccionar, da relação R-CONTAS, os nomes dos clientes


que possuem conta no balcão STR.

nome_cliente (nome_balcão = “STR”(R-CONTAS))

Como resultado da interrogação, temos:

nome_cliente

João Silva

Carlos Gomes
6

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Pretende-se seleccionar, da relação R-CONTAS, os números das contas e os nomes
dos clientes que possuem saldo superior a 150.

nr_conta , nome_cliente (saldo > 150 (R-CONTAS))

Como resultado da interrogação. temos:

Nr_conta nome_cliente

1 Pedro Santos

4 Ana Sofia

5 Carlos Gomes

Pretende-se seleccionar, da relação R-CONTAS, os nomes dos balcões e os nomes


dos clientes que possuem saldo inferior a 150.

nome_balcão , nome_cliente (saldo < 150 (R-CONTAS))

Como resultado da interrogação, temos:

Nome_balcão nome_cliente

STR João Silva

RMR Rita Pereira

OPERAÇÕES MATEMÁTICAS SOBRE CONJUNTOS:

7
As operações matemáticas utilizadas sobre conjuntos ou relações são: União,
Intersecção, Diferença e Produto Cartesiano. Estas operações são binárias, dado
que são aplicadas entre dois conjuntos.

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


1. União (sobre relações)

O resultado da operação A  B é uma relação que inclui os tuplos de ambas as


relações. Também nesta operação os tuplos duplicados são removidos.

No entanto, a união de relações só se poderá efectuar se as relações A e B tiverem a


mesma aridade, ou seja o mesmo número de atributos.

Significa isto que os domínios do atributo iésimo de A e do atributo iésimo de B têm


que ser os mesmos.

Considere agora as seguintes relações:

relação A-CONTAS: (Referente a contas à ordem)

Nr_conta nome_balcão nome_cliente saldo

1 STR João Silva 120

2 RMR Pedro Santos 200

3 RMR Rita Pereira 50

4 RMR Ana Sofia 350

5 STR Carlos Gomes 750

relação B-EMPRÉSTIMOS: (Referente a empréstimos efectuados)

Nr_empréstimo nome_balcão nome_cliente valor_empréstimo

1 LX João Silva 3500

2 RMR Pedro Santos 500


8
3 RMR Rita Pereira 100

4 STR Ana Sofia 200

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


5 STR Carlos Gomes 7200

relação C-ACÇÕES: (Referente a valores financeiros em acções)

Nr_conta_acções nome_balcão nome_cliente valor_acções

1 RMR João Silva 3500

2 RMR Pedro Santos 200

3 RMR Ana Sofia 2350

4 STR Carlos Gomes 4050

Pretende-se seleccionar o nome dos clientes que possuam empréstimos (B-


EMPRÉSTIMOS) ou contas de acções (C-ACÇÕES) no balcão de RMR.

(nome_cliente (nome_balcão = “RMR” (B-EMPRÉSTIMOS))) (nome_cliente (nome_balcão = “RMR” (C-


ACÇÕES)))

Como resultado da interrogação, temos:

nome_cliente

Pedro Santos

Rita Pereira

João Silva

Ana Sofia

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Pretende-se seleccionar os nomes dos balcões onde o cliente com o nome “João
Silva” possui empréstimos (B-EMPRÉSTIMOS), contas de acções (C-ACÇÕES) ou
contas à ordem (A-CONTAS).

(nome_balcão (nome_cliente = “João Silva” (B-EMPRÉSTIMOS))) (nome_balcão (nome_cliente = “João Silva” (C-
ACÇÕES)))
 (nome_balcão (nome_cliente = “João Silva” (A-CONTAS)))

Como resultado da interrogação, temos:

nome_balcão

LX

RMR

STR

2. Intersecção (sobre relações)

O resultado da operação A  B é uma relação cujos tuplos pertencem a ambas as


relações. Também nesta operação os tuplos duplicados são removidos.

Por exemplo:

Pretende-se seleccionar o nome dos clientes que possuam contas à ordem (A-
CONTAS) e contas de acções (C-ACÇÕES) no balcão de RMR.

(nome_cliente (nome_balcão = “RMR” (A-CONTAS)))  (nome_cliente (nome_balcão = “RMR” (C-ACÇÕES)))

10
Como resultado da interrogação, temos:

nome_cliente

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Pedro Santos

Ana Sofia

Pretende-se seleccionar o nome dos clientes que possuam contas à ordem (A-
CONTAS), empréstimos (B-EMPRÉSTIMOS) e contas de acções (C-ACÇÕES) no
balcão de RMR.

(nome_cliente (nome_balcão = “RMR” (A-CONTAS)))  (nome_cliente (nome_balcão = “RMR” (B-


EMPRÉSTIMOS)))
 (nome_cliente (nome_balcão = “RMR” (C-ACÇÕES)))

Como resultado da interrogação, temos:

nome_cliente

Pedro Santos

3. Diferença (sobre relações)

O resultado da operação A  B é uma relação cujos tuplos pertencem a A e não a B. É


uma operação não comutativa, ou seja A  B B A.

Por exemplo:

Pretende-se seleccionar o nome dos clientes que possuam contas à ordem (A-
CONTAS) e não possuam conta de acções (C-ACÇÕES), no balcão de RMR.

(nome_cliente (nome_balcão = “RMR” (A-CONTAS))) (nome_cliente (nome_balcão = “RMR” (C-ACÇÕES)))

11
Como resultado da interrogação, temos:

nome_cliente

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Rita Pereira

Pretende-se seleccionar o nome dos clientes e respectivos valores de empréstimos


(B-EMPRÉSTIMOS), mas que não possuam contas de acções (C-ACÇÕES).

(nome_cliente, valor_empréstimo (B-EMPRÉSTIMOS))  (nome_cliente (C-ACÇÕES))

Como resultado da interrogação, temos:

nome_cliente valor_empréstimo

Rita Pereira 100

4. Produto Cartesiano (sobre relações)

Esta operação é utilizada para combinar tuplos de duas relações para que os tuplos
relacionados possam ser identificados.

Genericamente, o produto cartesiano de duas relações R e S, o produto cartesiano R x S,


será uma relação cujo esquema será a concatenação dos esquemas R e S, e a relação
resultado terá todos os tuplos de R para os quais existe um tuplo em S.

Relação
R Relação S
12
A B C D
a1 b1 c1 d1
a2 b2 c2 d2

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Produto Cartesiano de R x S

A B C D
a1 b1 c1 d1
a1 b1 c2 d2
a2 b2 c1 d1
a2 b2 c2 d2

Por exemplo:

A utilização do produto cartesiano pressupõe situações pontuais que possam identificar


ligações significativas entre duas relações.

Relação
Aluno Relação Disciplina
Nr_aluno Nome_aluno Código Designação
12 João Faria 1 Português A
105 Joana Faria 2 Matemática

Produto Cartesiano de Aluno x Disciplina

Nr_aluno Nome_aluno Código Designação


12 João Faria 1 Português A
12 João Faria 2 Matemática
105 Joana Faria 1 Português A
105 Joana Faria 2 Matemática

13

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


OUTRAS OPERAÇÕES SOBRE CONJUNTOS:

Outras operações utilizadas sobre conjuntos ou relações são: a Junção, a Junção


Natural e a operação Quociente (Divisão).

1. Junção (sobre relações)

O resultado da operação R  S é utilizada para combinar tuplos relacionados de duas


relações em tuplos simples. Esta operação é muito importante para qualquer base de
dados relacional com mais do que uma relação, porque permite relacionamento dentro
das relações.

A fórmula geral da operação de Junção em duas relações é a seguinte:

R(A1, A2, ... , An) e S(B1, B2, ... , Bn) é R (condição de junção) S.

Por exemplo:

Pretende-se todos os clientes que possuam contas à ordem (A-CONTAS) e contas de


empréstimo (B-EMPRÉSTIMOS) no mesmo balcão, utilizando a junção.

A-CONTAS (nome_balcão=nome_balcãonome_cliente=nome_cliente) B-EMPRÉSTIMOS

Como resultado da interrogação, temos:

nr_conta nome_balcão nome_cliente saldo Nr_empréstimo (...) 14


2 RMR Pedro Santos 200 2
3 RMR Rita Pereira 50 3
5 STR Carlos Gomes 750 5

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


(...) nome_balcão nome_cliente valor_empréstimo
RMR Pedro Santos 500
RMR Rita Pereira 100
STR Carlos Gomes 7200

Nota:

A Junção apenas considera as combinações de tuplos que satisfaçam a condição de


junção, enquanto que no Produto Cartesiano todas as combinações de tuplos são
incluídas no resultado.

2. Junção Natural (sobre relações)

Esta operação surge com o objectivo de serem retirados os segundos atributos na


condição de junção, porque um de cada tuplo de atributos com valores idênticos é
supérfluo. Esta operação é conhecida por *. É, pois, uma junção seguida da remoção
dos termos supérfluos. A definição padrão requer que os dois atributos (de cada tuplo
de atributos juntos) tenham o mesmo nome.

O resultado da operação R  S é uma relação com o esquema R  S e tendo como


predicado que R*A=S*A para cada atributo A de R  S.

A fórmula geral da operação de Junção Natural:

R(A1, A2, ... , An) e S(B1, B2, ... , Bn) é R * (<Lista1>) , (< Lista2>) S.

Sendo a (Lista1) – a lista de atributos da relação R.

Sendo a (Lista2) – a lista de atributos da relação S.


15

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Por exemplo:

Pretende-se todos os clientes que possuam contas à ordem (A-CONTAS) e contas de


empréstimo (B-EMPRÉSTIMOS) no mesmo balcão, utilizando a junção natural.

A-CONTAS * (nr_conta, nome_balcão, nome-cliente, saldo) , (valor_empréstimo) B-EMPRÉSTIMOS

Como resultado da interrogação:

nr_conta nome_balcão nome_cliente saldo valor_empréstimo


2 RMR Pedro Santos 200 500
3 RMR Rita Pereira 50 100
5 STR Carlos Gomes 750 7200

Nota:

Em geral, a Junção Natural é feita pela igualdade de todos os pares de atributos que
tenham o mesmo nome nas duas relações. Poderá haver uma lista de atributos de
junção de cada relação, e cada tuplo correspondente terá de ter o mesmo nome.

3. Quociente (sobre relações)

A operação Quociente ou Divisão é útil para um tipo especial de interrogação que por
vezes ocorre nas aplicações de bases de dados.

Esta operação R  S, só poderá ser efectuada se S  R , ou seja se os atributos da


relação S estão contidos na relação R, sendo que o esquema da relação resultado será
R – S.

16

Considere agora as seguintes relações:

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


relação A-CONTAS: (Referente a contas à ordem)

Nr_conta nome_balcão nome_cliente saldo

1 STR João Silva 120

2 RMR Pedro Santos 200

3 RMR Rita Pereira 50

4 RMR Ana Sofia 350

5 STR Carlos Gomes 750

6 STR Pedro Santos 900

relação BALCÕES relação CLIENTES

nome_balcão nome_cliente
STR João Silva
RMR Pedro Santos
LX Rita Pereira

Pretende-se os dados referentes às contas à ordem (A-CONTAS), cujo nome de


cliente seja “Pedro Santos” (CLIENTES).

 (A-CONTAS) nome_cliente = “Pedro Santos” (CLIENTES)

Como resultado da interrogação:

nr_conta nome_balcão nome_cliente saldo


2 RMR Pedro Santos 200
6 STR Pedro Santos 900

17

FUNÇÕES DE AGREGAÇÃO

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Alguns requisitos comuns às bases de dados não podem ser realizados com os
operadores básicos descritos anteriormente. Os SGBDs mais comerciais incluem
instruções para realizar estes requisitos.

As funções de agregação são:

 SOMA (Sum)

 MÉDIA (Avg)

 MÁXIMO (Max)

 MÍNIMO (Min)

 CONTAR (Count)

As funções de agregação devem ser definidas da seguinte forma, sendo o símbolo F


(F manuscrito) a função a definir:

Para resultados de agregação, ou seja, vários valores:

<atributos do argumento> F <lista de funções> ( <nome da relação> )

ou

Para resultados totais, ou seja, valores globais:


18
F <lista de funções> ( <nome da relação> )

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Sendo <atributos do argumento> a lista de atributos da relação especificada em
<nome de relação>.

Sendo <lista de funções> a lista de pares de (função/atributos). Em cada par,


<função> diz respeito a uma função permitida e <atributo> é um atributo da relação.

Por exemplo:

Pretende-se saber qual o maior saldo das contas à ordem existentes (A-CONTAS),
por balcão existente.

nome_balcão F MÁXIMO saldo (A-CONTAS)

Resultado: nome_balcão MÁXIMO saldo


STR 900
RMR 350

Pretende-se saber qual o menor saldo das contas à ordem existentes (A-CONTAS).

F MÍNIMO saldo (A-CONTAS)

Resultado: MÍNIMO saldo


50

Pretende-se saber qual a média de empréstimos das contas de empréstimos (B-


EMPRÉSTIMOS), por balcão existente.

nome_balcão F MÉDIA valor_empréstimo (B-EMPRÉSTIMOS)


19

Resultado: Nome_balcão MÉDIA valor_empréstimo

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


LX 3500
RMR 300
STR 3700

Pretende-se saber qual a média de empréstimos das contas de empréstimos (B-


EMPRÉSTIMOS).

F MÉDIA valor_empréstimos (B-EMPRÉSTIMOS)

Resultado: MÉDIA valor_empréstimo


2300

Por exemplo:

Pretende-se saber qual o total de saldos das contas à ordem existentes (A-CONTAS),
por balcão existente.

nome_balcão F SOMA saldo (A-CONTAS)

Resultado: nome_balcão SOMA saldo


STR 1770
RMR 600

Pretende-se saber qual o total de saldos das contas à ordem existentes (A-CONTAS).

F SOMA saldo (A-CONTAS)

Resultado: SOMA saldo 20


2370

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Pretende-se saber quantos empréstimos existem nas contas de empréstimos (B-
EMPRÉSTIMOS), por balcão existente.

nome_balcão F CONTAR nr_empréstimo (B-EMPRÉSTIMOS)

Resultado: Nome_balcão CONTAR nr_empréstimo


LX 1
RMR 2
STR 2

Pretende-se saber quantas contas de acções existem na relação contas de acções (C-
ACÇÕES).

F CONTAR nr_conta (C-ACÇÕES)

Resultado: CONTAR nr_conta


4

21
Resumo das principais operações da álgebra
relacional.

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


Selecção Projecção

(linhas – registos) (colunas – atributos)

União Intersecção

Diferença Junção

Junção Natural

Produto Cartesiano Quociente ou Divisão

A X Z = A Z A X  X = A
B Y A Y A Y Y
C B Z A Z
B Y B X
C Z C Y
C Y 22

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues


ÁLGEBRA RELACIONAL

Como já foi referido, a álgebra relacional poderá ser definida como o conjunto de
operações que são necessárias efectuar para manipular relações.

Qualquer operação em álgebra relacional dará origem a uma nova relação, que
poderá ser novamente manipulada.

A álgebra relacional é uma linguagem de interrogação procedimental, dado que o


utilizador dá instruções para o sistema executar uma sequência de operações na base
de dados, para calcular o resultado esperado.

As operações de Base:

A Selecção e a Projecção.

As operações Matemáticas:

A União, a Intersecção, a Diferença e o Produto Cartesiano.

As outras operações:

A Junção, a Junção Natural e o Quociente.

As funções de agregação:

A Soma, a Média, o Máximo, o Mínimo e o Contar.

23

Universidade Metodista De Angola | Prof.Rui Manuel Dos Santos Domingues

Potrebbero piacerti anche