Развитие идей и приложений реляционной СУБД System R


Трансляция запросов и поддержка времени выполнения - часть 14


Кроме того, в дополнительные каталоги базы данных (структура которых также не описывается в публикациях) помещается информация о зависимостях данного модуля доступа от существования соответствующих объектов базы данных. Путем коррекции каталога прав доступа пользователь-создатель модуля получает привилегию на его выполнение (как и любая другая привилегия она может быть передана другому пользователю с помощью оператора SQL GRANT).

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

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

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


Начало  Назад  Вперед