Базы данных - модели, разработка, реализация


         

Операторы языка SQL, как указывалось


  • CONSTRAINT PK RELATION 1 PRIMARY KEY (ISBN,ID CATALOG)


  • ).


  • Операторы языка SQL, как указывалось ранее, транслируются в режиме интерпретации, в отличие от большинства алгоритмических языков, трансляторы для которых выполнены по принципу компиляции. В режиме интерпретаций каждый оператор отдельно транслируется, то есть переводится в машинные коды, и тут же выполняется. В режиме компиляции вся программа, то есть совокупность операторов, сначала переводится в машинные коды, а затем может быть выполнена как единое целое. Такая особенность SQL накладывает ограничение на порядок описания создаваемых таблиц. Действительно, если при трансляции оператора описания подчиненной таблицы с указанным внешним ключом и соответствующей ссылкой на родительскую таблицу эта родительская таблица не будет обнаружена, то мы получим сообщение об ошибке с указанием ссылки на несуществующий объект. Сначала должны быть описаны все основные таблицы, а потом подчиненные таблицы.

    В нашем примере с библиотекой порядок описания таблиц следующий:

    147

  • Таблица BOOKS


  • Таблица READERS


  • Таблица CATALOG (системный каталог)


  • Таблица EXEMPLAR


  • Таблица RELATION_1 (дополнительная связующая таблица между книгами и системным каталогом).


  • Набор операторов языка SQL принято называть не программой, а скриптом. Тогда скрипт, который добавит набор из 5 взаимосвязанных таблиц базы данных "Библиотека" в существующую базу данных, будет выглядеть следующим образом:

  • CREATE TABLE BOOKS


  • (


  • ISBN varchar(14) NOT NULL ,


  • TITLE varchar(120) NOT NULL.


  • AUTOR varchar (30) NULL.


  • COAUTOR varchar(30) NULL.


  • YEAR_PUBL smallint NOT NULL.


  • PUBLICH varchar(20) NULL.


  • PAGES smallint NOT NULL.


  • CONSTRAINT PK_BOOKS PRIMARY KEY (ISBN).


  • CONSTRAINT DF_ YEAR_PUBL DEFAULT (Year(GetDate( )).


  • CONSTRAINT CK_ YEAR_PUBL CHECK (YEAR_PUBL >= 1960 AND


  • YEAR_PUBL


  • CONSTRANT CK_PAGES CHECK (PAGES > = 5 AND PAGES


  • CONSTRAINT CK_BOOKS CHECK (NOT (AUTOR IS NULL AND COAUTOR IS NOT NULL))


  • CREATE TABLE READERS


  • (


  • READER_ID Smallint PRIMARY KEY.



  • Содержание  Назад  Вперед