2014-10-05 3 views
1

Я только начал изучать реляционную алгебру базы данных, и я застрял в этих двух вопросах.Реляционная алгебра Первая и последняя дата

Исходный вопрос был более сложным, но мне удалось сузить его и упростить к приведенным ниже таблицам, я не мог понять, как это сделать, help plz.

enter image description here

ответ

1

Это интересно, поскольку порядок не понятие обычно присутствует в реляционной алгебре. Поэтому мы используем обходной путь. Мы будем использовать две копии отношения R, я позову одну X, а другой Y:

  1. обор присоединиться X и Y на имя атрибута, которое дает нам соотношение атрибутов (X.id, X.date, X.name, Y.id, Y.date, Y.name). Я назову это связанное отношение J.
  2. Выберите из J записей, удовлетворяющих требованиям X.date < Y.date. Теперь мы имеем отношение, где первая дата для донора существует только в X.date, а последняя дата существует только в Y.date.
  3. Мы берем исходное отношение R и проект (R.date, R.name), чтобы получить все даты, предоставленные донором.
  4. Наконец, чтобы получить отношение первых дат, мы проектируем (Y.date, Y.name) (который не имеет первых дат) и делают разность заданий First dates = (R.date, R.name)\(Y.date, Y.name). Аналогичным образом, Last dates = (R.date, R.name)\(X.date, X.name).