Buscar

2018 02 19 20 21 03 Aula 3A Álgebra Relacional

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Álgebra Relacional
Professor: Daniel Pimentel
Banco de Dados
Definição
A álgebra relacional é uma linguagem de consulta procedural. 
Consiste em um conjunto de operações que tomam uma ou duas relações (tabelas) como entrada e produzem uma nova relação como resultado. 
Inclui um conjunto de operações, classificadas como fundamentais e não fundamentais.
Operações da AR
As operações fundamentais da álgebra relacional são: 
Unárias:
selecionar
projetar
renomear
Binárias:
produto cartesiano
união
diferença de conjuntos. 
As operações não fundamentais são usadas para simplificar consultas, considerando que uma operação não fundamental engloba consultas fundamentais. 
Operações da AR
Operações Fundamentais
Consideremos o seguinte esquema para exemplos futuros:
Agencias (CodigoAg, NomeAg, CidadeAg)
Clientes (CodigoCli, Nome, rua, cidade)
Depositos (CodigoAg, NumeroCont, CodigoCli, saldo)
	CodigoAg referencia Agencias
	CodigoCli referencia Clientes
Emprestimos (CodigoAg, CodigoCli, NumeroEmp, quantia)
	CodigoAg referencia Agencias 
	CodigoCli referencia Clientes
Operação Selecionar
A operação selecionar seleciona tuplas (linhas) que satisfazem a um dado predicado. Usamos a letra minúscula grega sigma (σ) para representar a seleção. O predicado aparece subscrito em σ. A relação argumento (entrada) aparece entre parênteses, seguindo o σ.
σ<predicado>(Relação)
Operação Selecionar
Selecionar as tuplas da relação empréstimo em que o código da agência é 0662, escreve-se:
σCodigoAg=0662(Empréstimos)
Encontrar todas as tuplas em que a quantia emprestada seja maior que 1200.
σquantia >1200(Empréstimos)
As comparações são permitidas, usando =, ≠,<, ≤, > e ≥ e os conectivos E (^) e OU (v).
Operação Projetar
A operação projetar é uma operação unária que retorna sua relação argumento, com certas colunas deixadas de fora. A projeção é representada pela letra grega pi (π).
π<lista de atributos>(Relação)
Operação Projetar
Suponha que desejemos uma relação mostrando os clientes e as agências nas quais eles tomaram empréstimos, mas não nos importamos com a quantia e o número do empréstimo. Escrevemos:
πCodigoAg,CodigoCli(Emprestimos)
Encontre todos os clientes (Nome) que moram em “Aracruz”. Devemos fazer uma seleção de todos os clientes que moram em Aracruz e, em seguida, projetar o nome desses clientes.
π Nome(σClientes.cidade=”Aracruz” (Clientes))
Oper. Produto Cartesiano
A operação produto cartesiano, representada por (X) é capaz de combinar informações a partir de diversas relações. Trata-se de uma operação binária. Essa operação nos mostra todos os atributos das relações envolvidas.
(Relação1 Χ Relação2)
Oper. Produto Cartesiano
Para selecionarmos todos os nomes dos clientes que possuam empréstimo na agência cujo código é 0662, escrevemos:
π Nome (σCodigoAg=0662 ^ Emprestimo.CodigoCli = Clientes.CodigoCli (Emprestimos X Clientes))
Operação União
A operação união de conjuntos, representada por (U), permite-nos encontrar tuplas que estão em uma das relações envolvidas. 
(Relação1 U Relação2)
Operação União
Selecionar todos os clientes que possuam depósitos, empréstimos, ou ambos, na agência 051.
πNome (σCodigoAg=”051” ^ Depositos.CodigoCli = Clientes.CodigoCli (Depositos X Clientes)) 
U
πNome (σCodigoAg=”051” ^ Emprestimos.CodigoCli = Clientes.CodigoCli (Emprestimos X Clientes))
Uma vez que as relações são conjuntos, as linhas duplicadas são eliminadas.
Oper. Diferença de Conjuntos
A operação diferença de conjuntos, representada por (-), é uma operação binária e nos permite encontrar tuplas que estão em uma relação e não em outra. A expressão R - S resulta em uma relação que contém todas as tuplas que estão em R e não em S.
(Relação1 - Relação2)
Oper. Diferença de Conjuntos
Encontrar todos os clientes que possuam um depósito, mas não possuem um empréstimo na agência 051.
πNome (σCodigoAg=”051” ^ Depositos.CodigoCli = Clientes.CodigoCli (Depositos X Clientes))
-
πNome (σCodigoAg=”051” ^ Emprestimos.CodigoCli = Clientes.CodigoCli (Emprestimos X Clientes))
Operação Renomear
A operação renomear, representada pela letra grega Rô (ρ), é necessária sempre que uma relação aparece mais de uma vez em uma consulta. Ela faz uma cópia da relação original.
ρ NomeNovo (Relação)
Operação Renomear
Encontre todos os clientes que moram na mesma rua e cidade que João.
Podemos obter a rua e a cidade de João da seguinte forma:
t ← πrua, cidade (σNome=”João” (Clientes))
Entretanto, para encontrar outros clientes com essa rua e cidade, devemos referir-nos à relação Clientes pela segunda vez. Perceba que inserir novamente uma relação clientes na consulta, gerará ambigüidade. Por isso, deve-se renomeá-la.
πClientes2.nome (σClientes.cidade = Clientes2.cidade ^
 Clientes.rua = Clientes2.rua (t X ρClientes2 (Clientes))

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais