2016-03-22 5 views
3

У меня есть следующая реляционная схема базы данных:Преобразование запросов в реляционную алгебру

schema

Я хочу написать следующий запрос в реляционной алгебре без использования неравенства, дизъюнкции и конъюнкции в операторе выбора:

Перечислите наименования предметов, у которых были заявки в размере 50 долларов США, которые не продавались.

Я попытался написать его сам и придумал следующее (хотя не уверен, если это правильно или нет):

πiname(σprice=50((ITEM⨝BID) - πiid(SALE))) 

Я не знаю, как писать реляционную алгебру правильные символы, используя Stackoverflow, поэтому я просто использовал внешний калькулятор. Если моя попытка неясна, дайте мне знать, и я попытаюсь объяснить (или даже лучше, если кто-то может отредактировать вопрос, чтобы сделать его более понятным, что тоже замечательно).

ответ

2

На самом деле, я думаю, что ваша попытка почти хороша.

Я не уверен в размерах ваших таблиц при выполнении вычитания. По-моему, всегда нужно иметь такое же измерение. То есть:

π iname цена = 50 ((ITEM⨝BID) - π н.о.р. (ITEM⨝SALE)))

Прошу подтверждения. Но, на мой взгляд, this is how we do.

Дело в том, что у StackOverflow нет инструмента, такого как Mathjax, чтобы писать хорошие уравнения реляционной алгебры, даже если они являются частью тем сайта. The debate on wehter to implement Latex has started three years ago. Чтобы написать правильную реляционную алгебру, вы должны использовать <sub></sub> специально для суб или добавить изображение латекса из math.stackexchange.com

Кроме того, даже если это вопрос по теме на SO, чтобы получить больше ответов, вы должны рассмотрите вопрос о таких типах вопросов на Database administrators site. Мы хорошие парни, и они связаны с реляционной алгеброй, реляционным исчислением.

+0

Ах, размеры обеих таблиц одинаковы, когда вычитание имеет смысл. Считаете ли вы, что это может повлиять на ответ в любом случае? – cp101020304

+0

Не уверен, я прошу дважды проверить, что я сказал. – Marine1

Смежные вопросы