Являются ли отбор и проекция ассоциативными? - PullRequest
3 голосов
/ 10 октября 2011

Всегда ли выделение (p) (проекция (R)) == проекция (выделение (p) (R))?

Ответы [ 2 ]

5 голосов
/ 10 октября 2011

Если подумать, если выборка находится на подмножестве столбцов, которые используются в проекциях, то ДА,

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

2 голосов
/ 13 октября 2011

Во-первых, свойство 'коммутативности' просто не относится к вашему случаю.

Коммутативность - это свойство, которое для всех x, y: x op y == y op x.

Например, для всех R1, R2: R1 ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ R2 == R2 ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ R1.

Во-вторых, ответ - нет.

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

EDIT

(С некоторой растяжкой вы можете утверждать, что коммутативность задействована, потому что в вашем примере рассматривается вопрос о том, является ли FUNCTION COMPOSITIONкоммутативный (f ° g? = g ° f). Знание математики должно сделать ваш вопрос риторическим, в этом случае, однако.)

РЕДАКТИРОВАТЬ 2

И изменить вопрос наони ассоциативны, это тоже не хорошо.Ассоциативность - это случай с одним единственным оператором и тремя аргументами, где вопрос заключается в том, является ли (a op b) op c? = A op (b op c) для всех a, b, c.У вас есть два оператора (проекция и выбор) и один единственный аргумент.

Это также означает, что вопрос РАСПРЕДЕЛЕНИЯ (в его строгом математическом смысле) также не применим, хотя ваш сценарий действительно напоминает математический случай операторадистрибутивность, в определенных отношениях, и дано достаточно растянуть.Дистрибутивность в строгом математическом смысле включает в себя два диадических оператора (т.е. с двумя аргументами).Проекция и ограничение одинарные.

Я думаю, что csviri правильно ответил на ваш вопрос.Вы должны принять это.

...