stringtranslate.com

Проекция (реляционная алгебра)

В реляционной алгебре проекция это унарная операция, записываемая как , где — отношение , а — имена атрибутов. Ее результат определяется как набор , полученный, когда компоненты кортежей в ограничиваются набором — он отбрасывает (или исключает ) другие атрибуты. [1]

На практике, если отношение рассматривается как таблица, то проекцию можно рассматривать как выбор подмножества ее столбцов. Например, если атрибуты — (имя, возраст), то проекция отношения {(Алиса, 5), (Боб, 8)} на список атрибутов (возраст) дает {5,8} — мы отбросили имена и знаем только, какие возрасты присутствуют.

Проекции также могут изменять значения атрибутов. Например, если имеет атрибуты , , , где значения являются числами, то это похоже на , но все -значения уменьшены вдвое. [2]

Связанные концепции

Тесно связанное понятие в теории множеств (см.: проекция (теория множеств) ) отличается от понятия реляционной алгебры тем, что в теории множеств проецирование осуществляется на упорядоченные компоненты, а не на атрибуты. Например, проецирование на второй компонент дает 7.

Проекция — это аналог экзистенциальной квантификации в логике предикатов в реляционной алгебре . Невключенные атрибуты соответствуют экзистенциально квантифицированным переменным в предикате, расширение которого представляет отношение операнда. Приведенный ниже пример иллюстрирует этот момент.

Из-за соответствия с экзистенциальной квантификацией некоторые авторитеты предпочитают определять проекцию в терминах исключенных атрибутов. В компьютерном языке, конечно, можно предоставить обозначения для обоих, и это было сделано в ISBL и нескольких языках, которые взяли пример с ISBL.

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

При реализации в стандарте SQL «проекция по умолчанию» возвращает мультимножество вместо набора, а проекция π получается путем добавления DISTINCTключевого слова для устранения дублирующихся данных.

Пример

В качестве примера рассмотрим отношения, изображенные в следующих двух таблицах, которые представляют собой отношение « Человек» и его проекцию на (некоторые говорят «над») атрибуты Возраст и Вес :

Предположим, что предикат Человека — « Имя имеет возраст лет и весит вес ». Тогда данная проекция представляет предикат: «Существует Имя, такое что Имя имеет возраст лет и весит вес ».

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

Формальное определение

Более формально семантика проекции определяется следующим образом:

где ограничение кортежа на множество так, что

где — значение атрибута, — имя атрибута, а — элемент домена этого атрибута — см. Отношение (база данных) .

Результат проекции определяется только в том случае, если является подмножеством заголовка .

Проекция по никаким атрибутам возможна, что дает отношение степени ноль . В этом случае мощность результата равна нулю, если операнд пустой, в противном случае — единице. Два отношения степени ноль — единственные, которые нельзя изобразить в виде таблиц.

Смотрите также

Ссылки

  1. ^ "Реляционная алгебра". cs.rochester.edu . Получено 28.07.2014 .
  2. ^ http://www.csee.umbc.edu/~pmundur/courses/CMSC661-02/rel-alg.pdf См. задачу 3.8.B на стр. 3