Você está na página 1de 7

219

Aula 3º

ÁLGEBRA RELACIONAL

Olá, pessoal, tudo bem?


Bem-vindos(as) novamente a nossa matéria Banco de Dados I. Na
terceira aula, veremos um conceito que é a base dos bancos de dados
relacionais atualmente: a Álgebra Relacional. Essa é uma linguagem formal
que define um conjunto de operações a serem feitas para recuperar os dados
presentes no banco de dados. Hoje, você saberá a importância de estudar
essa linguagem e como escrever consultas. O nome álgebra pode causar
tensão, mas vamos explicar o conteúdo da forma mais didática possível, para
que você entenda certinho como escrever as suas consultas.
E lembre-se de que qualquer dúvida você pode nos falar via quadro de
avisos. E também de fazer as atividades dessa aula. A sua participação é muito
importante para que nós possamos fazer uma matéria melhor.
Bons estudos!

Objetivos de aprendizagem

Ao término desta aula, vocês serão capazes de:

• entender o conceito de Álgebra Relacional;


• saber como escrever as consultas em Álgebra Relacional;
• conhecer os operadores de Álgebra Relacional.
220 Banco de Dados II 22
Na nossa próxima seção, vamos mostrar as primeiras
Seções de estudo consultas que podemos escrever com a Álgebra Relacional.
Nossos exemplos se basearam no mesmo modelo de dados
1. Introdução a Álgebra Relacional que utilizamos em nossas aulas anteriores.
2. Primeiras consultas em Álgebra Relacional
3. Outros operadores de Álgebra Relacional 2 - Primeiras consultas em Álgebra
Relacional
1 - Introdução a Álgebra Relacional O operador mais elementar que existe na Álgebra
Relacional é o operador projeção, sendo representado pela
Nas nossas aulas anteriores, vimos como escrever letra grega pi (ư). Ele serve para escolher quais colunas serão
consultas a banco de dados usando a Linguagem SQL, que é mostradas no resultado. É como escrevemos uma instrução
uma linguagem aceita pelos principais bancos de dados SELECT do SQL, indicando quais colunas queremos
relacionais do mercado. Mas antes da linguagem SQL existir, recuperar, sem nenhuma condição.
os pesquisadores no ramo da Ciência da Computação Sua sintaxe é esta:
desenvolveram formas de expressar consultas em banco de
dados. Uma dessas formas é a Álgebra Relacional. ʌ colunas (relaoão)
A Álgebra Relacional faz parte da teoria do modelo
Sempre lembrando que relação é uma tabela do nosso
relacional, foi desenvolvida em 1970 por Edgar Codd. Essa
banco de dados ou um resultado de uma operação anterior.
álgebra define um conjunto básico de operações para um
Assim, vamos para um exemplo. Se quisermos recuperar
banco de dados que é organizado sobre esse modelo. As
as colunas NUMPED e ENTREGA da tabela PEDIDO, basta
operações de Álgebra Relacional permitem que o usuário
apenas indicar a seguinte consulta:
especifique as solicitações de recuperação de dados, que são
chamadas de operações da álgebra relacional. ʌ NUMPED, ENTREGA (PEDIDO)
O resultado de uma recuperação é uma nova relação
que pode ter sido formada através de uma ou mais relações, Isso é equivalente a escrevermos isso em SQL:
que podem ser manipuladas por mais operadores da mesma
SELECT NUMPED, ENTREGA FROM PEDIDO;
álgebra. Uma sequência de operações forma uma expressão
da álgebra relacional, cujo resultado será uma relação
NUMPED ENTREGA
(ELMASRI; NAVATHE, 2011).
Assim, podemos entender que a Álgebra Relacional 1 5
define um conjunto de operadores que manipulam relações. 2 2
No nível mais elementar, são as tabelas. Esses operadores
geram novas relações, que podem ser manipulados pelo 3 10
mesmo conjunto de operadores, gerando novas relações. 4 20
Mas por que estamos aprendendo Álgebra Relacional?
5 2
Os autores Elmasri e Navathe nos dão uma resposta:
6 2
A álgebra relacional é muito importante por
diversos motivos. Primeiro, ela oferece um 7 10
alicerce formal para as operações do modelo 8 2
relacional. Segundo, e talvez mais importante,
ela é usada como base para a implementação 9 5
e otimização de consultas nos módulos de 10 5
otimização e processamento de consulta,
que são partes integrais dos sistemas de 11 20
gerenciamento de banco de dados relacional 12 10
(SGBDRs) (...). Terceiro, alguns de seus
conceitos são incorporados na linguagem de 13 1
consulta padrão SQL para SGBDRs. 14 1
Embora a maioria dos SGBDRs comerciais em
uso hoje não ofereça interfaces de usuário para 15 20
consultas da álgebra relacional, as operações
e funçħoes essenciais nos módulos internos Outro operador interessante é a seleção, que é
da maioria dos sistemas relacionais são representada pela letra grega sigma minúsculo (Ƴ). Sua sintaxe
baseadas nas operações da álgebra relacional. é similar ao operador projeção, mas tem uma diferença: seu
(ELMASRI; NAVATHE, 2011, p. 96) argumento aceita as condições que serão usadas para filtrar os
dados de uma relação.
Assim, podemos entender que boa base das consultas As condições podem ser escritas na notação matemática.
que escrevemos hoje em SQL vem dos conceitos que a Usaremos os operadores de comparação = (igual), 
Álgebra Relacional proporcionou.
23 221
(diferente), < (menor que), > (maior que), ” (menor igual que) filtra os vendedores do setor de código de número 2 e que
e • (maior igual que). Para concatenar duas ou mais condições, ganham acima de 600 reais, e que apenas queremos exibir o
usaremos os operadores V (equivalente ao operador lógico nome do vendedor e o seu salário. Para isso, escrevemos a
E, que retorna verdadeiro quando as duas condições são seguinte consulta:
verdadeiras) e ೷ (equivalente ao operador lógico OU, que
retorna verdadeiro quando uma das condições é verdadeira). ʌ NOMEVEND, SALARIO (ı SALARIO > 600 V
Assim, vamos para a sintaxe da nossa consulta: CODSETOR = 2 (VENDEDOR))

