Sei sulla pagina 1di 21

Banco de Dados

Aula 6 – Álgebra Relacional (Parte 1)

Professora Mariangela Molina

Linguagem de Consulta Formal

 Linguagens de consulta formal


linguagens nas quais o usuário
solicita informações à base de
dados
 São linguagens de mais alto nível
que as linguagens de programação

1
Linguagem de Consulta Formal

 A Álgebra Relacional é uma


linguagem de consulta formal
procedimental, ou seja, o usuário
dá as instruções ao sistema para
que ele realize uma seqüência de
operações para calcular o resultado
desejado

Linguagem de Consulta Formal

 A Álgebra Relacional define


operadores para atuar nas relações
assim como a álgebra convencional
define operadores para atuar na
matemática, com a finalidade de se
obter o resultado desejado

2
Linguagem de Consulta Formal

 A forma com que esta linguagem de


consulta – a álgebra relacional –
trabalha é utilizar uma ou mais
relações como entrada de dados,
produzindo uma nova relação como
resultado das operações

Linguagem de Consulta Formal

 A álgebra relacional é muito


importante por diversas razões:
 Primeira, porque provê um fundamento
formal para operações do modelo
relacional
 Segunda, e talvez a mais importante,
porque é usada como uma base para
implementar e otimizar as consultas
em sistemas de gerenciadores de
banco de dados relacional (SGBDRs)

3
Linguagem de Consulta Formal
 Terceira,alguns de seus conceitos são
incorporados na linguagem de
consulta-padrão SQL para os SGBDRs

O Cálculo Relacional

 Enquanto a álgebra define um


conjunto de operações para o
modelo relacional, o cálculo
relacional provê uma notação
declarativa de nível superior para a
especificação de consultas
relacionais

4
O Cálculo Relacional

 Uma expressão de cálculo relacional


cria uma nova relação, que é
especificada em termos de variáveis
que abrangem as linhas das
relações armazenadas no banco de
dados (em cálculos de tuplas) ou as
colunas das relações armazenadas
(em cálculo de domínio)

O Cálculo Relacional

 Em uma expressão de cálculo, não


há ordem nas operações para
especificar como recuperar o
resultado de uma consulta — uma
expressão de cálculo especifica
apenas qual informação o resultado
deveria conter

5
O Cálculo Relacional

 O cálculo relacional é importante


porque tem uma sólida base na
lógica matemática e porque a SQL
(structured query language) possui
muitos de seus fundamentos no
cálculo relacional de tupla

Operações Relacionais

 A álgebra relacional
freqüentemente é considerada
como uma parte do modelo
relacional de dados e suas
operações podem ser divididas em
dois grupos, vistos a seguir

6
Operações Relacionais
 Um grupo inclui um conjunto de
operações da teoria de conjunto
matemática — essas operações são
aplicadas porque cada relação é definida
como um conjunto de tuplas no modelo
relacional formal
 Os conjuntos de operações incluem
UNIÃO (UNION), INTERSEÇÃO
(INTERSECTION), DIFERENÇA DE
CONJUNTO (SET DIFFERENCE) e
PRODUTO CARTESIANO (CROSS
PRODUCT)

Operações Relacionais

 O outro grupo consiste em


operações desenvolvidas
especificamente para os bancos de
dados relacionais
 Estas operações incluem
RESTRIÇÃO (SELECT), PROJEÇÃO
(PROJECT) e JUNÇÃO (JOIN), entre
outras

7
Operações Relacionais Unárias

 As operações relacionais unárias


são operações que trabalham com
apenas uma relação
 São elas:
 Restrição (Select)
 Projeção (Project)

Operações Relacionais Unárias -


Restrição

 A operação SELECT é usada para


selecionar um subconjunto de
tuplas de uma relação que satisfaça
uma condição de seleção
 Uma operação que pode ser
considerada SELEÇÃO é um filtro
que mantém apenas aquelas tuplas
que satisfaçam uma condição de
qualificação

