Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

35
Aula 03
ÁLGEBRA
RELACIONAL
1. A ÁLGEBRA RELACIONAL
A álgebra relacional é uma coleção de operações canônicas1 que são utilizadas 
para manipular as relações. Estas operações são utilizadas para selecionar tuplas de relações 
individuais e para combinar tuplas relacionadas de relações diferentes para especifi car uma 
consulta em um determinado banco de dados. O resultado de cada operação é uma nova 
relação, a qual também pode ser manipulada pela álgebra relacional.
1Canônico, substantivo masculino, relativo a canônes; conforme aos canônes; direito; código da igreja romana, horas canônicas; coleção de 
orações para diferentes horas do dia.
439
36
Estas operações de álgebra relacional são normalmente divididas em dois grupos, 
sendo o primeiro inclui um conjunto de operações da teoria de conjuntos. O segundo consiste 
de operações desenvolvidas unicamente para base de dados realcionais, tais como SELECT, 
PROJECT E JOIN.
1.1 A Operação SELECT
A operação SELECT é utilizada para selecionar um subconjunto de tuplas de uma 
relação, sendo que estas tuplas devem satisfazer uma condição de seleção. 
Sintaxe da operação SELECT é:
 
σ <condição de seleção> ( <nome da relação> )
A letra grega σ é utilizada para representar a operação de seleção; <condição de 
seleção> é uma expressão booleana aplicada sobre os atributos da relação e <nome da relação> 
é o nome da relação sobre a qual será aplicada a operação SELECT.
Todos os operadores relacionais são aplicados na cláusula SELECT ( <, >, =, <=, 
>=, <>), bem como os operadores booleanos (AND, OR, NOT). Sendo o comando SELECT 
unário, ou seja, só pode ser aplicado a uma única relação, não sendo possível aplicar a operação 
sobre tuplas de ralações distintas. Assim as condições de seleção não podem se aplicadas a 
mais que uma tupla. O Grau da relação resultante é o mesmo que a relação original.
Exemplo 17: Consulte quais os vendedores que possuem salário maior que R$ 
1500,00 reais.
Consulta = σ salário > 1.500,00 (VENDEDOR)
 
Exemplo 18: Consulte quais os vendedores que trabalham no setor 1 ou quais os 
vendedores que trabalham no setor 5
Consulta = σ(codsetor = “1”) .OR. (codsetor = “5”) (VENDEDOR)
 
Exemplo 19: Consulte quais os vendedores que trabalham no setor 1 e possuem um 
salário maior que 500 reais.
Consulta = σ(salário > 500) .AND. (codsetor = “1”) (VENDEDOR)
440
37
1.2 A Operação PROJECT
Pensando na relação como uma entidade, operador SELECT seleciona algumas 
linhas da entidade enquanto descartam outras. O operador PROJECT, por outro lado, 
seleciona certas colunas da entidade e descarta outras. Assim sendo ele seleciona um conjunto 
determinado de colunas de uma relação. Outra característica do PROJECT é que ele elimina 
tuplas repetidas.
Sintaxe da operação PROJECT é:
π <lista de atributos> (<nome da relação>)
A letra grega π representa a operação PROJECT, <lista de atributos> representa a 
lista de atributos que o usuário deseja selecionar e <nome da relação> representa a relação 
sobre a qual a operação PROJECT será aplicada.
Exemplo 19: onsulte o nome e email dos vendedores.
Consulta = π Nomevend, Dt. Nasc (VENDEDOR)
 
1.3 Seqüência das Operações
Em geral, existe a necessidade de se aplicar várias operações da álgebra relacional 
uma após a outra, veremos agora as relações intermediárias., onde as operações PROJECT e 
SELECT são utilizadas de forma combinada, permitindo que apenas determinadas colunas de 
determinadas tuplas possam ser selecionadas.
Sintaxe:
π <lista de atributos> (π<condição de seleção> (<nome da relação>))
 
