Реляционное исчисление доменов: примеры

В приведенных здесь формулах применяются следующие сокращенные обозначения:

вместо

А. Найдем имена всех менеджеров, зарплата которых превышает 25000 фунтов стерлингов.

Если сравнить этот запрос с эквивалентным запросом реляционного исчисления кортежей, то можно увидеть, что каждому атрибуту присвоено имя(переменной). Условие Staff (sN, fN,..., bN) гарантирует, что переменные домена будут ограничены атрибутами того же самого кортежа. Поэтому мы можем использовать формулу posn = 'Manager' вместо формулы Staff.position = 'Manager'. Следует также учитывать различия в использовании квантора существования. В реляционном исчислении кортежей применение этого квантора к некоторой переменной кортежа posn в форме равносильно связыванию этой переменной с отношением Staff с использованием выражения Staff(posn). С другой стороны, в реляционном исчислении доменов переменная posn ссылается на одно из значений в домене и на нее не налагаются ограничения до тех пор, пока она не появится в субформуле, такой как , после чего ее значения ограничиваются значениями position, которые присутствуют в отношении staff.

Для краткости в остальных примерах настоящего раздела кванторы применяются только с теми переменными домена, которые фактически появляются в некотором условии (в настоящем примере таковыми являются posn и sal).

Б. Создадим список всех сотрудников, которые отвечают за работу с объектами недвижимости в Глазго.

В этой версии переменная домена cty в отношении PropertyForRent заменена константой 'Glasgow', а переменная того же домена sN, которая представляет табельный номер работника, повторно применяется и в отношении Staff, и в отношении PropertyForRent.

В. Создадим список всех сотрудников, которые в настоящее время не отвечают за работу с каким-либо объектом.

Г. Создадим список всех клиентов, осматривавших объекты недвижимости в городе Глазго.

Д. Создадим список всех городов, в ко торых есть отделение компании, но нет арендуемых объектов недвижимости.

E. Создадим список всех городов, в которых есть отделение компании, а также имеется по меньшей мере один арендуемый объект недвижимости.

Ж. Создадим список всех городов, в которых есть или отделение компании, или хотя бы один арендуемый объект недвижимости.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: