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