Введение в стандарты языка баз данных SQL

       

Средства уничтожения элементов схемы базы данных


Для каждого из упомянутых в этом разделе операторов создания элементов схемы базы данных имеются обратные операторы уничтожения этих элементов.

Созданная ранее таблица может быть уничтожена следующим оператором:

<drop table statement> ::= DROP TABLE <table name> <drop behavior>

Пояснения:

  • Пусть уничтожается таблица с именем T.
  • T должна быть базовой таблицей.
  • T не должна быть временной объявляемой таблицей.
  • Если специфицировано RESTRICT, то ни в каком существующем представлении и ни в каком условии поиска существующего ограничения не должны содержаться ссылки на T.
  • Пусть A обозначает текущий идентификатор авторизации. Тогда при выполнении оператора уничтожения таблицы неявно выполняется следующий оператор: REVOKEALLPRIVILEGESONTFROMACASCADE, что при наличии спецификации CASCADE в операторе уничтожения таблицы приводит к уничтожению всех объектов, в определении которых использовалась ссылка на T.
  • Таблица T и ее дескриптор уничтожаются.
  • Созданное ранее представление может быть уничтожено с помощью следующего оператора:

    <drop view statement> ::= DROP VIEW <table name> <drop behavior>

    Пояснения:

  • Пусть V - имя уничтожаемого представления.
  • V должно быть именем представляемой таблицы.
  • Если специфицировано RESTRICT, то ни в одном существующем представлении или условии поиска существующего ограничения не должна содержаться ссылка на V.
  • Пусть A обозначает текущий идентификатор авторизации. При выполнении оператора уничтожения представления неявно выполняется следующий оператор: REVOKEALLPRIVILEGESONTFROMACASCADE, что при наличии спецификации CASCADE в операторе уничтожения представления приводит к уничтожению всех объектов, в определении которых использовалась ссылка на V.
  • Оператор уничтожения домена имеет следующий синтаксис:

    <drop domain statement> ::= DROP DOMAIN <domain name> <drop behavior>

    Пояснения:

  • Пусть D - имя уничтожаемого домена.
  • Если специфицировано RESTRICT, то ссылки на D должны отсутствовать в любом описателе столбца, в выражении запроса любого представления и в условии поиска любого ограничения.
  • Пусть C обозначает описатель столбца, определенного на домене D; T - имя таблицы, описатель которой включает C. C модифицируется следующим образом:


      (a) из C удаляется ссылка на D, и в C включается копия описателя типа данных D;

      (b) если C не включает раздела значения по умолчанию, а описатель D включает такой раздел, то в C включается раздел умолчания D;

      (c) для каждого описателя ограничения домена D выполняются следующие действия:

      (i) пусть TCD обозначает табличное ограничение с определяемым в реализации именем, которое порождено из проверочного ограничения домена путем замены VALUE на имя столбца C с сохранением атрибутов ограничения;

      (ii) если для идентификатора полномочий текущей SQL-сессии имеются необходимые привилегии, выполняется неявный оператор ALTERTABLETADDTCD;



  • Пусть A - текущий идентификатор полномочий. Выполняется следующий неявный оператор REVOKE: REVOKEUSAGEONDOMAINDNFROMACASCADE
  • Описатель домена разрушается.


  • Утверждение целостности уничтожается с помощью следующего оператора:

    <drop assertion statement> ::= DROP ASSERTION <constraint name>

    Пояснение:

    При выполнении оператора описатель идентифицируемого утверждения целостности разрушается.


    Содержание раздела