Cтраница 2
Спецификационные операции в сетевой модели данных схожи с соответствующими операциями в реляционной модели. Однако в сетевой модели эти операции должны следовать структуре связей между типами записей, в то время как в реляционной модели такие ограничения отсутствуют. Подобно тому как реляционные Спецификационные операции выделяют подмножество схемы и базы данных, сетевые Спецификационные операции выделяют подграф схемы и базы данных. [16]
Процедуры базы данных могут использоваться также для расширения языка данных операциями, первоначально в нем не предусмотренными. Например, операция сортировки может быть определена как процедура базы данных, предшествующая выдаче результата спецификационной операции. Другой пример - процедура удаления дубликатов и нулей, позволяющая модифицировать спецификационную операцию в зависимости от того, что является операндом-отношение или тип записи. Такие процедуры называются операторами доступа. [17]
Спецификационные операции в сетевой модели данных схожи с соответствующими операциями в реляционной модели. Однако в сетевой модели эти операции должны следовать структуре связей между типами записей, в то время как в реляционной модели такие ограничения отсутствуют. Подобно тому как реляционные Спецификационные операции выделяют подмножество схемы и базы данных, сетевые Спецификационные операции выделяют подграф схемы и базы данных. [18]
Спецификационные операции обычно ассоциируются с языками запросов, для которых характерна замкнутость. Упомянутые категории операций не являются взаимоисключающими. Как правило, навигационные операции применяются, если не на пользовательском уровне, то на уровне реализации спецификационных операций. [19]
Если в операции определяются только требования к результату, но не задается способ его получения, то операции называются спецификационными. Спецификация требований к результату может выполняться, например, с помощью операций теории множеств или формул исчисления предикатов, что имеет место в реляционной модели данных. Поэтому результату специфика-ционной операции в общем случае соответствует некоторое множество объектов, существующих в БД. На внутреннем уровне спецификационные операции также выполняются с использованием текущих, которые не видны для пользователя. [20]
Существенный признак, по которому различаются языки данных, определяется характером результата единичной директивы селекции. Напротив, операции могут специфицировать новую структуру, определяемую на структуре базы данных, которой в общем случае соответствует множество объектов, существующих в базе данных. Такие операции называются специфика-ционными. Навигационные операции всегда предполагают селекцию посредством текущей, в то время как для спецификационных операций это необязательно. [21]
При построении отображения между навигационными и спе-цификационными операциями возникают проблемы особого рода. Не представляет труда отобразить спецификационные операции в навигационные, поскольку задача состоит в отображении не-процедуральной формы в процедуральную. Однако отобразить навигационные спецификации в спецификационные или другие навигационные операции весьма затруднительно, главным образом в связи с проблемой индикаторов текущих. Аспекты, связанные с использованием этих индикаторов, весьма непросто представить с помощью спецификационных операций. [22]