Escolar Documentos
Profissional Documentos
Cultura Documentos
Operaes:
Bsicas:
Adicionais
Notas:
as operaes bsicas so suficientes para exprimir as mesmas consultas que o Clculo Relacional
as operaes adicionais ajudam a formular certas consultas que seriam muito complexas de exprimir usando apenas as operaes bsicas
Toda operao relacional opera (age) sobre um ou mais conjuntos de dados e fornece como resultado um novo conjunto.
Podemos combinar mais de uma operao relacional em uma nica expresso algbrica;
O resultado de uma operao pode ser utilizado como entrada para outra operao;
Banco de Dados
Banco de Dados
Projeo
Produz um conjunto onde h um elemento para cada elemento do conjunto
de entrada
A estrutura dos membros do conjunto resultante definida nos argumentos
da operao.
Indicada por .
Operao que filtra as colunas de uma tabela.
A projeo classificada como uma operao unria.
Banco de Dados
Projeo
Ex.: NmFunc(funcionrio)
A expresso produz um conjunto
contendo um elemento para cada
funcionrio,
contm
cada
apenas
elemento
informao
Banco de Dados
Seleo ou Restrio
uma operao que para um conjunto inicial fornecido como argumento,
Indicada por
Operao que filtra as linhas de uma tabela
Operao unria
Opera sobre um nico conjunto de dados
Banco de Dados
Seleo ou Restrio
Ex.: Sexo = M (funcionrio)
Produz
conjunto
dos
Banco de Dados
Seleo + Projeo
Muitas vezes pode ser preciso combinar seleo com projeo
Exemplo: descobrir o nome completo e a data de admisso de todos os
Banco de Dados
Seleo + Projeo
Banco de Dados
Seleo + Projeo
Expresso:
Banco de Dados
10
Produto Cartesiano
Suponha agora que precisamos obter o nome completo, a data de
11
Produto Cartesiano
A tabela resultante possuir um nmero de colunas que igual soma das quantidades de
colunas das duas tabelas iniciais, e um nmero de linhas igual ao produto do nmero de suas
linhas.
Entretanto, a nica forma primitiva de que dispomos para fundir informaes de duas
tabelas heterogneas para posterior processamento.
Banco de Dados
12
Produto Cartesiano
Ex.: NmFunc, DtAdm, VrSalrio ( funcionrio.CdCargo = cargo.CdCargo (funcionrio x cargo))
Banco de Dados
13
Produto Cartesiano
Banco de Dados
14
Produto Cartesiano
Banco de Dados
15
Banco de Dados
16
Unio: A B
Operao primitiva tambm requer como operandos tabelas unio-compatveis.
Produz como resultado uma tabela que contm todas as linhas da primeira tabela
originais, e tem um nmero de linhas que no mximo igual soma das linhas das
tabelas fornecidas como operandos
As linhas que so comuns a ambas as tabelas aparecem uma nica vez no
resultado
Banco de Dados
17
Operao A B = B A
Banco de Dados
18
Interseco: A B
Esta uma operao adicional que produz
conjuntos
A B =A (A B)
Banco de Dados
AB=(AB)(AB) (BA)
AB=(AB)((AB) ( BA) )
19
Juno: A |x| B
Operao que produz uma combinao entre as linhas de uma tabela com as linhas
da segunda tabela.
Isso faz com que os valores dos campos utilizados como critrio para a correspondncia entre as linhas
aparea duplicado, j que um vem da primeira tabela e outro da segunda
Banco de Dados
20
Renomeao: <novo_nome> ( A )
Operao unria primitiva redefine o nome de uma tabela em um
determinado contexto.
til para auto-relacionamentos, onde precisamos fazer a juno de uma
tabela com ela mesma, e nesse caso cada verso da tabela precisa receber
um nome diferente da outra.
Representada pelo smbolo
Banco de Dados
21
Diviso: A B
uma operao adicional que produz como resultado a
cargos:
NmDepto, CdCargo ( depto |x| funcionrio ) CdCargo ( cargo )
Banco de Dados
22
Atribuio: varivel A
Permite que o contedo de uma tabela seja atribudo
Banco de Dados
23
Resumo
Banco de Dados
24
Exerccios
Com base nas tabelas Funcionrio, Cargo e Depto, elaborar as expresses da
25
Operao de Seleo
Expresso:
<nome do atributo> <op de comparao> <valor>
<nome do atributo> <op de comparao> <nome do atributo>
Operadores de comparao aplicados em nmeros e datas:
=, <, >, , ,
Operadores de comparao aplicados em strings:
=,
Condies Booleanas tambm so vlidas
AND, OR, NOT
Banco de Dados
26
Operao de Juno
Pode-se aplicar expresses para determinar a condio
da juno:
<Relao 1> |X| R1.A1 = R2.A1 AND R1.A2 = R2.A2 <Relao 2>
R |X| <condio de juno> S
Banco de Dados
27
Operao de Diviso
TRS
Banco de Dados
28
Banco de Dados
Banco de Dados
29
Exerccios
1.
Banco de Dados
30
Exerccios
1. Recupere o nome dos empregados que trabalham no projeto 1 ou 10.
2. Recupere o nome do projeto, o nome do departamento que o projeto esta sendo
desenvolvido, o nome dos empregados que fazem parte do projeto e seus salrios.
3. Traga o nome do empregado, o nome dos filhos de cada empregado e a data de
nascimento dos mesmos.
4. Faa uma lista dos cdigos dos projetos que envolvam um empregado cujo ltimo
nome seja 'Smith', mesmo que esse trabalhador seja o gerente do departamento que
controla o projeto.
5. Recupere o nome dos empregados no tenham dependentes.
6. Liste os nomes dos gerentes que tenham pelo menos um dependente.
Banco de Dados
31
Exerccios
1. Recupere o nome dos empregados que trabalham no projeto 1 ou 10.
2. Recupere o nome do projeto, o nome do departamento que o projeto esta sendo
desenvolvido, o nome dos empregados que fazem parte do projeto e seus salrios.
3. Traga o nome do empregado, o nome dos filhos de cada empregado e a data de
nascimento dos mesmos.
4. Faa uma lista dos cdigos dos projetos que envolvam um empregado cujo ltimo
nome seja 'Smith', mesmo que esse trabalhador seja o gerente do departamento que
controla o projeto.
5. Recupere o nome dos empregados no tenham dependentes.
6. Liste os nomes dos gerentes que tenham pelo menos um dependente.
Banco de Dados
32
Banco de Dados
33
Sintaxe:
formato:
Onde:
<colunas agrupadoras>: conjunto com nenhuma ou mais colunas a serem utilizadas para agrupamento
<colunas projetadas>: conjunto com nenhuma ou mais colunas que sero retornadas pela expresso.
o
As funes projetadas podem tambm ser renomeadas, atravs da adio de uma seta seguida do novo nome,
fazendo com que a relao resultante tenha como nome de coluna o novo nome atribudo.
<Relao>: uma relao da lgebra relacional que possui as colunas utilizadas na lista de colunas
projetadas e na lista de funes agregadoras.
Banco de Dados
34
Exemplo:
funo tenha sido informada, a tupla ser composta apenas pelos valores resultantes
do agrupamento. Caso contrrio, a nova tupla ser composta pelas:
Colunas projetadas.
Aplicao das funes agrupadoras ao grupo. No exemplo, para cada grupo, a coluna C2
ser somada, produzindo o valor da nova tupla.
Banco de Dados
35
Outros Exemplos:
C3
coluna C3.
MAX(C3) (R1):
C1
36
Banco de Dados
Banco de Dados
37
SUM(salario) (EMPREGADO)
38
39
Exerccios
1. Recupere o nome e a data de nascimento do empregado mais velho.
2. Liste o nome do projeto e quantidade total de horas trabalhadas em cada
um deles.
3. Liste o nome do empregado e quantos dependentes cada um deles possui.
4. Recupere o nome do departamento e por quantos projetos cada um deles e
responsvel.
5. Liste o nome do departamento e a media salarial para de cada um.
6. Recupere a quantidade de empregados do sexo Masculino.
Banco de Dados
40
Trs tipos
juno externa esquerda (left [outer] join)
Banco de Dados
41
Sintaxe:
(Relao) ]X[ (predicado) (Relao)
Onde:
Predicado: conjunto de expresses lgicas que devem ser satisfeitas para uma linha que faa
lgicos e relacionais.
Banco de Dados
42
Exemplo:
Banco de Dados
43
Banco de Dados
Banco de Dados
44
Exerccio:
Liste o nome dos empregados, o nome do dependente e
Banco de Dados
45