ВУЗ:
Составители:
Рубрика:
33
ватели (например, в выражениях SQL), а также системного имени, которое является
глобальным уникальным внутренним идентификатором этого объекта. Системное имя
содержит четыре компонента.
• Идентификатор создателя объекта.
• Идентификатор узла создателя, т.е. узла, на котором была выполнена операция
создания объекта.
• Локальное имя, т.е. неуточненное имя объекта.
• Идентификатор узла хранения, т.е. узла, на котором этот объект хранился в ис-
ходном состоянии.
Так, системное имя
MARYLIN @ NEW YORK . STATS @ LONDON
идентифицирует объект (например, хранимое отношение) с локальным именем
STATS, созданный пользователем Marylin на узле в Нью-Йорке и изначально
хранившийся на узле в Лондоне. Такое имя гарантировано от каких-либо изменений
даже при перемещении этого объекта на другой узел (подробнее это объясняется ниже).
Как уже отмечалось, пользователи обычно применяют к объектам их печатные
имена, которые состоят из простого неуточненного имени: например, либо "локального
компонента" системного имени (STATS в рассматриваемом примере), либо синонима
системного имени, определенного с помощью специальной инструкции CREATЕ
SYNONYM языка SQL, используемого в системе R*. Ниже приводится пример такой
инструкции.
CREATЕ SYNONYM MSTATS FOR MARYLIN @ NEW YORK . STATS @
LONDON;
Теперь можно использовать одно из следующих выражений:
SELECT . . . FROM STATS . . . ;
SELECT . . . FROM MSTATS . . . ;
В первом случае (при использовании локального имени) системное имя может быть
выведено на основе очевидных и принятых по умолчанию предположений, а именно на
основе того, что данный объект был создан данным пользователем на данном узле и
изначально хранился на этом узле. Одним из следствий такого способа будет то, что
старые приложения для System R могут быть без всяких изменений запущены на
выполнение в системе R* (т.е. сразу после переопределения данных для системы R*).
Во втором случае (при использовании синонимов) системное имя определяется
помощью опроса соответствующей таблицы синонимов. Эти таблицы рассматриваются
как первый компонент каталога, а каждый узел содержит набор таблиц всех
пользователей, известных на данном узле, с отображением синонимов пользователя на
системные имена.
В дополнение к таблицам синонимов на каждом узле поддерживаются следующие
объекты:
1. Элемент каталога для каждого объекта, созданного на этом узле.
2. Элемент каталога для каждого объекта, хранимого в данный момент на этом
узле.
Допустим, пользователь создает запрос для поиска синонима MSTATS. Сначала
система ищет соответствующее ему системное имя в соответствующей таблице
синонимов (чисто локальная подстановка). После этого становится известным место соз-
дания объекта; в рассматриваемом примере это Лондон. Затем система опрашивает
каталог Лондона, что в общем случае приводит к подстановке с удаленным доступом
(первый удаленный доступ). Каталог Лондона будет содержать элемент для данного
объекта согласно упомянутому выше пункту 1. Если искомый объект находится все еще в
ватели (например, в выражениях SQL), а также системного имени, которое является
глобальным уникальным внутренним идентификатором этого объекта. Системное имя
содержит четыре компонента.
• Идентификатор создателя объекта.
• Идентификатор узла создателя, т.е. узла, на котором была выполнена операция
создания объекта.
• Локальное имя, т.е. неуточненное имя объекта.
• Идентификатор узла хранения, т.е. узла, на котором этот объект хранился в ис-
ходном состоянии.
Так, системное имя
MARYLIN @ NEW YORK . STATS @ LONDON
идентифицирует объект (например, хранимое отношение) с локальным именем
STATS, созданный пользователем Marylin на узле в Нью-Йорке и изначально
хранившийся на узле в Лондоне. Такое имя гарантировано от каких-либо изменений
даже при перемещении этого объекта на другой узел (подробнее это объясняется ниже).
Как уже отмечалось, пользователи обычно применяют к объектам их печатные
имена, которые состоят из простого неуточненного имени: например, либо "локального
компонента" системного имени (STATS в рассматриваемом примере), либо синонима
системного имени, определенного с помощью специальной инструкции CREATЕ
SYNONYM языка SQL, используемого в системе R*. Ниже приводится пример такой
инструкции.
CREATЕ SYNONYM MSTATS FOR MARYLIN @ NEW YORK . STATS @
LONDON;
Теперь можно использовать одно из следующих выражений:
SELECT . . . FROM STATS . . . ;
SELECT . . . FROM MSTATS . . . ;
В первом случае (при использовании локального имени) системное имя может быть
выведено на основе очевидных и принятых по умолчанию предположений, а именно на
основе того, что данный объект был создан данным пользователем на данном узле и
изначально хранился на этом узле. Одним из следствий такого способа будет то, что
старые приложения для System R могут быть без всяких изменений запущены на
выполнение в системе R* (т.е. сразу после переопределения данных для системы R*).
Во втором случае (при использовании синонимов) системное имя определяется
помощью опроса соответствующей таблицы синонимов. Эти таблицы рассматриваются
как первый компонент каталога, а каждый узел содержит набор таблиц всех
пользователей, известных на данном узле, с отображением синонимов пользователя на
системные имена.
В дополнение к таблицам синонимов на каждом узле поддерживаются следующие
объекты:
1. Элемент каталога для каждого объекта, созданного на этом узле.
2. Элемент каталога для каждого объекта, хранимого в данный момент на этом
узле.
Допустим, пользователь создает запрос для поиска синонима MSTATS. Сначала
система ищет соответствующее ему системное имя в соответствующей таблице
синонимов (чисто локальная подстановка). После этого становится известным место соз-
дания объекта; в рассматриваемом примере это Лондон. Затем система опрашивает
каталог Лондона, что в общем случае приводит к подстановке с удаленным доступом
(первый удаленный доступ). Каталог Лондона будет содержать элемент для данного
объекта согласно упомянутому выше пункту 1. Если искомый объект находится все еще в
33
Страницы
- « первая
- ‹ предыдущая
- …
- 31
- 32
- 33
- 34
- 35
- …
- следующая ›
- последняя »
