Максимальная разница между столбцами с использованием реляционной алгебры - PullRequest
2 голосов
/ 07 февраля 2012

Можно ли получить максимальную разницу между двумя столбцами (например, начальный и конечный веса)?

Прямо сейчас я склоняюсь к «нет», так как для этого потребуется новый столбец с разницей между двумя столбцами для каждой строки, а затем максимальный из них. Делать это так, как я изначально планировал, тоже не работает, поскольку арифметические операции не разрешены в условиях операций выбора (например, SIGMA (c1 - c2

Раскрытие: это часть домашнего задания.

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Это можно сделать точно так, как вы планировали, но для этого вам нужен обобщенный прогноз. Обобщенной проекцией является оператор

Π(E1, E2,..., En)R

где R - отношение, а E1 ... En - выражения в форме a⊕b, где a и b - атрибуты R или константы, а ⊕ - произвольный двоичный оператор между ними. Результатом является связь с атрибутами E1 ... En.

Это позволит вам спроецировать различия в новое отношение (R ': = Π (x-y) R), а затем найти максимальное значение, как вы и планировали.

Если нам не разрешено использовать обобщенную проекцию, то я думаю, что у нас нет средств, чтобы фактически вычесть атрибут из другого или вычислить что-либо из них, поскольку определение проекции допускает только имена атрибутов и определение выбора допускают только выражения вида aθb, где a и b - атрибуты или константы, а θ - бинарный реляционный оператор (по-своему, это логично, потому что если у нас есть отношение R (X, Y), то у нас нет представление о типе для X или Y, делающее операции над ними совершенно бессмысленными).

Я думаю, что обобщенная проекция является большим расширением реляционной алгебры. Очевидно, что он чрезвычайно полезен в реальной жизни, и его можно защитить даже с более научной точки зрения: если мы допустим двоичные условные операторы для значений типа «X> 50», то мы уже сделали предположения о типе, отрисовывая эту точку вроде спорный. Ваш инструктор может не согласиться.

0 голосов
/ 07 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...