ı condioão (relaoão) Essa consulta é equivalente a essa outra, escrita em SQL:

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

ı SALARIO > 600 (VENDEDOR) JOÃO FLORISVALDO JESUS 800

Que é equivalente a seguinte consulta em SQL: EDILSON NOGUEIRA 800

SELECT * FROM VENDEDOR WHERE SALARIO > 600;


Ainda sobre essa consulta, temos outra forma de
escrevê-la, usando um operador que salva as consultas. Vamos
CODVEND NOMEVEND SALARIO CODSETOR demonstrar isso:
3 JOÃO FLORISVALDO JESUS 800 2 VENDEDORES_SETOR_2 ĸ (ı SALARIO > 600 V
PEDRO CELESTINO CODSETOR = 2 (VENDEDOR))
4 1000 3 ʌ NOMEVEND, SALARIO (VENDEDORES_SETOR_2)
VENÂNCIO
5 JAIR COSTA 1000 3 Sem nós explicarmos, você viu um novo operador. Essa
seta (ȸ) se chama um operador de atribuição. Ele serve para
6 ELIZA DOS ANJOS 700 4 armazenar as relações anteriores em uma variável para que
seja utilizada futuramente. É algo semelhante às variáveis,
10 FABIO BENDITO REIS 700 4
conceito que você vê em linguagens de programação.
11 EDILSON NOGUEIRA 800 2 Ainda sobre essa consulta, podemos também definir um
parâmetro de ordenação, indicando qual será a(s) coluna(s) que
15 JADER DE AMARO 1500 4 servirão como base para a ordenação dos dados. É indicado
pela letra grega tau minúscula (ƴ), e tem uma sintaxe similar ao
Agora queremos os vendedores do setor 2 que ganhem operador projeção, mas, ao invés de indicarmos quais colunas
acima de 600 reais. Para isso, escrevemos a seguinte consulta: serão visíveis, indicamos as colunas que serão usadas como
base da ordenação.
ı SALARIO > 600 V CODSETOR = 2 (VENDEDOR)
Assim, para classificarmos os vendedores da nossa
Essa consulta é equivalente a esta consulta SQL: consulta anterior apenas pelo valor do salário, escrevemos a
seguinte consulta:
SELECT * FROM VENDEDOR WHERE SALARIO > 600
AND CODSETOR = 2; IJ SALARIO (ʌ NOMEVEND, SALARIO (ı SALARIO
> 600 V CODSETOR = 2 (VENDEDOR)))