8
Operações Relacionais Unárias -
Restrição

 A operação SELECT também pode


ser visualizada como um
particionamento horizontal da
relação em dois conjuntos de tuplas
— aquelas tuplas que satisfazem a
condição e são selecionadas, e as
tuplas que não satisfazem a
condição e são descartadas

Operações Relacionais Unárias -


Restrição

 A operação SELECT é indicada por


σ <operação de seleção>(R)
onde:
 σ é usado para indicar o operador de
seleção
 condição de seleção é uma expressão
booleana, especificada nos atributos da
relação R
 R é uma expressão de álgebra relacional
cujo resultado é uma relação

9
Operações Relacionais Unárias -
Restrição

 Exemplo: Retornar todos os


empregados da relação
Empregados, cujo salário seja maior
que 3.000
σ salario>3000 (Empregados)

Operações Relacionais Unárias -


Restrição

A expressão booleana especificada


em <condicao de selecao> é
composta por um número de
cláusulas da forma:
<nome do atributo> <op de
comparacao> <valor da constante>
ou
<nome do atributo> <op de
comparacao> <nome do atributo>
onde:

10
Operações Relacionais Unárias -
Restrição

 Nome do atributo: é o nome de um


atributo de R
 Op de comparação: corresponde a
um dos operadores {=, <, <=, >,
>=, ^}
 Valor da constante: refere-se a um
valor constante do domínio do
atributo

Operações Relacionais Unárias -


Restrição

 As cláusulas podem ser conectadas


arbitrariamente pelos operadores
booleanos AND, OR e NOT para
formar uma condição de seleção
geral

11
Operações Relacionais Unárias -
Restrição

 Por exemplo, para selecionar as tuplas de


