В реляционной алгебре , А проекция является унарная операция записывается в виде , где это отношение и имена атрибутов. Его результат определяется как набор, полученный, когда компоненты кортежей в наборе ограничены - он отбрасывает (или исключает ) другие атрибуты. [1]
На практике, если отношение рассматривается как таблица, то проекцию можно рассматривать как выбор подмножества ее столбцов. Например, если атрибуты (имя, возраст), то проекция отношения {(Алиса, 5), (Боб, 8)} на список атрибутов (возраст) дает {5,8} - мы отбросили имена, и знать только, какие существуют возрасты.
Прогнозы также могут изменять значения атрибутов. Например, если есть атрибуты , , , где значения являются числами, то все равно , но со всеми -значениями вдвое. [2]
Понятия, связанные с данным [ править ]
Тесно связанная концепция в теории множеств (см .: проекция (теория множеств) ) отличается от концепции реляционной алгебры тем, что в теории множеств проецируется на упорядоченные компоненты, а не на атрибуты. Например, проецирование на второй компонент дает 7.
Проекция - это аналог экзистенциальной квантификации в логике предикатов в реляционной алгебре . Не включенные атрибуты соответствуют экзистенциально количественно определенным переменным в предикате, расширение которого представляет отношение операнда. Пример ниже иллюстрирует это.
Из-за соответствия с экзистенциальной количественной оценкой некоторые специалисты предпочитают определять проекцию в терминах исключенных атрибутов. На компьютерном языке, конечно, можно предоставить обозначения для обоих, и это было сделано в ISBL и нескольких языках, которые взяли пример с ISBL.
Практически идентичная концепция встречается в категории моноидов , называемой строковой проекцией , которая заключается в удалении всех букв в строке , не принадлежащих данному алфавиту .
При реализации в стандарте SQL «проекция по умолчанию» возвращает мультимножество вместо набора, а проекция π получается добавлением DISTINCT
ключевого слова для устранения повторяющихся данных.
Пример [ править ]
В качестве примера рассмотрим отношения, изображенные в следующих двух таблицах, которые представляют собой отношение Person и его проекцию на (некоторые говорят «сверх») атрибуты Age и Weight :
|
|
Пусть предикат Person является « Имя в возрасте лет и весит вес .» Тогда данная проекция представляет собой предикат, «Там существует имя такого , что имя является возраст лет и весит вес .»
Обратите внимание, что Гарри и Питер имеют одинаковый возраст и вес, но поскольку результат является отношением и, следовательно, набором, эта комбинация появляется в результате только один раз.
Более формально семантика проекции определяется следующим образом:
где это ограничение кортежа на множество , так что
где значение атрибута, имя атрибута и элемент домена этого атрибута - см. Связь (база данных) .
Результат проекции определяется только тогда , когда это подмножество из заголовка из .
Проекция без каких-либо атрибутов вообще возможна, что дает отношение нулевой степени. В этом случае мощность результата равна нулю, если операнд пустой, в противном случае - единице. Два отношения нулевой степени - единственные, которые нельзя изобразить в виде таблиц.
См. Также [ править ]
Ссылки [ править ]
- ^ «Реляционная алгебра» . cs.rochester.edu . Проверено 28 июля 2014 .
- ^ http://www.csee.umbc.edu/~pmundur/courses/CMSC661-02/rel-alg.pdf См. задачу 3.8.B на стр. 3