Escolar Documentos
Profissional Documentos
Cultura Documentos
lgebra Relacional
VANDCIA FERNANDES
Referncias: Elmasri, R. and Navathe, S.B. Sistemas de Bancos de Dados. Korth, H.F. e Silberschatz, A. Sistemas de Bancos de
Dados. Notas de aula dos professores: Simara Rocha, Juliano Varella de Carvalho e Vania Bogorny
lgebra Relacional
o
Linguagem Procedural
lgebra Relacional
o
Operaes
o
Bsicas:
o
oriundas da teoria de conjuntos: produto cartesiano, unio
e diferena
o
especficas para relaes: seleo, projeo e renomeo
Adicionais
o
oriundas da teoria de conjuntos: interseo
o
especficas para relaes: diviso e juno
lgebra Relacional
o
Operaes unrias:
o
Operaes binrias:
o
Esquema Relacional
Para as operaes a seguir, considere o esquema relacional abaixo:
Empregado(matrcula, nomeE, endereo, sexo, salrio, supervisor, depto)
Departamento(codDepto, nomeD, matrGerente)
DepLocalizaes(codDepto, Localizao)
Alocao(matrEmp, codProj, numHoras)
Projeto(codProj, nome, localizao, deptoControla)
Dependentes( matrEmp, nomeDep, sexo, dataNasc, parentesco)
Operao de Seleo
o
(predicado)(Nome da Relao)
empregados
que
trabalham
no
2.
3.
Respostas:
1.
DEPTO =5(Empregado)
2.
3.
(depto = 4 AND salrio > 5000) OR (depto = 5 AND salrio < 500)(Empregado)
Operao de Seleo
Observaes:
o
o
o
Operao de Projeo
o Retorna a relao com somente os atributos selecionados,
eliminando as linhas em duplicidade.
o A operao de projeo representada pela letra grega pi ().
Os atributos aparecem ao lado de pi, subscrito, e a relao
aparece entre parnteses.
(atributos)(Nome da Relao)
10
Operao de Projeo
o
Exemplo:
o
<sexo, salrio>(Empregado)
11
Operao de Unio
o
Notao: R S
Definida como:
R S = {t | t R or t S}
13
Operao de Unio
o
15
Operao de Diferena
o Notao: R S
o Definida como:
R S = {t | t R and t S}
o A diferena entre duas relaes, R - S, o conjunto de
tuplas que est em r mas no est em s.
17
Operao de Diferena
o Diferena deve ser feita entre relaes compatveis
o
o
18
19
20
Operao de Interseo
o
Notao: r s
Definida como:
r s = {t | t r and t s}
21
22
23
Produto Cartesiano
o Notao: R x S
o Definida como:
R x S = {t q| t R and q S}
o O resultado uma relao cujas tuplas so a combinao das
24
Produto Cartesiano
o O produto Cartesiano de duas relaes R X S combina cada tupla de R com
cada tupla de S
25
26
27
28
S(R)
o
Renomeia a relao R para S
Diviso
o Sintaxe: R S
o A diviso de duas relaes R S, onde atributos(S)
atributos(R), resulta na relao T com atributos(T) = {atributos(R)
atributos(S)}, onde para cada tupla t que aparece no resultado,
os valores de t devem aparecer em R combinado com cada tupla
de S
o Quase sempre a diviso usada quando nas consultas h frases
do tipo para todos
30
Diviso - Exemplo
31
Diviso - Exemplo
Filmes
Aluguis
codFilme
codCli
data
codFilme
ttulo
gnero
f1
Corao Valente
Aventura
f2
Se eu Fosse Voc
Comdia
01/02/2000
f3
E o Vento Levou
Romance
03/01/2000
f4
O Mscara
Comdia
f1
c1
01/01/2000
f2
c3
05/01/2000
f3
c1
f4
c2
Clientes
codCli
nome
idade
cidade
c1
Joo
31
Porto Alegre
c2
Jos
28
Porto Alegre
c3
Lus
25
Novo Hamburgo
Juno
o A operao de juno (join), denotada por
operao
o Permite recuperar relacionamentos entre relaes
33
Juno
o Sejam: R
<critrio> S
o Onde:
o <R e S> so nomes de tabelas ou expresses de lgebra relacional que
resultam em tabelas
o <critrio> uma expresso booleana envolvendo literais e valores de
atributos das duas tabelas
a executar:
34
Juno - Exemplo
o Obtenha o nome do gerente de cada departamento
nomeD, nomeE (Departamento matrGerente = Matricula Empregado)
o Na maior parte dos casos, o <critrio> de juno uma expresso
como mostrada no exemplo
o Envolve apenas igualdade de valores de atributos de diferentes
tabelas
o Esse tipo de juno chamada de Equijuno (Equijoin)
35
Juno Natural
Quando as colunas de juno (condio de juno) possuem os
mesmos nomes, a lista de nomes das colunas no necessita ser
especificadas. Nesse caso, temos uma Juno Natural (Natural join)
que um equijoin onde um dos atributos com valores repetidos
eliminado.
36
38
39
Funes Agregadas
o
40
Funes Agregadas
o
41
Exerccios
Tabela Peas
Cod_Peca
Nome
Cor
Peso
Cidade
P1
Eixo
Cinza
10
Recife
P2
Rolamento
Preto
16
Campinas
P3
Mancal
Verde
30
Macei
Tabela Fornecedor
Cod_Fornec
Tabela Embarque
Cod_Peca
Cod_Forne
Qtd_Embarque
P1
F1
300
P1
F2
400
P1
F3
200
P2
F1
300
P2
F4
350
Nome
Status
Cidade
F1
Silva
So Paulo
F2
Souza
10
Rio de Janeiro
F3
Alves
So Paulo
F4
Tavares
Rio de Janeiro
42
Exerccios
1. Mostre as peas com o cdigo P1
2. Mostre os dados de todos os fornecedores que tenham status maior que 5
e que sejam do Rio de Janeiro
3. Apresente os cdigos e os nomes de todas as peas
4. Mostre as cidades dos fornecedores
5. Mostre o cdigo de fornecedor e quantidade embarcada para cada
embarque da pea de cdigo P1
6. Obtenha os cdigos de todos os fornecedores que tem embarques e que
tem status maior que 5
7. Obtenha os nomes de todas as peas para as quais h embarques
43