CODVEND NOMEVEND SALARIO CODSETOR Isto é equivalente a essa consulta em SQL:


JOÃO SELECT NOMEVEND, SALARIO FROM VENDEDOR
3 FLORISVALDO 800 2 WHERE SALARIO > 600 AND CODSETOR = 2 ORDER
JESUS BY SALARIO;
EDILSON
11 800 2
NOGUEIRA 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

JOÃO FLORISVALDO JESUS 800 1 3 3

EDILSON NOGUEIRA 800 O outro operador da teoria dos conjuntos é a intersecção


(ɀ), que retorna as tuplas que são comuns às duas relações. Se
E, com isso, finalizamos a nossa primeira parte do nosso aplicarmos esse operador às duas relações que temos salvas,
estudo de álgebra relacional. A seguir, vamos aprender mais não teríamos nada, pois não temos nenhuma tupla em comum
alguns operadores. entre as duas relações.
Assim, para demonstrar isso, precisamos fazer algumas
adaptações nas duas tuplas, suprimindo a coluna CODPROD.
3 - Outros operadores de Álgebra Aí teríamos uma tupla em comum às duas relações - a do
Relacional pedido 1. Vamos ao código.
Além dos operadores que aprendemos na seção anterior,
PEDIDOS_MATA_CUPIM ĸ ʌ QTDADE, NUMPED (ı CODPROD
a álgebra relacional define um conjunto de operadores que
= 1 (ITEMPEDIDO))
servem para manipular conjuntos. Vamos ver quais são?
PEDIDOS_RANDAP ĸ ʌ QTDADE, NUMPED
3.1 - Operadores de conjuntos (ı CODPROD = 3 (ITEMPEDIDO))
PEDIDOS_MATA_CUPIM ŀ PEDIDOS_RANDAP
Podemos aplicar teoria dos conjuntos a nossos conjuntos
(relações e tabelas) da álgebra relacional. Nessa subseção, Isto é equivalente ao seguinte SQL, que não é aceito
vamos ver como aplicar eles. ainda pelo MySQL, mas é aceito por vários bancos de dados
Suponhamos que queremos filtrar os números dos comerciais:
pedidos que têm em sua lista os produtos de número 1 (MATA
SELECT QTDADE, NUMPED FROM ITEMPEDIDO WHERE
CUPIM) e o de número 3 (RANDAP). Podemos filtrar isso na
CODPROD = 1 INTERSECT SELECT QTDADE, NUMPED
tabela ITEMPEDIDO, escrevendo as seguintes consultas:
FROM ITEMPEDIDO WHERE CODPROD = 3;
PEDIDOS_MATA_CUPIM ĸ ı CODPROD = 1 Mas podemos simular usando SQL puro. Para isso,
(ITEMPEDIDO) escrevemos o seguinte código:

QTDADE NUMPED CODPROD SELECT QTDADE, NUMPED FROM ITEMPEDIDO


WHERE CODPROD = 1 AND (QTDADE, NUMPED)
1 1 1
IN (SELECT QTDADE, NUMPED FROM ITEMPEDIDO
WHERE CODPROD = 3);
PEDIDOS_RANDAP ĸ ı CODPROD = 3
(ITEMPEDIDO)
QTDADE NUMPED
QTDADE NUMPED CODPROD
1 1
1 1 3

1 3 3 Para que serve o IN?

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.

Outro operador da teoria dos conjuntos que podemos VENDEDOR X SETOR