todos os empregados que trabalham no
departamento 4 e recebem acima de
2500, ou trabalham no departamento 5 e
recebem acima de 3000, podemos
especificar a seguinte operação SELECT:
σ(Depto#=4 AND Salario>2500) OR
(Depto#=5 AND Salario>3000)
(EMPREGADOS)

Operações Relacionais Unárias -


Projeção

 A operação PROJEÇÃO seleciona


certos atributos da relação em
detrimento de outros
 Assim, se estivermos interessados
apenas em alguns atributos de uma
relação, usamos a operação
PROJEÇÃO para ressaltá-los

12
Operações Relacionais Unárias -
Projeção

 O resultado da operação PROJEÇÃO


pode, portanto, ser visualizado
como um particionamento vertical
da relação em duas relações: uma
com as colunas necessárias
(atributos) para conter o resultado
da operação e a outra com as
colunas descartadas

Operações Relacionais Unárias -


Projeção

 Por exemplo, para listar o primeiro,


o último nome e o salário de cada
empregado da relação Empregados,
usamos a operação PROJEÇÃO
como segue:
π UNOME,PNOME,SALARIO
(EMPREGADOS)
onde:

13
Operações Relacionais Unárias -
Projeção

 π:é o símbolo usado para representar a


operação PROJEÇÃO
 Lista de atributo:representa a lista dos
atributos desejados entre aqueles da
relação R
 R: é uma expressão da álgebra relacional
cujo resultado é uma relação
 O resultado da operação PROJEÇÃO tem
apenas os atributos especificados na
<lista de atributo>, na mesma ordem em
que eles aparecem na lista
 Portanto, seu grau é igual ao número de
atributos na <lista de atributo>

Operações Relacionais Unárias -


Projeção

 Se a lista de atributos incluir apenas os


atributos de R que não forem chave, é
provável que ocorram tuplas repetidas
 A operação PROJEÇÃO remove quaisquer
tuplas repetidas, assim, o resultado da
operação PROJEÇÃO é um conjunto de
tuplas e, portanto, uma relação válida
 Isso é conhecido como eliminação de
repetições

14
Operações Relacionais Unárias -
Projeção

 Por exemplo, considere a seguinte


operação PROJEÇÃO:
π SEXO, SALARIO (EMPREGADO)
 Embora a combinação de valores
<F, 25000> apareça duas vezes na
relação EMPREGADO, a tupla
aparece apenas uma vez na relação
resultante

Operações Relacionais Unárias -


Projeção

 O número de tuplas em uma


relação resultante de uma operação
PROJEÇÃO é sempre menor ou igual
ao número de tuplas em R
 Se a lista escolhida for uma
superchave de R — isto é, incluir
alguma das chaves de R —, a
relação resultante terá o mesmo
número de tuplas que R

15
Sequências de Operações
 Em geral, podemos querer aplicar
diversas operações de álgebra
relacional, uma após a outra
 Podemos fazê-lo de dois modos
distintos:
 Podemos escrever as operações como
uma única expressão de álgebra
relacional, pelo aninhamento das
operações
 Ou podemos aplicar uma operação por
vez e criar relações de resultados
intermediários

Sequências de Operações

 Se optarmos pela segunda forma,


devemos dar nomes às relações que
envolvem os resultados
intermediários
 Vamos analisar o exemplo a seguir

16
Sequências de Operações
 Para recuperar o primeiro nome, o
último nome e o salário de todos os
empregados que trabalham no
departamento número 5, devemos
aplicar uma operação SELECT e
uma PROJEÇÃO
 Podemos escrever uma única
expressão de álgebra relacional
como segue:
π PNOME, UNOME, SALARIO (σ
Depto#=5(EMPREGADO))

Sequências de Operações

 Alternativamente, podemos mostrar


explicitamente a seqüência de
operações, dando um nome para
cada relação intermediária:
 DEP5_EMPS <- σ
Depto#=5(EMPREGADO)
 RESULTADO <- π PNOME, UNOME
SALARIO(DEP5_EMPS)

17
Sequências de Operações

 Freqüentemente, é mais fácil


quebrar uma seqüência de
operações especificando as relações
com resultados intermediários que
escrever uma única expressão de
álgebra relacional

Renomenando Atributos
 Essa técnica é usada para renomear os
atributos nas relações intermediárias e de
resultado
 Isso pode ser útil na conexão com
operações mais complexas, como UNIÃO
(UNION) e JUNÇÃO (JOIN)
 Para renomear os atributos em uma
relação, simplesmente listamos os novos
nomes de atributos entre parênteses

18
Renomenando Atributos
 Se nenhum rename for aplicado, os
nomes dos atributos na relação
resultante de uma operação SELECT
serão os mesmos da relação
original, e na mesma ordem
 Para uma operação PROJEÇÃO sem
rename, a relação resultante terá os
mesmos nomes de atributos que a
lista projetada, e na mesma ordem
em que eles aparecem na lista

Renomenando Atributos
 Podemos também definir uma
operação RENAME formal — que
pode renomear ou o nome da
relação, ou os nomes dos atributos,
ou ambos — de uma maneira
 A operação geral RENAME, quando
aplicada a uma relação R de grau n,
é indicada por qualquer uma das
três formas seguintes:

19
Renomenando Atributos

 ρS(B1, B2.....Bn)(R) OU ρS(R) OU ρ


(B1,B2.....BN)(R)
onde:
 O símbolo ρ é usado para indicar o
operador RENAME
 O S indica o nome da nova relação
 B1, B2, ..., Bn são os novos nomes
dos atributos

Renomenando Atributos
 A primeira expressão renomeia
ambos, a relação e seus atributos
 A segunda expressão renomeia
apenas a relação
 A terceira expressão renomeia
somente os atributos
 Se os atributos de R são (A1, A2,
..., An) nessa ordem, então cada A;
será rebatizado como B;

20
Renomenando Atributos

 Exemplo:
ρ TEMP (σDepto#=5(EMPREGADO))
ρ (PRIMEIRONOME, ULTIMONOME,
SALÁRIO) (π PNOME, UNOME,
SALARIO(TEMP))

21

Potrebbero piacerti anche