В связи с тем, что в непроцедурных командах доступа к данным могут использоваться только имена переменных, определенные глобально, НРМ считает полезной и необходимой возможность определять и использовать глобальные переменные значимых типов. Эти переменные могут реализовываться и как хранимые, и как вычисляемые.
Пример. Так, переменная someSales, используемая в примере предыдущего раздела, может быть определена как глобальная следующей непроцедурной командой
CREATE someSales AS SET OF Sales REALIZE AS STORED;
После этого, имя someSales может использоваться в непроцедурных командах группового доступа к данным.
Опишем кортеж, содержащий ссылку на объект типа Article и ссылку на объект типа Warehouse
DESCRIBE TUPLE Art2Ware { Art Article; Ware Warehouse; }
Создадим глобальную переменную, содержащую множество таких кортежей
CREATE ArticleOnWarehouse AS SET OF Art2Ware CONSTRAIN Art AS GLOBAL KEY REALIZE AS STORED;
Эта глобальная переменная может содержать информацию, например, о распределении артикулов по складам. Ключ этой переменной, содержащий единственный атрибут Art, указывает, что каждый артикул может храниться на одном единственном складе. Таким образом, переменная ArticleOnWarehouse содержит информацию о связи типа один-ко-многим между множеством артикулов и множеством складов.
Замечание. Хранимые и вычисляемые переменные значимых типов могут использоваться для эмуляции таблиц и видов, существующих в современных реляционных СУБД.