Pesquisa de álgebra relacional SQL
3 answers
Faça alguma pesquisa sobre álgebra relacional 8 principais operadores: restrição, projeção, produto cartesiano, união, interseção, diferença de conjuntos e divisão.
Para responder à tua pergunta:
loan(loan_number, branch_name, amount)
borrower(customer_name, loan_number)
Realizar uma junção natural de ambas as relações, aplicar a restrição (saldo inferior a 10000) e, em seguida, exibir os nomes com o uso de uma projeção. As duas seguintes expressões de álgebra relacional abaixo responderão à sua pergunta.
Ambos as expressões avaliam para a seguinte pesquisa SQL:
select customer_name
from borrower b, loan l
where b.loan_number=l.loan_number and amount>10000;
Disclaimer: eu não estou muito familiarizado com álgebra relacional.
O SQL pode ser rapidamente visto como a utilização de uma junção interna implícita e, em seguida, de um filtro emprestado.montante:
SELECT customer-name
FROM Borrower, Loan
WHERE Customer.loan-number = Loan.loan-number
AND Loan.amount > 10000
E depois traduzir isto para uma álgebra relacional, tendo em mente que os seguintes símbolos são os únicos necessários para isto:
A operação selecionada (σ): - identificar um conjunto de tuplas que faz parte de uma relação e extrair apenas essas tuplas. A operação seleccionar selecciona tuplas que satisfazer um determinado predicado ou condição.
A operação do projecto (Π): - devolve a sua relação de argumento com certos atributos excluídos.
Π customer-name (σ Borrower.loan-number=Loan.loan-number (σ Loan.amount>10000 (Borrower X Loan)))
SELECT
b.customer-name,
SUM(l.amount)
FROM
borrower b
JOIN loan l
ON b.loan-number = l.loan-number
GROUP BY
b.customer-name
HAVING
SUM(l.amount) < 10000