utilizar é a diferença (-), que retorna tudo que está em uma
relação, e que não está na outra relação. Ela não é uma Como ele realiza uma combinação das tuplas da primeira
operação comutativa, isto é, se invertemos as duas relações, relação com as tuplas da segunda relação, ela gera uma tabela
não teremos o mesmo resultado. Vamos aos exemplos: enorme. No nosso exemplo, foi gerada uma tabela de 105
registros, a qual reproduzimos uma parte a seguir:
PEDIDOS_MATA_CUPIM ĸ ʌ QTDADE, NUMPED (ı
CODPROD = 1 (ITEMPEDIDO)) CODVEND NOMEVEND SALARIO CODSETOR CODSETOR NOMESETOR
PEDIDOS_RANDAP ĸ ʌ QTDADE, NUMPED
1 ANTONIO 500 1 0 MEDICAMENTOS
(ı CODPROD = 3 (ITEMPEDIDO))
CARLOS DA
PEDIDOS_MATA_CUPIM - PEDIDOS_RANDAP
SILVA

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

QTDADE NUMPED CARLOS DA


SILVA
1 3 1 ANTONIO 500 1 5 VACINAS
CARLOS DA
Em SQL, definimos operações de diferença usando os SILVA
operadores EXCEPT e MINUS. Mas, o MySQL não suporta 1 ANTONIO 500 1 6 VESTUÁRIO
nativamente nenhum desses operadores. CARLOS DA
SILVA

2 ROGERIO 550 1 0 MEDICAMENTOS


SANTOS
AMADO

2 ROGERIO 550 1 1 JARDIM


SANTOS
AMADO

2 ROGERIO 550 1 2 VENENOS


SANTOS
AMADO

2 ROGERIO 550 1 3 PEÇAS


SANTOS
AMADO

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

15 JADER DE 1500 4 0 MEDICAMENTOS CRISTIANE ANTUNES


3 13 450 PEÇAS
AMARO ROCHA
15 JADER DE 1500 4 1 JARDIM
4 6 ELIZA DOS ANJOS 700 FERRAMENTAS
AMARO

15 JADER DE 1500 4 2 VENENOS 4 10 FABIO BENDITO REIS 700 FERRAMENTAS

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

15 JADER DE 1500 4 5 VACINAS


RONEI ARAÚJO
AMARO 6 8 400 VESTUÁRIO
BATISTA
15 JADER DE 1500 4 6 VESTUÁRIO
JAMES CHEN
AMARO 6 9 400 VESTUÁRIO
VILAREAL

Mas, por questões de desempenho, não é interessante


Outro tipo de junção que devemos falar é a junção
gerar uma tabela enorme para depois filtrarmos. Para
isso, temos os operadores de junção, que realiza duas interna, ou Inner Join (ྤ). Ele faz a mesma coisa da
operações de uma só vez: o produto cartesiano entre as junção natural, mas devemos explicar qual é a condição
duas relações e a filtragem de tuplas, que pode ser definido que deve ser usada para filtrar as tuplas. Assim, podemos
automaticamente ou através de nós, administradores de escrever a seguinte consulta, que seria equivalente à nossa
banco de dados. consulta anterior:
O primeiro tipo de junção é a junção natural,
representado por um asterisco (*). Ele faz a junção das VENDEDOR ྤ VENDEDOR.CODSETOR = SETOR.
duas relações especificadas, procurando um atributo CODSETOR SETOR
com nome em comum nas duas relações. Depois, filtra
os resultados, mostrando apenas as tuplas que possuem o Desse tipo de junção deriva outros três tipos. Vejamos
mesmo valor no atributo em comum. quais são:
Assim, podemos mostrar, em uma mesma relação, os
ʀ /HIW 2XWHU -RLQ funciona de forma semelhante
nomes dos vendedores e os nomes dos setores as quais
ao Inner Join, porém as tuplas da relação da esquerda
pertencem. Isso é fato, pois se você prestar atenção na
composição do modelo de dados verá que VENDEDOR e que não tiverem correspondência com a da relação direita
SETOR compartilham o mesmo atributo: CODSETOR, que serão mostradas, com as colunas faltantes recebendo o
representa o código do setor. Assim, poderemos escrever valor nulo.
a seguinte consulta: Exemplo: VENDEDOR ༔ VENDEDOR.CODSETOR =
SETOR.CODSETOR SETOR;
VENDEDOR * SETOR
ʀ5LJKW2XWHU-RLQ semelhante ao Left Outer Join,
Os resultados da consulta são mostrados a seguir: selecionando de forma au tomática todas as tuplas da
relação direta que não tiverem correspondência com as
CODSETOR CODVEND NOMEVEND SALARIO NOMESETOR tuplas da relação da esquerda.
ANTONIO CARLOS
Exemplo: VENDEDOR ༕ VENDEDOR.CODSETOR =
1 1 500 JARDIM SETOR.CODSETOR SETOR;
DA SILVA
ʀ )XOO 2XWHU -RLQ tenta fazer as correspondências
ROGERIO SANTOS
1 2 550 JARDIM das tuplas das duas relações fornecidas, porém, uma tupla
AMADO
que não corresponder na outra relação será selecionada.
CRISLAINE RUBENS
1 14 500 JARDIM Exemplo: VENDEDOR ༖ VENDEDOR.CODSETOR =
AZEVEDO
SETOR.CODSETOR SETOR.
27 225
2XWURVRSHUDGRUHVGHÉOJHEUD5HODFLRQDO
Nessa seção, aprendemos outros operadores de Álgebra
Relacional, e que podemos fazer operações de conjuntos
(União, Intersecção e Diferença) e de junção em nossas
relações, tornando as consultas ainda mais poderosas.

