Реляционная операция "Проекция"

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

Предположим, что исходное отношение имеет в своем атрибутивном составе следующие домены:

a{А,B,С,...,Х, У, Z). (1.3)

В результате выполнения операции "Проекция", где определены в качестве необходимых домены [А, В, X, 2], будет получено отношение со следующими доменами:

r{А,В,Х,Z}. (1.4)

Таким образом, операция "Проекция" приводит к получению "вертикального" подмножества из исходного отношения, а именно подмножества, полученного путем удаления всех атрибутов (доменов), не требуемых в результирующем отношении.

В результате выполнения операции важным является такое свойство, что в результирующем отношении должны быть представлены только уникальные атрибуты (домены), что объясняется правилом, накладываемым на исходное отношение, которое также требует использования уникального набора атрибутов (доменов). Эго правило является принципиально важным по причине того, что, пытаясь сделать операцию "Проекция" (рис. 1.26) на множестве атрибутов (доменов), где есть одинаковые атрибуты (домены), невозможно определить, какой из указанных атрибутов (доменов) должен быть представлен в результирующем отношении.


Рис. 1.26. Пример выполнения операции "Проекция"
при наличии одинаковых атрибутов (доменов)

На представленном примере указано два атрибута (домена) с названием "Город" [1], смысл которых различается. Попытка выполнения операции "Проекция" приведет к невозможности сформировать результирующее отношение, поскольку неясно, какой из атрибутов "Город" необходимо включать в него. Поскольку при выполнении операции "Проекция" необходимо явно указать атрибуты (домены), которые необходимо включить в результирующее отношение и (или) исключить из исходного отношения, то выполнение этой операции не представляется возможным.

Уточним атрибуты (домены) "Город" и выполним операцию "Проекция" с требованием показать сотрудников с указанием города рождения (рис. 1.27).

Рис. 1.27. Пример операции "Проекция" над отношением с уникальными атрибутами (доменами)

В данном примере атрибуты (домены) "Город" уточнены и содержат смысловые слова, что привело к разделению одинаковых атрибутов на два разных — "Город рождения" и "Город проживания". В таком случае выполнение операции "Проекция" становится возможным, что привело к формированию результирующего отношения с атрибутами (доменами) "№", "ФИО сотрудника", "Город рождения".

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