Как составить запрос с помощью языка реляционной алгебры?

Даны отношения, моделирующие работу банка и его филиалов. Клиент может иметь несколько счетов, при этом они могут быть размещены как в одном, так и в разных филиалах банка. В отношении R1 содержится информация обо всех клиентах и их счетах в филиалах нашего банка. Каждый клиент, в соответствии со своим счетом, может рассчитывать на некоторый кредит от нашего банка, сумма допустимого кредита также зафиксирована.

R1
ФИО клиента № филиала № счета Остаток Кредит

R2
№ филиала Район

С использованием языка реляционной алгебры составить запросы, позволяющие выбрать:
1. Филиалы, клиенты которых имеют счета с остатком, превышающим $1000.
2. Клиентов, которые имеют счета во всех филиалах данного банка.
3. Клиентов, которые имеют только по одному счету в разных филиалах банка. То есть в общем у этих клиентов может быть несколько счетов, но в одном филиале не более одного счета.
4. Клиенты, которые имеют счета в нескольких филиалах банка, расположенных только в одном районе.
5. Филиалы, которые не имеют ни одного клиента.
6. Филиалы, которые имеют клиентов с остатком на счету 0 (ноль).
7. Филиалы, у которых есть клиенты с кредитом, превышающим остаток на счету в 2 раза.

Составить запрос на sql у меня более-менее получилось, а вот с помощью реляционной алгебры нет.
Запрос реляционной алгебры должен выглядеть например так

"R4 = (R2[R3Номер группы = R2.НомерГруппы ^ R3.Дисциплина = «БД»] R3)[ФИО]"

Например вопрос 2 - Клиентов, которые имеют счета во всех филиалах данного банка
На sql -
SELECT ФИОклиента   FROM r1 GROUP BY ФИОклиента   HAVING COUNT(DISTINCT Nфилиала ) = (SELECT COUNT(DISTINCT Nфилиала) FROM r2)

А с помощью реляционной алгебры не знаю как выразить вопрос 2.
  • Вопрос задан
  • 5195 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы