Baixe o app para aproveitar ainda mais
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))
Compartilhar