Você está na página 1de 23

• INSTITUTO SUPERIOR POLITÉCNICO DE

CIÊNCIAS TECNOLÓGICAS

ÁLGEBRA RELACIONAL
Sessão VII
WILSON JÓSE PAIVA

ENG.º INFORMÁTICO E DE SISTEMAS DE INFORMAÇÃO


Modelo Relacional – Álgebra Relacional

• SELEÇÃO ()
• Descrição: seleciona tuplas que satisfazem a um predicado
• Entrada: uma relação R
• Saída: uma relação R’, tal queR’R
• Formato: <predicado de seleção> (R)
AND , OR , NOT ,
, , =, , , 
• Ex:


(ALUNO)
Nome‘João Azevedo’ AND N_matricula>1111111111
Base de Dados I – Prof. Wilson Paiva
Seleção– Exemplo
3

• Tabela r A B C D

  1 7
  5 7
  12 3
  23 10

A=B ^ D > 5 (r)


A B C D Em SQL
Select * from R
  1 7 where a=b and d>5
Base de Dados I – Prof. Wilson Paiva  23 10
Modelo Relacional – Álgebra Relacional

• PROJEÇÃO () 4
• Descrição: seleciona atributos de uma relação
• Entrada: uma relação R

• Formato:  (R)
<lista de atributos>

• Ex:
 Nome, N_matricula (ALUNO)

 ( (ALUNO))
Nome, Data_nasc N_matricula>1111111111

Base de Dados I – Prof. Wilson Paiva


Project– Exemplo
5

• Tabela r: A B C

 10 1
 20 1
 30 1
 40 2

A C
( R)
 A ,C  1 Em SQL
Select a, c from R
 1
 1
Base de Dados I – Prof. Wilson Paiva  2
Esquema das operações 6

Base de Dados I – Prof. Wilson Paiva


Modelo Relacional – Álgebra Relacional

• UNIÃO ()
• Descrição: reúne em uma única relação as tuplas
das relações de entrada
• Entrada: duas relações R1 e R2, compatíveis.
• Sejam duas relações de grau n, R1(A1, ..., An) e R2(B1,
..., Bn), se dom(A1)=dom(B1), ..., dom(An)=dom(Bn),
então R1 e R2 são compatíveis.
• Saída: uma relação R’, tal que grau(R’) = grau(R1)
= grau(R2) e R’R1 e/ou R’R2
• Formato: R1  R2

Base de Dados I – Prof. Wilson Paiva


União– Exemplo
8

• Tabelas r, s: A B A B

 1  2
 2  3
 1 s
r

r  s: A B

 1
Em SQL
Select a, b from R
 2
Union all
 1 Select a,b from S
 3
Base de Dados I – Prof. Wilson Paiva
Modelo Relacional – Álgebra Relacional

• DIFFERENÇA DE CONJUNTOS (−) 9


• Descrição: seleciona as tuplas presentes na primeira relação
e não presentes na segunda
• Entrada: duas relações R1 e R2, compatíveis.
• Saída: uma relação R’, tal que grau(R’) = grau(R1) =
grau(R2) e R’R1
• Formato: R1 − R2

• Ex:
 (ALUNO) −  (PROFESSOR)
Nome Nome

Base de Dados I – Prof. Wilson Paiva


Diferença – Exemplo 10

• Tabelas r, s: A B A B

 1  2
 2  3
 1 s
r

A B
Em SQL
r – s: Select a, b from R
 1 minus
 1
Select a, b from S
Base de Dados I – Prof. Wilson Paiva
Modelo Relacional – Álgebra Relacional

• PRODUTO CARTESIANO () 11

• Descrição: concatena as tuplas das relações de


entrada de forma combinatorial
• Entrada: duas relações R1(A1, ..., An) e R2(B1,
..., Bn), não necessariamente compatíveis.
• Saída: uma relação R’(A1, ..., An, B1, ..., Bn), tal
que grau(R’) = grau(R1) + grau(R2) e
R’=R1*R2
• Formato: R1  R2
• Obs: sem significado se aplicada isoladamente

• Ex: ALUNO  PROFESSOR


Base de Dados I – Prof. Wilson Paiva
Produto Cartesiano – Exemplo
12

Tabelas r, s: A B C D E

 1  10 +
 10 +
 2
 20 –
r  10 –
s
r x s: A B C D E
 1  10 +
Em SQL
 1  19 +
 1  20 – Select * from R,S
 1  10 –
 2  10 +
 2  10 +
 2  20 –
Base de Dados I – Prof. Wilson Paiva
 2  10 –
Operador relacional de DIVISÃO
13
COL1 COL2 COL2 COL1
A 1 2 C
B 1 3 A÷B
C 2
Tabela_B
A 2
B 3 As linhas da Tabela A que não possuem correspondência
com todas as linhas da Tabela B serão excluídas.
C 3
Em SQL
A 4
Select distinct col1 from Tabela_A a
B 4 where not exists (select null from Tabela_B b
C 5 where not exists (select null
from Tabela_A
Tabela_A where col2=b.col2 and
a.col1=col1));
Base de Dados I – Prof. Wilson Paiva
Operador relacional de RENOMEAR
14
Sintaxe
ρ<novo nome (R)

Exemplo
TB_ESTADO_CIVIL (estado_civil, descrição)

ρEA(cod,desc) (TB_ESTADO_CIVIL)

Em SQL
Select estdo_civil as cod, descrição as desc
from TB_ESTADO_CIVIL EA
Base de Dados I – Prof. Wilson Paiva
15

Representação Gráfica
• Operadores Tradicionais

• União Intersecção Diferença

Base de Dados I – Prof. Wilson Paiva


Representação Gráfica 16

• Operadores Tradicionais

• Produto Cartesiano

Base de Dados I – Prof. Wilson Paiva


Representação Gráfica 17

• Operadores Relacionais

• Seleção Projeção

Base de Dados I – Prof. Wilson Paiva


Simbologia
18

• União RS
• Diferença R–S
• Prod. Cartesiano RS
• Seleção F (R)
• Projeção  i1, i2, ...,
im(R)
• Junção R⋈S

Base de Dados I – Prof. Wilson Paiva


Modelo Relacional – Álgebra Relacional

• FUNÇÕES DE AGREGAÇÃO () 19


• Uma função de agregação tome uma coleção de valores e
retorna um único valor como resultado
• avg: média
min: mínimo
max: máximo
sum: soma
count: número de valores
• Formato:
• G1, G2, …, Gn  F1( A1), …, Fn( An) (R)
• R é uma relação
• G1, G2 …, Gn é a lista de atributos de agrupamento (pode ser
vazia)
• Cada Fi é uma função de agregação
• Cada Ai é um atributo
Base de Dados I – Prof. Wilson Paiva
Funções agregadas – Exemplo
20

• Tabela r:
A B C

  7
  7
  3
  10

sum-C
Sum c(r)
27

Base de Dados I – Prof. Wilson Paiva


Funções agregadas – Exemplo
21

• Tabela contas agrupada por branch-name


(filial):
branch-name account-number balance
Perryridge A-102 400
Perryridge A-201 900
Brighton A-217 750
Brighton A-215 750
Redwood A-222 700

branch-name  sum balance (account)


branch-name balance
Perryridge 1300
Brighton 750
Base de Dados I – Prof. Wilson Paiva
Redwood 700
Exemplos 22

• sum salario (trabalhador)


• count nome_agencia(trabalhador)
• Count-distinct nome_agencia(trabalhador)
• Nome_agência G sum salario (trabalhador)
• Dividirá as tuplas de trabalhador em grupos, conforme os
nomes das agências
• Somará os valores dos salários de cada grupo
• Apresentará o resultado

Base de Dados I – Prof. Wilson Paiva


Exercícios
13. Retorne o nome do empregado
23 eo
empregado(RG, sexo, nome de cada projeto em que ele
dt_nasc,pnome,unome,rua,cidad trabalha
e,estado,salario,dnum,supRG)
supRG references 14. Retorne o nome dos empregados
empregado(RG) que trabalham em algum projeto
controlado pelo departamento 5
dnum references
departamento(dnum) 15. Retorne o número de empregados
departamento(dnum,dnome, da empresa
gerRG,dt_inicio) 16. Retorne o número do
gerRG references departamento e o número de
empregado(rg) empregados de CADA departamento
projeto (pnum, da empresa
pnome,localização,dnum) 17. Retorne o número do
dnum references departamento e a média do salário
departamento(dnum) dos empregados de CADA
dependente(dep_nome,dep_sexo,
departamento da empresa
dep_dt_nasc,empRG) 18. Retorne o nome e o endereço de
empRG references todos os empregados que trabalham
empregado(RG) no departamento ‘Pesquisa’
trabalha_em(RG,pnum,horas) 19. Para cada projeto localizado em
RG references empregado(RG) ‘Londrina’, retorne o número do
projeto, o número do departamento
pnum references projeto(pnum) que o controla, o nome e sexo do
localizacao(localizacao,dnum) gerente do departamento
dnum references
departamento(dnum)
Base de Dados I – Prof. Wilson Paiva

Você também pode gostar