441
38
Exemplo 20: Consulte o nome, setor e salário dos vendedores que recebem mais que 
dois mil reais. 
Consulta = π nomevend, codsetor, salario (σsalario > 2.000 (VENDEDOR))
1.4 Operações Matemáticas (Teoria dos Conjuntos)
Iremos agora ver o próximo tópico que são as operações matemáticas padrões sobre 
os conjuntos. Levando em consideração que as relações podem ser tratadas como conjuntos, 
podemos então aplicar um conjunto de operações matemáticas sobre as mesmas. Este conjunto 
de operações não é unário, ou seja, podem ser aplicadas sobre mais de uma entidade, porém, 
existe a necessidade das entidades possuírem tuplas exatamente do mesmo tipo.
Estas operações podem ser:
• UNIÃO - o resultado desta operação representada por R ∪ S é uma relação T que 
inclui todas as tuplas que se encontra em R e todas as tuplas que se encontra em S;
• INTERSECÇÃO - o resultado desta operação representada por R ∩ S é uma 
relação T que inclui as tuplas que se encontra em R e em S ao mesmo tempo;
• DIFERENÇA - o resultado desta operação representada por R ― S é uma relação 
T que inclui todas as tuplas que estão em R, mas não estão em S.
442
39
 Note que as operações UNIÃO E INTERSECCÃO são operações comutativas:
