Глава 23. Глобальные аспекты SQL
В этой главе обсуждаются аспекты языка SQL, имеющие общее отношение к
базе данных, рассматриваемой как единое целое, включая использование множества имен для объектов данных, распределение памяти, отказ от изменений или сохране ние изменений в базе данных, координацию одновременных действий со стороны многих пользователей. Эгот материал поможет конфигурировать базу данных, избе жать ошибок и определить, как действия, осуществляемые с базой данных одним пользователем, могут повлиять на других пользователей.
Переименование таблиц
Если в команде есть ссылка на базовую таблицу или представление, владельцем ко торых является другой пользователь, то нужно указать в качестве префикса перед име нем таблицы имя владельца; благодаря этому SQL знает, где ее искать. Поскольку в целом ряде случаев это может оказаться неудобным, многие программные реализации SQL позволяют создавать синонимы для таблиц (эта возможность не входит в стан дарт SQL). Синоним (synonym)- это альтернативное имя таблицы, подобное прозви
щу. Создавая синоним, пользователь становится его собственником, значит перед
синонимом не следует указывать другого идентификатора пользователя (имя пользо вателя).
Имея, по крайней мере, одну привилегию для одного или нескольких столбцов таб лицы, можно создать для них синоним. (Некоторые программные реализации SQL мо гут иметь специальную привилегию для создания синонимов.) Adгian может создать синоним, скажем, Clients для Diane.Customers, используя команду CREATE SYNONYM следующим образом:
CREATE SYNONYM Clients FOR Diane.Customers;
Теперь Adrian может использовать имя таблицы Clients в команде точно так же, как и имя Diane.Customers. Владельцем синонима Clients является Adrian, и только он мо
жет его использовать.
Переименование с исnользованием того :нее имени
В SQL префикс пользователя является реальной частью любого имени таблицы. Когда пропускается собственное имя пользователя перед именем конкретной таблицы, SQL подставляет его сам. Следовательно, два одинаковых имени для таблиц, принад
лежащих различным пользователям, реально не являются совпадающими, их нельзя
перепутать (по крайней мере в SQL). Это значит, что два пользователя могут создать две совершенно несвязанные таблицы с одним и тем же именем, но это означает и то, что один пользователь может создать представление, основанное на таблице другого
пользователя, им поименованное, и использовать в качестве имени представления имя
таблицы. Это де,1ают из практических соображений в тех случаях, когда представле-