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