2014-10-11 3 views
0

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

EMPLOYEE = {id, name, phone} with id PK 
COURSE = {course_no, title, subject} with course_no PK 
COMPLETED = {course_no, student_id, grade, semester} with {course_no,id,semester} PK 

Вопрос пошел: Перечислите пары сотрудников, которые прошли те же курсы и всегда законченные эти же курсы в тех же года, и никогда не получали класс «D» в любом из этих курсов. Список каждой пары?

Если кто-то может пролить некоторый свет, это было бы здорово.

ответ

0

В принципе, вы сначала создаете запрос, который объединяет таблицы вместе, чтобы сформировать желаемый список свойств для каждого сотрудника.

Затем вы копируете эти два запроса и присоединяетесь к результатам на course_no и - я думаю - семестр (и не забудьте исключить строки, где одинаковый идентификатор сотрудника появляется с обеих сторон).

Наконец, вы фильтруете этот результат по классам.

Возможны и другие варианты, но это общая идея.

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