Vale a pena

Vale a pena ler


Figura 2 - Ilustração dos tipos de joins existentes. Fonte: Disponível em: <https://
arquivo.devmedia.com.br/artigos/Fernanda_sallai/sql_join/image001.jpg>.
Acesso em 25 ago. 2018.

DATE, C. J.. Introdução a sistemas de bancos de dados.


Vale lembrar que não mostramos o SQL das consultas,
8. ed. Rio de Janeiro: Campus, 2004.
pois dedicaremos um capítulo para explicar como funcionam
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas
as junções, além de explicarmos algumas funções que tiram
de banco de dados. 6. ed. São Paulo: Pearson Education do
proveito de consultas com mais de uma tabela.
Brasil, 2011.
Assim, finalizamos a nossa aula de operadores da álgebra
SILBERSCHATZ, Abraham; KORTH, Henry F.;
relacional. Na próxima aula, vamos mostrar outra notação de
SUDARSHAN, S. et al. Sistema de banco de dados. 6. ed.
consultas: o cálculo relacional. Até a próxima!
Rio de Janeiro: Campus; Rio de Janeiro: Elsevier, 2012.

Retomando a aula

Chegamos ao ȴnal da nossa terceira aula. Vamos Vale a pena acessar


recordar os pontos principais?
MACORATTI, José Carlos. SQL - Álgebra Relacional
- Operações Fundamentais - Conceitos básicos. Macoratti.
net, s.d. Disponível em: <http://www.macoratti.net/13/06/
,QWURGXomRDÉOJHEUD5HODFLRQDO sql_arcb.htm>. Acesso em: 26 ago. 2018.
REZENDE, Ricardo. Álgebra Relacional – Parte I.
Você viu que Álgebra Relacional faz parte da teoria do DevMedia, 2006. Disponível em: <https://www.devmedia.
modelo relacional, sendo desenvolvida em 1970 por Edgar com.br/algebra-relacional-parte-i/2663>. Acesso em: 26
Codd. Essa álgebra define um conjunto básico de operações ago. 2018.
para um banco de dados que é organizado sobre esse modelo.
As operações de Álgebra Relacional permitem que o usuário
especifique as solicitações de recuperação de dados, que são
chamadas de operações da álgebra relacional. Além disso, você Minhas anotações
viu que o resultado de uma recuperação é uma nova relação,
que pode ter sido formada através de uma ou mais relações,
que podem ser manipuladas por mais operadores da mesma
álgebra. Uma sequência de operações forma uma expressão
da álgebra relacional, cujo resultado será uma relação.
3ULPHLUDVFRQVXOWDVHPÉOJHEUD5HODFLRQDO

Nessa seção, aprendemos como escrever as primeiras


consultas em Álgebra Relacional, usando os operadores
projeção, seleção, atribuição, renomeação e ordenação de
dados. Esses operadores servem para escrever as consultas
mais elementares nessa notação.

Você também pode gostar