Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 3º
ÁLGEBRA RELACIONAL
Objetivos de aprendizagem
Vamos para um exemplo. Vamos escrever uma consulta SELECT NOMEVEND, SALARIO FROM VENDEDOR
que seleciona apenas os vendedores que ganham acima de WHERE SALARIO > 600 AND CODSETOR = 2;
600 reais. Em álgebra relacional podemos escrever a seguinte
consulta: NOMEVEND SALARIO
Se você recordar, nós falamos que o resultado de uma JOÃO FLORISVALDO JESUS 800
consulta escrita em álgebra relacional é uma relação, que pode
EDILSON NOGUEIRA 800
ser reutilizada em outra consulta. Segundo isso, podemos
escrever em uma mesma linha, uma mesma consulta que
E se quisermos renomear as colunas da relação? Para isso,
filtra tuplas e seleciona quais colunas deverão ser exibidas.
temos o operador renomeação, representada pela letra grega
Em outras palavras, podemos usar mais de um operador na
Rô (Ʊ). Ela possui uma sintaxe similar a da projeção, onde
mesma consulta.
indicamos os novos nomes das colunas, mas vale lembrar que
Para demonstrar isso, vamos escrever uma consulta que
222 Banco de Dados II 24
o número de colunas a ser informado deve corresponder com MATA_CUPIM e PEDIDOS_RANDAP, teremos as três tuplas
o número de colunas da relação a ser renomeada. juntas.
Se quisermos renomear as colunas da nossa consulta, Assim, vamos ao exemplo:
podemos escrever da seguinte forma:
PEDIDOS_MATA_CUPIM PEDIDOS_RANDAP
ȡ (NOME_DO_VEND, VALOR_SALARIO) (ʌ NOMEVEND, Que é equivalente ao seguinte código:
SALARIO (ı SALARIO > 600 V CODSETOR = 2
(VENDEDOR))) SELECT * FROM ITEMPEDIDO WHERE CODPROD
= 1 UNION SELECT * FROM ITEMPEDIDO WHERE
Isso é equivalente a seguinte consulta SQL: CODPROD = 3;
SELECT NOMEVEND AS NOME_DO_VEND, SALARIO AS
QTDADE NUMPED CODPROD
VALOR_SALARIO FROM VENDEDOR WHERE SALARIO
> 600 AND CODSETOR = 2; 1 1 1
NOME_DO_VEND VALOR_SALARIO 1 1 3
Com essas consultas em mãos, podemos fazer os nossos O IN é mais um operador presente no MySQL. De um lado,
exemplos. O operador união, representado pelo símbolo , colocamos as colunas que desejamos comparar, e, do outro, uma
retorna todas as tuplas que estão nas duas relações indicadas faixa determinada de valores ou uma consulta que gere resultados.
pelo operador. Assim, se aplicarmos as relações PEDIDOS_ Ele vai considerar como verdadeiro as tuplas cujos valores pertençam
25 223
a faixa que foi declarada no segundo argumento. 3.2 - Operadores de junção (Joins)
Nesse caso, declaramos uma consulta em que ȴltramos as tuplas
cujos valores de QTDADE e NUMPED correspondam àquelas Antes de mostrarmos o que são os operadores de junção,
tuplas que tenham como código de pedido igual a 3. Através disso, vamos mostrar o que é o operador Produto Cartesiano,
simulamos a operação de Intersecção. representado pelo X. Ele faz uma combinação de cada
Para saber mais, consulte a documentação oȴcial (em inglês): tupla da primeira relação com cada tupla da segunda relação.
https:dev.mysql.comdocrefman5.6encomparison-operators. Vejamos como funciona, realizando o produto cartesiano
html#function_in entre as tabelas VENDEDOR e SETOR.
A primeira consulta não gera nenhum resultado, pois 1 ANTONIO 500 1 1 JARDIM
não temos nenhuma tupla que esteja exclusivamente na tupla CARLOS DA
PEDIDOS_MATA_CUPIM. Porém, se invertemos as relações, SILVA
teremos algum resultado: 1 ANTONIO 500 1 2 VENENOS
CARLOS DA
PEDIDOS_MATA_CUPIM ĸ ʌ QTDADE, NUMPED (ı SILVA
CODPROD = 1 (ITEMPEDIDO))
1 ANTONIO 500 1 3 PEÇAS
PEDIDOS_RANDAP ĸ ʌ QTDADE, NUMPED
CARLOS DA
(ı CODPROD = 3 (ITEMPEDIDO))
SILVA
PEDIDOS_RANDAP - PEDIDOS_MATA_CUPIM
1 ANTONIO 500 1 4 FERRAMENTAS
Figura 1 - Ilustração dos operadores de conjuntos e de seus possíveis 2 ROGERIO 550 1 4 FERRAMENTAS
resultados. Fonte: Disponível em: <https://rickscraftofaudit. SANTOS
ȴOHVZRUGSUHVVFRPVHWVSQJ! $FHVVR HP DJR
AMADO
Na nossa próxima seção, vamos explicar os operadores
elementares de junção.
224 Banco de Dados II 26
2 ROGERIO 550 1 5 VACINAS JOÃO FLORISVALDO
2 3 800 VENENOS
SANTOS JESUS
AMADO
2 11 EDILSON NOGUEIRA 800 VENENOS
2 ROGERIO 550 1 6 VESTUÁRIO
SANTOS PEDRO CELESTINO
3 4 1000 PEÇAS
AMADO VENÂNCIO
(...) 3 5 JAIR COSTA 1000 PEÇAS
AMARO
RODOLFO DOS
4 12 450 FERRAMENTAS
15 JADER DE 1500 4 3 PEÇAS SANTOS
AMARO
4 15 JADER DE AMARO 1500 FERRAMENTAS
15 JADER DE 1500 4 4 FERRAMENTAS
AMARO 5 7 DENIS OTTANO 600 VACINAS
Vale a pena
Retomando a aula