Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
17.04.2018
Размер:
329.22 Кб
Скачать

Синонимы

Синоним (synonym) позволяет ссылаться на объект Oracle по имени, которое отличается от его настоящего имени. Синонимы можно определять для таблиц, представлений, последовательностей, а также других объектов. В этом разделе рассиатриваются синонимы таблиц, но все сказанное ниже применимо и к синонимам других объектов.

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

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

SELECT * FRОМ имя_пользователя . имя_таблщы;

Это может оказаться утомительным занятием, а если вы передадите свою таблицу кому-то другому, то вдобавок потребуется менять весь код, который на нее ссылается. Синонимы позволяют сделать таблицу "видимой" для всех, даже если не указано имя ее владельца. Благодаря этому можно писать SQL-операторы, которые будут продолжать работать даже при передаче таблицы другому пользователю.

Создание синонима

Команда создания синонима имеет следующий синтаксис:

CREATE [PUBLIC] SYNONYM имя_синонима

FOR имя объекта ;

Чтобы увидеть, как используются синонимы, можно воспользоваться приведенными ниже команды:

SELECT * FROM product;

CREATE SYNONYM prod FOR product;

SELECT * FROM prod;

Если нужно сделать таблицу доступной другим пользователям, достаточно создать синоним с тем же именем, что и у таблицы:

CREATE PUBLIC SYNONYM product FOR product;

Модификация существующего синонима

Ввиду чрезвычайной простоты синонимов Oracle не предоставляет никаких средств для их изменения. При необходимости просто удаляется старый синоним и создается новый. Команда удаления синонима имеет следующий синтаксис:

DROP [PUBLIC] SYNONYM имя_синонима;

Первый из созданных выше синонимов (PROD) удаляется следующей командой:

DROP SYNONYM prod;

Для удаления общего синонима используется команда

DROP PUBLIC SYNONYM product;

Словарь данных Oracle

База данных Oracle состоит из множества различных объектов: таблиц, столбцов, представлений, связей, ограничений, последовательностей и т.д. Чтобы следить за всеми этими объектами, Oracle сохраняет информацию о них в словаре данных (data dictionary). Словарь данных представляет собой набор таблиц и представлений, содержащих самую последнюю информацию о каждом объекте и пользователе базы данных. Он содержит каждую характеристику, указанную вами создании объекта, а также служебную информацию — в частности, размер пространства, выделенного объекту, размер используемого пространства и права пользователей, относящиеся к этому объекту.

Опрос словаря данных для получения информации о пользователях и базе данных

Полный список объектов словаря данных можно получить из представления с именем DICT. Приведенная ниже команда показывает этот список вместе с полезной дополнительной информацией.

SELECT table_name, SUBSTR(comments, 1, 45)

FROM dict

WHERE SUBSTR(comments, 1, 7) <> 'Synonym' ;

В команде использована конструкция WHERE, исключающая сведения о синонимах.

Использование различных представлений словаря данных

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

SELECT table_name FROM user_tables;

Список всех созданных пользователем представлений выводит команда

SELECT view_name FROM user_views;

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

Соседние файлы в папке лекции оракл