Правильно ли эта реляционная алгебра?

104
8

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

branch (branch_name, branch_city, assets)
customer (customer_name, customer_street, customer_city)
account (account_number, branch_name, balance)
loan (loan_number, branch_name, amount)
depositor (customer_name, account_number)
borrower (customer_name, loan_number)

Мне интересен вопрос: "Найдите имена всех клиентов, у которых есть кредит более 5000 фунтов стерлингов, но нет счета с балансом более 500 фунтов стерлингов".

Исходный код:

π customer_name
(σ amount > 5,000 ^ balance < 500
(borrower ⋈ loan ⋈ depositor ⋈ account))

Редактирование: взглянув на совет Эрвина Смута, я внесла поправки в свой код:

π customer_name
(σ amount > 5,000 (borrower ⋈ loan))
-
π customer_name
(σ balance < 500 (depositor ⋈ account))

Это верно?

спросил(а) 2012-11-20T00:32:00+04:00 8 лет, 3 месяца назад
1
Решение
95

Я просто отвечу на свой вопрос, поскольку теперь я знаю, что это правильно. Спасибо всем, кто помог:

π customer_name (σ amount > 5,000 (borrower ⋈ loan))    
-
π customer_name (σ balance < 500 (depositor ⋈ account))

ответил(а) 2012-11-20T20:51:00+04:00 8 лет, 3 месяца назад
74

Нет, это неправильно. У фразы "но [нет учетной записи..." указывается, что вы должны использовать оператор реляционной разницы где-нибудь.

ответил(а) 2012-11-20T00:50:00+04:00 8 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема