Приведем примеры, которые покажут, как описанные реляционные операторы могут применяться для выборки данных, а также манипулирования ими в базе данных. Для этого мы сначала приведем запрос на естественном языке, затем запишем эквивалентное выражение на языке РА и, наконец, прокомментируем алгебраическое выражение и его альтернативную форму.
Запрос. Найти название государственного парка, где расположено озеро с номером 100.
Примечания. Начнем с выборки множества кортежей отношения ParkLake, имеющих значение атрибута Lid, равное 100. Множество-результат подвергается естественному соединению по ключу Sid с отношением StatePark. Результат проецируется на атрибут Название отношения StatePark, то есть Spname. Пользуясь оператором переименования ?, этот запрос можно разбить на части. Оператор переименования применяется для присваивания названия промежуточному отношению, появляющемуся в ходе вычисления сложного запроса. Также его можно использовать для переименования атрибутов отношений. Например,
переименовывает отношение СтароеНазв в НовоеНазв. Кроме того, первый атрибут отношения НовоеНазв, считая слева направо, получает имя Att1.
Пользуясь этим соглашением об именовании отношений, можно разбить этот запрос на части:
Альтернативная формулировка запроса выглядит так:
С точки зрения реализации вычисление данного запроса сопряжено с большими издержками, нежели предыдущего, поскольку он выполняется как соединение над множеством большего размера, а соединение является наиболее затратной операцией реляционной алгебры.
1. Запрос. Найти названия государственных парков с озерами, где основной улов составляет форель.
Примечания. Здесь последовательно применяются два оператора соединения. Однако сначала мы сокращаем размер множества путем предварительной выборки всех озер, где основным уловом является форель. Затем соединяем результат по ключу Lid с отношением ParkLake. После этого следует другое соединение с отношением StatePark по ключу Sid. Наконец, мы проецируем ответ на название парка (Spname).