Правильная ссылка на эту страницу
http://az-design.ru/Support/DataBase/SQL/SQL92/SQL92-2Create_schema.shtml

CREATE SCHEMA
Определяет схему

Синтаксис

CREATE SCHEMA предложение, определяющее имя схемы
     [ DEFAULT CHARACTER SET набор символов ] 
     [ { оператор CREATE DOMAIN 
       | оператор CREATE TABLE 
       | оператор CREATE VIEW 
       | оператор GRANT 
       | оператор CREATE ASSERTION 
       | оператор CREATE CHARACTER SET 
       | оператор CREATE COLLATION 
       | оператор CREATE TRANSLATION [ набор символов ] } ]...;
предложение, определяющее имя схемы ::= имя схемы
            | AUTHORIZATION идентификатор авторизации
            | имя схемы AUTHORIZATION идентификатор авторизации

Использование
       Этот оператор строит схему, т.е. поименованную группу связанных объектов. Он может содержать несколько различных операторов для построения таких объектов схемы, как таблицы, наборы символов, домены, а также операторы для присвоения им привилегий. Все эти объекты "материализуются" одновременно после завершения исполнения оператора. Следовательно, могут возникать циклические ссылки, некоторые из которых нельзя признать правильными. Например, могут возникнуть две таблицы, каждая из которых будет иметь внешний ключ со ссылкой на другую таблицу, как на родителя. Объекты и привилегии разрешается добавлять в схему не только при ее создании, но и позже.
       Создатель схемы становится ее владельцем и, в основном, управляет использованием объектов схемы. Права на создание схем определяются на уровне реализации. Схема входит в группу, содержащую одну или несколько схем и называемую каталогом. Имя схемы должно быть уникальным в каталоге,
       "Предложение имени схемы" (schema name clause) определяет имя схемы. Это может быть полное имя в форме:

cluster.cattalog.schema

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

• Если оператор CREATE SCHEMA является частью модуля (см. приложение В), и модуль имеет свой собственный идентификатор авторизации, схема будет создана под идентификатором авторизации модуля. Это означает, что использование будет контролироваться любым пользователем, который исполняет модуль (см. главу II оператор GRANT).
• В противном случае, схема будет построена под идентификатором авторизации того пользователя сеанса SQL, который создает данную схему.

       Если в операторе CREATE SCHEMA не указано имя схемы, но присутствует предложение AUTHORIZATION, то в качестве имени схемы используется идентификатор авторизации. В этом случае неявно подразумевается, что один идентификатор авторизации может создавать только одну схему, по крайней мере, в текущем каталоге. Такой подход принят в стандарте SQL-86 и поддерживается в SQL-92, в основном, для совместимости.
       Если в имени схемы указаны и идентификатор авторизации, и имя схемы, то первое имя указывает на владельца, а второе - на саму схему. В любом случае имя схемы должно быть уникальным в каталоге.
       Предложение DEFAULT CHARACTER SET определяет набор символов, который будет использоваться для типов данных CHARACTER STRING всех столбцов и доменов, если не указан альтернативный набор. Если такое предложение отсутствует, будет использован набор символов, принятый по умолчанию в данном приложении.

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

Пример
       Следующий оператор строит схему под названием Joes_Schema, которая включает в себя один домен, одну таблицу и одно предложение GRANT.

CREATE SCHEMA Joes_Schema AUTHORIZATION Joe
       DEFAULT CHARACTER SET ASCII
       CREATE DOMAIN id_nums AS integer CHECK (VALUE > 0)
       CREATE GLOBAL TEMPORARY TABLE Fluctuations
        (item_num     id_nums PRIMARY KEY,
         item_name    CHAR NOT NULL,
         start_price  DEC,
         max_price    DEC,
         min_price    DEC,
         avg_price    DEC,
         end_price    DEC
         ON COMMIT PRESERVE ROWS ) 
       GRANT SELECT ON Fluctuations TO Sarah;

Уровни соответствия

Intermed

 

На промежуточном уровне совместимости последовательности CREATE SCHEMA не необходимости определять утверждения, ограничения и трансляции.

Entry

 

Этот уровень совместимости не требует поддержки доменов или наборов символов. Он также не разрешает давать имя схеме. Можно только допустить предложение "имя схемы", и схема получит имя идентификатора авторизации ее создателя (как это указано в SQL-86).

См. также
       главу II операторы CREATE ASSERTION, CREATE CHARACTER SET, CREATE COLLATION, CREATE DOMAIN, CREATE TABLE, CREATE TRANSLATION, CREATE VIEW, DROP SCHEMA, GRANT, REVOKE, главу III разделы "Идентификаторы авторизации", "Сравнения" и приложение D.


<<Пред. Оглавление
Начало раздела
След.>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/DataBase/SQL/SQL92/SQL92-2Create_schema.shtml