R ∪ S = S ∪ R, e R ∩ S = S ∩ R
Estas operações podem ser aplicadas a qualquer número de relações, e ambas são 
associativas: 
R ∪ (S ∪ T) = (R ∪ S) ∪ T, e R ∩ (S ∩ T) = (R ∩ S) ∩ T.
A operação DIFFERENCE não é comutativa:
R - S ≠ S - R.
Estaremos utilizando exemplos tirados do livro de C. J. Date para ilustrar os conceitos 
apresentados:
Entidade: EMPREGADO
Nome RG CIC Depto. RG Supervisor Salário
João Luiz 10101010 11111111 1 NULO 3.000,00
Fernando 20202020 22222222 2 10101010 2.500,00
Ricardo 30303030 33333333 2 10101010 2.300,00
Jorge 40404040 44444444 2 20202020 4.200,00
Renato 50505050 55555555 3 20202020 1.300,00
Entidade: PROJETO
Nome Número Localização
Financeiro 1 5 São Paulo
Motor 3 10 Rio Claro
Prédio Central 20 Campinas
Entidade: EMPREGADO_PROJETO
RG Empregado Número Projeto Horas
20202020 5 10
20202020 10 25
30303030 5 35
40404040 20 50
50505050 20 35
Exemplo 21: Selecione todos os empregados que trabalham no departamento número 2 
Vamos primeiro selecionar todos os funcionários que trabalham no departamento 
número 2.
Consulta1 = σdepto = 2 (EMPREGADO)
443
40
Vamos agora selecionar os supervisores dos empregados que trabalham no 
departamento número 2.
Consulta2 = πrg_supervisor (CONSULTA1)
Vamos projetar apenas o rg dos empregados selecionados:
Consulta3 = πrg(CONSULTA2)
Unido as tabelas:
Consulta4 = consulta2 ∪ consulta3
Exemplo 22: selecione todos os empregados que desenvolvem algum projeto e que 
trabalham no departamento número 2;
Vamos primeiro selecionar todos os empregados que trabalham em um projeto.
Consulta1 = πrg_empregado(EMPREGADO/PROJETO)
Tabela consulta2
RG Supervisor
10101010
20202020
Tabela consulta3
RG
20202020
30303030
40404040
Tabela consulta10
RG
20202020
30303030
40404040
10101010
Tabela consulta1
Nome RG CIC Depto. RG Supervisor Salário
Fernando 20202020 22222222 2 10101010 2.500,00
Ricardo 30303030 33333333 2 10101010 2.300,00
Jorge 40404040 44444444 2 20202020 4.200,00
444
41
Vamos agora selecionar todos os empregados que trabalham no departamento 2.
Consulta2 = πrg (σdepto = 2 (EMPREGADO))
Obtemos então todos os empregados que trabalham no departamento 2 e que 
desenvolvem algum projeto.
Consulta3 = consulta1 ∩ consulta2
Exemplo 23: selecione todos os usuários que não desenvolvem projetos;
Consulta1 = πrg_empregado (EMPREGADO/PROJETO)
Consulta2 = πrg (EMPREGADO)
Tabela consulta1
RG_Empregado
20202020
30303030
40404040
50505050
Tabela consulta2
RG
20202020
30303030
40404040
Tabela consulta3
RG
20202020
30303030
40404040
Tabela consulta1
RG Empregado
20202020
30303030
40404040
50505050
445
42
Consulta3 = CONSULTA1  CONSULTA2
1.5 Produto Cartesiano
O produto cartesiano é uma operação binária que combina todas as tuplas de duas 
tabelas. Diferente da operação união, o produto cartesiano não exige que as tuplas das tabelas 
possuam exatamente o mesmo tipo. O produto cartesiano permite então a consulta entre 
tabelas relacionadas utilizando uma condição de seleção apropriada. O resultado de um 
produto cartesiano é uma nova tabela formada pela combinação das tuplas das entidades 
sobre as quais aplicou-se a operação. 
O formato geraldo produto cartesiano entre duas tabelas R e S é:
R X S
Exemplo 24: Consulte e encontre todos os funcionários que desenvolvem projetos 
em Campinas;
Consulta1 = EMPREGADO/PROJETO X PROJETO
Tabela consulta2
RG
10101010
20202020
30303030
40404040
50505050
Tabela consulta3
RG
10101010
Tabela consulta1
RG Empregado Nº Projeto Nome Número Localização
20202020 5 Financeiro 1 5 São Paulo
20202020 5 Motor 3 10 Rio Claro
20202020 5 Prédio Central 20 Campinas
20202020 10 Financeiro 1 5 São Paulo
20202020 10 Motor 3 10 Rio Claro
20202020 10 Prédio Central 20 Campinas
30303030 5 Financeiro 1 5 São Paulo
30303030 5 Motor 3 10 Rio Claro
30303030 5 Prédio Central 20 Campinas
40404040 20 Financeiro 1 5 São Paulo
446
43
40404040 20 Motor 3 10 Rio Claro
40404040 20 Prédio Central 20 Campinas
50505050 20 Financeiro 1 5 São Paulo
50505050 20 Motor 3 10 Rio Claro
50505050 20 Prédio Central 20 Campinas
Vamos agora selecionar as tuplas resultantes que estão devidamente relacionadas 
que são as que possuem o mesmo valor em número do projeto e número e cuja localização 
seja ‘Campinas’.
Consulta2 = πrg_empregado, número (σ(número_projeto = número) .and. 
(localização = ‘Campinas’)(CONSULTA1))
1.6. Operação Junção
A operação junção atua de forma similar á operação produto cartesiano, porém, a 
tabela resultante conterá apenas as combinações das tuplas que se relacionam de acordo com 
uma determinada condição de junção. A forma geral da operação junção entre duas tabelas 
R e S é a seguinte:
R <condição de junção> S
Exemplo 25: Encontre todos os funcionários que desenvolvem projetos em 
Campinas;
Consulta1 = EMPREGADOS/PROJETOS número_projeto = número PROJETOS
Tabela consulta2
RG Número
40404040 20
50505050 20
x
x
Tabela consulta1
RG_Empregado Nº Projeto Nome Número Localização
20202020 5 Financeiro 1 5 São Paulo
30303030 5 Financeiro 1 5 São Paulo
40404040 20 Prédio Central 20 Campinas
50505050 20 Prédio Central 20 Campinas
Consulta2 = σ localização = ‘Campinas’ (CONSULTA1)
447
44
Tabela consulta2
RG_Empregado Nº Projeto Nome Número Localização
40404040 20 Prédio Central 20 Campinas
50505050 20 Financeiro 1 20 Campinas
ATIVIDADES 
As atividades referentes a esta aula estão disponibilizadas na ferramenta 
“Atividades”. Após respondê-las, envie-nas por meio do Portfólio- ferramenta do 
ambiente de aprendizagem UNIGRAN Virtual. Em caso de dúvidas, utilize as ferramentas 
apropriadas para se comunicar com o professor.
448

Mais conteúdos dessa disciplina