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



         

Операторы DDL в языке SQL с заданием ограничений целостности - часть 7


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

Сокращенные обозначения ограничений состоят из одной или двух букв и могут быть следующими:

  • PK - для первичного ключа;
  • FK - для внешнего ключа;
  • CK - для проверочного ограничения;
  • U - для ограничения уникальности;
  • DF - для ограничения типа значение по умолчанию.
  • Приведем пример оператора создания таблицы BOOKS с именованными ограничениями:

  • 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.
  • FIRST_NAME char(30) NOT NULL.
  • LAST_NAME char(30) NOT NULL.
  • ADRES char(50).
  • 146

  • HOME_PHON char(12).
  • WORK_PHON char(12),
  • BIRTH_DAY date СНЕCK DateDiff(year. GetDate().BIRTH_DAY) >=17 ).
  • CONSTRAINT CK_READERS CHECK (HOME_PHON IS NOT NULL OR WORK_PHON IS NOT NULL)
  • );
  • CREATE TABLE CATALOG
  • (
  • ID_CATALOG Smallint PRIMARY KEY,
  • KNOWELEDGE_AREA varchar(150)
  • );
  • CREATE TABLE EXEMPLAR
  • (
  • ID_EXEMPLAR int NOT NULL,
  • ISBN varchar(14) NOT NULL FOREIGN KEY references BOOKS(ISBN).
  • READER_ID Smallint(4) NULL FOREIGN KEY references READERS (READERJD).
  • DATA_IN date.
  • DATA_OUT date,
  • EXIST Logical,
  • PRIMARY KEY (ID_EXEMPLAR, ISBN)
  • );
  • CREATE TABLE RELATION_1
  • (
  • ISBN varchar(14) NOT NULL FOREIGN KEY references BOOKS(ISBN).
  • ID_CATALOG smallint NOT NULL FOREIGN KEY references CATALOG(ID_CATALOG).



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