Введение
Операция, ограничивающая отношение к указанному набору атрибутов.
В реляционной алгебре проекция — это унарная операция, записываемая как Π<sub>A</sub>(R), где R — отношение, а A — имена атрибутов. Её результат определяется как множество, полученное при ограничении компонентов кортежей в R набором A — остальные атрибуты отбрасываются (или исключаются). Практически, если отношение рассматривать как таблицу, то проекцию можно представить как выбор подмножества её столбцов. Например, если атрибуты — (имя, возраст), то проекция отношения {(Алиса, 5), (Боб, 8)} на список атрибутов (возраст) даст {5, 8} — мы отбросили имена и знаем только, какие возрасты присутствуют. Проекции также могут изменять значения атрибутов. Например, если R имеет атрибуты A, B, C, где значения A — числа, то Π<sub>A/2</sub>(R) эквивалентно Π<sub>A</sub>(R), но со всеми значениями A, уменьшенными вдвое.
relational algebra
In relational algebra, a projection is a unary operation written as , where is a relation and are attribute names. Its result is defined as the set obtained when the components of the tuples in are restricted to the set – it discards (or excludes) the other attributes. In practical terms, if a relation is thought of as a table, then projection can be thought of as picking a subset of its columns. For example, if the attributes are (name, age), then projection of the relation {(Alice, 5), (Bob, 8)} onto attribute list (age) yields {5,8} – we have discarded the names, and only know what ages are present. Projections may also modify attribute values. For example, if has attributes , , , where the values of are numbers, then
is like , but with all values halved.
Связанные понятия
Тесно связанная концепция в теории множеств (см.: проекция (теория множеств)) отличается от концепции реляционной алгебры тем, что в теории множеств проекция выполняется на упорядоченные компоненты, а не на атрибуты. Например, проекция на второй компонент дает 7. Проекция является аналогом экзистенциальной квантификации в предикатной логике в реляционной алгебре. Атрибуты, не включенные в проекцию, соответствуют экзистенциально квантифицированным переменным в предикате, расширением которого является отношение операнда. Приведенный ниже пример иллюстрирует это. В силу соответствия экзистенциальной квантификации, некоторые специалисты предпочитают определять проекцию с точки зрения исключенных атрибутов. В языке программирования, разумеется, можно предоставить обозначения для обоих подходов, и это было сделано в ISBL и ряде языков, ориентировавшихся на ISBL. Почти идентичная концепция встречается в категории моноидов, называемая проекцией строки, которая заключается в удалении из строки всех символов, не принадлежащих заданному алфавиту. При реализации в стандарте SQL "проекция по умолчанию" возвращает мультимножество, а для получения множества необходимо добавить ключевое слово DISTINCT, чтобы исключить дубликаты.